构造方法与this

  • 构造方法

特点:与类名相同、没有返回值、有一个系统默认生成的无参构造方法,可进行重载

public class Test {

	public Test() {//没有返回值、没有void,名字与类相同
		
	}
}

构造方法的过程:

Test t=new Test();//表示有一个Test类型的变量t,new Test表示创建一个对象,将此对象存入t中。

此时,有一个栈内存t被开辟成功,new Test()调用构造方法时,在堆内存中开辟了一个内存b,将b存入t中,而b中的值为Test的第一个属性,b+1中存储下一个属性,以此类推。

创建匿名对象:

new Test();//没有变量接收、只能用一次,因为每new一次就创建一个对象

构造方法的重载:3种类型。参数个数不同、参数类型不同、参数类型顺序不同。

public class Test {

	int age;
	String name;
	public Test() {
		
	}
	public Test(int a) {
			age=a;
		}
	public Test(String s) {
			name=s;
		}
	public Test(int a,String s) {
			age=a;
			name=s;
		}
	public Test(String s,int a) {	
			name=s;//与上一个输出结果一样,但参数顺序不同。
			age=a;
		}
}
  • this

用法:

表示当前对象: this可以在非静态方法中直接使用,但是在静态方法中不能使用this

调用构造方法:只能在构造方法内部的第一行。且调用其它构造方法时不能方法一调用方法二,二调用三,三调用一,如此形成回路,会造成死循环。

调用属性:当参数与属性名字相同时,可以用this区分。如this.name=name;

总结:

无参构造方法被重写时,原来系统的构造方法已经不存在了。

每new一次,就创建一个对象。

this可以被看作一个可以调用构造方法的对象(对象不能调用构造方法)。  

猜你喜欢

转载自blog.csdn.net/baidu_40450846/article/details/83962281
今日推荐