基本内容
- 自定义类
- 面向对象
- 封装
引用数据类型(类)
类,是引用数据类型。
类的使用格式:
导包:我们将所有的类放到同一个文件夹下,可以避免导包。
创建对象:数据类型 变量名 = new 数据类型();
调用方法:目前我们定义的自定义类不涉及方法,只是属性(自定义类中的方法部分在面向对象部分讲解)
访问属性:变量名.属性 (这是当前的方式,后期会采取调用方法的方式替代掉直接访问的方式来完成对属性的访问。)
注意:
同一个java文件(就是一个后缀为java的文本)只能有一个pulic class
如果向使用多个class 有两中办法
1 在你的java文件里的public class类外面写class类 前面不能加public
2 在你的java文件里的public class类里面写public class类作为成员
类和对象
对象是类的实例,成员变量是类的属性
类是对象的模版,系统根据类的定义来造出对象
类通过抽象创建类,程序通过类为模版产出对象
局部变量和成员变量的区别:与数据的类型无关
-
与定义的位置有关
- 成员变量:定义在类中,但是在方法外
- 局部变量:定义在方法内部的变量
-
赋值的区别
- 成员变量:默认赋予初值,数据类型有关
- 局部变量:没有初值,需要使用之前初始化
-
作用域区别:
- 成员变量:整个类中都可以使用
- 局部变量:只能在定义它的方法内使用
-
在内存存储位置不同:(所以成员变量和局部变量名字可以相同)
- 成员变量:跟随对象进入堆内存
- 局部变量:跟随方法进入到栈内存
-
生命周期不同:
- 成员变量:跟随类对象的出现而出现通过内存回收机制进行消亡
- 局部变量:当方法调用时开始出现,当方法执行完毕,局部变量消亡
封装
private是封装的更加具体并且是封装的一种体验
private:表示私有
一旦成员变量被private修饰,那么除了本身这个类可以使用,其他类不能使用
规则:
- 实际开发当中,类中的所有成员都定义成私有的(private)
- 原因:调用私有的成员只能调用set成员的方法,这样可以在set方法中设置成员变量的规则。
- 使用private进行私有化的成员变量,需要用set方法进行设置和get方法进行调用
this关键字
this是对象内部指代自身的引用,同时也是解决成员变量和局部变量同名问题;
this可以调用成员变量,不能调用局部变量;
this也可以调用成员方法,但是在普通方法中可以省略this,在构造方法中不允许省略,必须是构造方法的第一条语句。
在静态方法当中不允许出现this关键字。
构造方法
格式:
修饰符 构造方法名(形式参数列表)
{
}
为什么使用构造方法:
一班方法是在对象被创建之后需要使用的时候才被调用,并且可以调用多次,而用构造方法可以在对象创建的时候赋予初始化。
有参构造和无参构造
每个类至少有一个无参构造,如果你创建了一个带有参数的构造而没有写无参构造也是可以的,但当你通过一个无参构造来(new)的时候,编译器会报错,因为它找不到无参构造,当你创建有参构造的时候已经被覆盖了,所以建议都写上无参构造。
要点:
- 通过new关键字调用
- 构造方法虽然有返回值,但是不能定义返回值类型,不能再构造器里使用return返回某个值
- 构造方法的方法名必须和类一致