赞
踩
面向对象思想概述
当需求单一或者简单时,我们一步一步操作没问题并且效率也挺高,但是随着需求的更改,功能的增多,发现需要面对每一个步骤很麻烦。这时候就开始思索能不能把这些步骤和功能进行封装,封装时根据不同的功能进行不同的封装,功能类似的封装在一起。用的时候找到对应的类就可以了,这就是面向对象的思想。
面向对象的特点
A:是一种更符合我们思想习惯的思想
B:可以将复杂的事情简单化
C:将我们从执行者变成了指挥者
面向对象的特征
封装、继承、多态
现实世界的事物:
属性:就是该事物的描述信息
行为:就是该事物能够做什么(功能)
我们学习编程语言,就是为了模拟现实中的事物,我们学习的java语言最基本单位是类,所以我们应该把一个事物用一个类来体现。由此我们就得到了现实中的事物和类的对应关系:
事物 类
属性-----------------------成员变量/成员属性
行为-----------------------成员方法/成员功能
定义类其实就是定义类的成员(成员变量和成员方法)
A: 成员变量 和以前定义变量是一样的,只不过位置发生了改变,在类中,方法外。
B: 成员方法 和以前定义方法是一样的,只不过把static去掉。
类与对象
A: 类:是一组相关的属性和行为的集合
B: 对象:是该事物的具体体现
C: 举例:类 学生
对象 班长就是一个对象(一个类可以创建很多个它的对象)
创建对象
A: 类是一个抽象的概念,不能直接使用。如果要使用类的属性和功能,必须要对类进行实例化。所谓实例化,就是创建该类对象。那么如何创建对象呢?使用一个关键字new.一旦我们完成了该类的实例化,拿到该类的对象,那么我们就可以使用对象来调用类中的属性和功能。
B: 文件名问题
在一个Java文件中写两个类:一个基本的类,一个测试类
建议:文件名和测试类名称一样
一个.java文件中可以定义多个类,但是类前边的public只能加给有主方法的类,我们建议一个类就是一个java文件
C: 如何创建对象?
格式: 类名 对象名=new 类名(); 对象名其实就是一个引用
D: 如何使用成员变量和成员方法呢?
对象名.变量名 对象名.方法名()
在类中的位置不同
成员变量:在类中方法外
局部变量:在方法中或者方法声明上**(形参 )**
注意事项:在方法中访问一个变量时,遵循就近原则,先在方法的局部范围找,找到就使用。如果
在局部范围没找到,就会去成员范围找,找到就使用
在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用
声明周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
注意:成员变量属于对象,局部变量属于方法
Java中参数传递问题
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
方法的参数是类名
如果你以后看到一个方法的形参如果是一个类类型(引用类型),你就传该类的一个对象
什么是匿名对象?
就是没有名字的对象
匿名对象的应用场景
A:调用方法,仅仅只调用一次的时候
B:匿名对象可以作为实际参数传递
封装的概述
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
封装的好处
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性
封装的原则
将不需要对外提供的内容都隐藏起来
student.230;我认为这个数据不合理,所以我们想要避免这种不合理的数据设置上去,我们可一屏蔽掉这种 对象名.成员变量名 这种设置方式,那么如何屏蔽?可以使用一个关键字private
private关键字的特点
A: 是一个权限修饰符
B: 可以修饰成员变量和成员方法
C: 被修饰的成员只能在本类中访问,外界无法直接访问
我们在定义一个类时,一般情况下,都会把成员变量私有掉,然后提供公共的set get设置和获取方法,让外界通过set get方法间接地去给成员变量设置值以及获取成员变量的值。
注意事项: 一键生成 get set 方法------------alt+insert 弹出一个菜单,根据需要选
权限修饰符:public>protected>缺省的>private
为什么要有this?
当我们的局部变量和成员变量相同的时候,如果我们不使用this关键字,那么就会导致一个问题:就是局部变量隐藏了成员变量的问题。
this关键字的特点
是当前类的对象引用
this代表本类的一个引用,你可以认为this代表的是一个本类对象,哪个对象调用这个方法,那么方法中的this就代表谁。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。