(Java核心技术基础知识(12))---- java中this和super的输入理解

深入理解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关键字修饰的类属性和类方法不能被覆盖(重写)

猜你喜欢

转载自blog.csdn.net/wbs925zxh/article/details/88334793
今日推荐