构造方法
- 概念:对象被创建时会调用的方法,对象在被创建时,也就是在被new时会自动调用构造方法。
输出“我被调用了”。
怎么定义构造方法
- 构造方法可以有参数也可以无参数。
- 构造方法无返回值,也不需要声明void等关键字。
- 构造方法名必须与类名相同。
总结
对象的构造方法:
对象在被创建时,也就是被new的时候,会自动调用构造方法。
可以在一个构造方法中调用另一个构造方法
this(Employee # , s) ?不确定
1. 在构造方法中可以做对象初始化操作。 (不太理解)
2. 构造方法与对象的方法不同,它是对象创建时自动调用的。
3. 构造方法可以有参数也可以无参数。
4. 构造方法无返回值。
5. 构造方法名必须与类名相同。
6. 如果定义的类没有声名构造方法,对象在创建时默认使用空的构造方法。
this关键字
在上述代码中可以发现,在构造方法中name和age并没有设置成功,stu对象的name属性和age属性的值还是默认定义好的张三和18。
为解决这个问题需要知道1.什么是成员变量 2.this关键字
成员变量
成员变量就是对象的属性:
this 关键字
关于this关键字,你只需要记住它就是指自身,this即代表自己,this.属性访问的是自己的属性、this()访问的就是自己的无参构造方法。
例1.this.属性
例2. this.属性,this()
输出:
I am
张三
可以发现,如果我们把上述this.name = name改为 name = name,那么最终的结果就变成了:
I am
null
this()调用的是Person自己的无参构造方法,this.name访问的是Person对象自身的name,而方法参数中的name则表示方法传入的值。
- this负责指向本类中的成员变量
- 在构造函数中想要调用成员变量可以在前面加上this.
- 在方法中形参的优先级高于成员变量的优先级
- this 可以代替本类中的构造函数
- 指向本类中的成员变量
- 指向本类中的成员方法
- 可以当做构造函数使用
static关键字
static关键字的意思
static是静态的意思,是一个修饰符,就像是一个形容词,是用来形容类,变量,方法的。
static修饰变量,这个变量就变成了静态变量,修饰方法这个方法就成了静态方法,
static关键字方便在没有创建对象的情况下来进行调用(方法/变量)。
static关键字的作用
static关键字你可以理解为是一个形容词,一般是用来形容类、方法、变量,代码块,还有一个作用是用来静态导包,现在只讨论它的三个用法。
1. 修饰变量
不使用static关键字访问对象的属性:
使用static关键字访问对象的属性:
注意: 如果一个类的成员变量被static修饰了,那么所有该类的对象都共享这个变量。无论这个类实例化多少对象,它的静态变量只有一份拷贝。
如果:
输出:
李四
李四
李四
2.修饰方法
用static关键字修饰的方法叫做静态方法。静态方法我们已经用过,它有一个特点相信你已经很熟悉,那就是不需要创建对象就可以直接使用。
如:
注意:
- 静态方法不能使用类的非静态变量;
- 静态方法可以直接调用静态方法,但是调用普通方法只能通过对象的实例才能调用。
3.静态代码块
先来看一段静态代码块的运行效果:
输出结果:
我被调用了
上图中static{ }就是一个静态代码块。
我们在main方法中没有编写任何代码,可是运行的时候,程序还是会输出我被调用了,由此我们可以发现静态代码块是不需要依赖main方法就可以独立运行的。
关于静态代码块你只需要记住一句话:在类被加载的时候运行且只运行一次。
静态代码块中变量和方法的调用也遵守我们之前所说的规则,即只能直接调用静态的属性和方法。