声明:此文章只适用于初学者入门使用,作者只是个菜鸡,如果有大神看见了请轻点喷。
(1)构造方法
构造方法是一种特殊的方法。它的特殊之处在于:
1.方法名与类名一致。
2.方法名前无返回值类型(比如说一般方法名前有void、int、float....等等,叫返回值类型。)。
3.分为空参构造方法和有参构造方法,当不写构造方法时,虚拟机会自动加载一个空参构造方法。
构造方法的作用是:对类中的成员变量进行初始化(最简单的赋值操作,当然在一些工程当中,会对成员变量做一些奇奇怪怪的初始化)。
接下来,我对代码1-4添加构造方法
public class Person{//1-4
private String name;
private int age;
private float tall;
public Person(){}
public Person(String name,int age,float tall){
this.name=name;
this.age=age;
this.tall=tall;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public void setTall(float tall){
this.tall=tall;
}
public float getName(){
return tall;
}
public void eats(){
Ststem.out.println("人会吃食物");
}
public void sleep(){
System.out.println("人需要睡觉 ");
}
}
(2)this关键字
可能有细心的人会发现公共方法set方法和构造方法当中,变量前都带了一个奇奇怪怪的this.
这个this其实是Java中的一个关键字,那么,它为什么会出现在那个位置呢?
不知道你们观察到另外一个东西没有,那就是set方法括号里的参数名,和成员变量名是一模一样。在虚拟机进行编译的时候,会遵循“就近原则”。所以当你通过参数往进送值时,若无this关键字,那你的值只是传到了局部变量当中(参数也是局部变量)。而当你加了this关键字,就告诉虚拟机这个值要传递到成员变量当中。
总结:当局部变量名与成员变量重名时,this关键字具有指示作用,指向成员变量。
注:有人可能会问为什么不在右边的变量加this,能问出这个问题的人,是存在运算符上的问题。“=”为赋值号,是将右值赋给左值。右值即为局部变量,加了this的左值即为成员变量。
(3)static关键字
在main方法的声明中,void之前有一个"static"。这也是一个关键字,可以修饰变量、方法、代码块、类、内部类(直接修饰),又名“静态”,即被static修饰的成员是静态的。
在理解static关键字之前,我们先要了解一个名词:生命周期。
Java当中有自动“垃圾回收”机制,不需要用类似C语言中的free函数手动回收。Java当中每一个成员都有它的生命周期。从这个类的对象创建到对象发挥作用完的这段时间称为一个对象的生命周期,别的成员的生命周期定义也与之类似。但是,没有一个成员的生命周期与代码运行周期等长(包括全局变量)。但在实际工程中,常常需要一些“全局”的成员存在(即与执行周期等长的生命周期的成员)。而在成员前加static修饰,就可以创造一个与执行周期等长的生命周期的成员(比如静态变量、静态方法等)。
总结:static关键字的作用就是创造一个与执行周期等长的生命周期的成员(比如静态变量、静态方法等)。简单来说就是只要代码不执行完,你这个静态成员都是存在的,并不会被垃圾回收机制自动回收。