深入理解java中的this关键字
1、在构造器中的 this.
package com.Test;
class Test {
private String name;
private int age;
public Test(String name, int age) {
name = name;
age = age;
}
public String getIn() {
return "姓名:" + name + ",年龄," + age;
}
public static void main(String[] args) {
Test test = new Test("张三", 33);
System.out.println(test.getIn());
}
}
可知结果并没有正确的赋值,当构造方法中没有this时候,name 和 age都是构造方法中的name和this和类没有关系,只有加上this.时,才能明确是类的属性
package com.Test;
class Test {
private String name;
private int age;
public Test(String name, int age) {
this.name = name;
this.age = age;
System.out.println(age);
}
public String getIn() {
return "姓名:" + name + ",年龄," + age;
}
public static void main(String[] args) {
Test test = new Test("张三", 33);
System.out.println(test.getIn());
}
}
2、 在构造器中的this()
如果在类中有多个构造方法,也可以利用this关键字互相调用
package com.Test;
class Test {
private String name;
private int age;
public Test() {
System.out.println("新对象实例化");
}
public Test(String name) {
this();
this.name = name;
}
public Test(String name, int age) {
this(name);
this.age = age;
}
public String getIn() {
return "姓名:" + name + ",年龄," + age;
}
public static void main(String[] args) {
Test test = new Test("张三", 33);
System.out.println(test.getIn());
}
}
在使用this关键字调用其他关键字的时候,有以下限制:
1、this()调用其他构造器的语句时只能挡在构造器的首行(普通方法是不行的);
2、在使用this调用其他构造器的时候,至少有一个构造方法不是用this调用的,否则会循环下去。
3、使用this关键字调用当前对象
this就是值得当前类的对象与直接调用类的对象是一样的
深入理解java中的final关键字
final关键字可以用于三个地方。用于修饰数据、修饰方法参数、修饰方法、修饰类。
被final关键字修饰的类不能被继承,被final关键字修饰的类属性和类方法不能被覆盖(重写)