1、构造函数
对象初始化,同样要进栈
构造函数里面,可以调用其他的方法吗? 可以
一般函数也可以用类名
构造函数一旦定义过,则默认的函数没有了
构造函数里面可以有return语句吗 ?可以有,结束函数的功能
2、this 关键字
当成员变量与局部变量重名,可以用关键字this来区分
this: 代表当前对象,所在函数所属对象的引用
哪个对象调用了this所在的函数,this就代表哪个对象
3、构造函数与构造函数之间,如何访问
this也可用于在构造函数中调用其他构造函数,但要放在第一行
避免相互调用,造成死循环
4、this关键字的应用
通常在本类中应用
1、static关键字(又是一个修饰符)
类名.属性:可以调用其属性,当然也可以通过对象名.属性
static 特点
1,static是一个修饰符,用于修饰成员
2,static修饰的成员被所有的对象所共享
3,static优先于对象存在,因为static的成员随着类的加载就已经存在
4,其修饰的成员多了一种调用方式,可以直接被类名所调用,调用格式 类名.静态成员
5,静态修饰的数据是共享数据,对象中存储的是特有数据
成员变量(实例变量),类变量,类类型变量(P)
2、成员变量与静态变量的区别
1,两个变量的生命周期不同
成员变量随着对象的创建而存在,回收而释放
静态变量随着类的加截而存在,随着类的消失而消失
2,调用方式不同
成员变量只能被对象调用
静态变量可以被对象调用,也可以类名调用(最好用类名调)
3,别名不同
成员变量也称为实例变量
静态变量称为类变量
4,数据存储位置不同
成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据
静态变量数据存储在方法区的静态区,所以也叫对象的共享数据
5、无法从静态上下文中引用非静态变量(静态先存在,那个时候的对象还不存在)
3、静态方法的注意事项:
1,静态方法只能访问静态成员。(非静态既可以访问静态,又可以访问非静态)
2,静态方法中不可以使用this或super
3,主函数是静态的
4、public static void main(String[] args)固定格式,虚拟机认
主函数特殊之处:
1,格式是固定的
2,被jvm所识别和调用
public: 权限最大
static:虚拟机在调用主函数的时候,不需要对象,直接用主函数所属类名调用即可
void:没有具体的返回值
main:不是关键字,只是一个jvm识别的固定的名字
String[] args:是主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型
args:arguments 参数
5、静态什么时候用?
1,静态变量。成员变量
当分析对象中所具备的成员变量的值都不发生变化,且相同的时候,这时这个成员可以被静态修饰
如果要变化,则必须存储在对象中,是非静态的
如果是相同的数据,对象不需要做修改,只需使用即可,不需要存储在对象中。定义在静态中
2,静态函数
函数是否用静态修饰,就是该函数功能是否有访问到对象中的特有数据
简单点,从源代码看,该功能是否需要房问非静态的成员变量,如果需要,则是非静态的,如果不需要,则可以将该功能定义成静态的。浪费空间
6、类与类之间调用
如果一个类中的方法全是静态的,那么该类是不需要创建对象的,为了保证不让其他成员创建该类对象
那么可以将该类的构造函数私有化。 |
|