面向对象:将功能封装到对象里,强调的是具备某功能的对象;
面向对象的三个特征:
封装(Encapsulation);
继承(Inheritance);
多态(Polymorphism)。
构造方法:用来构造类的实例(默认有一个无参的构造方法,得使用new调用)
字段:类或对象所包含的数据,对类状态的一种描述;
方法:类或对象的特征或行为
构造函数:创建构造对象时调用的函数。
作用:可以给对象经行初始化。(创建对象都必须要通过构造函数初始化)
注意!
1.一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数。
2.如果在类中定义了指定的构造函数那么类中的默认构造函数就没有了。
3.构造函数可以有多个,用于对不同的对象进行针对性的初始化。
4.多个构造函数在类中是以重载的形式来体现的。
static关键字:
特点:
随着类的加载而加载
优先于对象存在
被所有对象所共享
可以直接被类名调用
使用注意:
静态方法只能访问静态成员
但是非静态成员可以访问静态成员;
静态方法中不可以使用this,super关键字
没有static修饰的方法或字段属于对象的--》实例成员
用static修饰的方法或字段属于类--》类成员
在jvm内存去区中有一块存储区域:静态区域,专门存储类成员
用static 修饰的成员表示它属于这个类共有,而不是属于该类的单个实例。
static 修饰的字段 == 类字段
static 修饰的方法 == 类方法
没使用static修饰的字段和方法,成员属于类的单个实例,
不属于类。
没有static 修饰的字段 == 实例字段
没有static 修饰的方法 == 实例方法
static 修饰的字段和方法,既可以通过类调用,也可以使用实例调用;
没static 修饰的字段和方法,只能使用实例来调用
实例字段(无static修饰)
类字段(static修饰)
局部变量:
形参
方法局部变量
定义时不给初始值,没问题,但是不能使用,若要使用, 必须给定初始值。
代码块局部变量{}
面向对象 之 封装
封装的两个含义:
1.把对象的状态和行为看成一个统一的整体,将二者存放在一个独立的模块中(类);
2."信息隐藏", 把不需要让外界知道的信息隐藏起来,尽可能隐藏对象功能实现细节,字段;
封装机制在程序中的体现是:把描述对象的状态用字段表示,描述对象的行为用方法表示,把字段和方法定义在一个类中,并保证外界不能任意更改其内部的字段值,也不允许任意调动其内部的功能方法。
程序中的一种体现:通常将类中的成员变量私有化(private),通过对外提供方法(setXxx,getXxx),可对该变量(xxx)进行访问。
boolean 类型的变量没有getXX,只有 isXX;
JavaBean规范:
一个类必须有一个参数为空的构造方法,所有的字段必须使用private修饰;并向外提供getter/setter
若字段的第二个字母是小写的,把第一个字母变成大的,再加上get/set作为前缀;(最常见的)
若第二个字母是大写的,就保持原样再加上get/set;(特殊)
this关键字
特点:this表示当前对象。
当前对象 ←→ 当前正在调用实例成员的对象
换言之:谁调用了方法,谁就是当前对象。
什么时候使用this关键字呢?
方法间的相互调用;
this.字段;
构造器中相互调用,但是此时this([参数])必须写在构造方法第一行。
this不能用在static修饰的方法里和static修饰的代码块里;