Java中的构造方法

构造方法:

简化main程序的一种方法

构造方法无法被[修饰词]fina,static修饰,属于非静态代码块的一种,主要作用是用来简化mian程序从而降低计算机内存存储空间的占用;没有返回值。

package sir;

public class User {
	int age;
	String name ;
	String adress;
	User(int a,String b,String c){
		age=a;
		name=b;
		adress=c;
		
	}
	User(int a,String b){
		
		this(a);
		name=b;		
	}
	User(int a){
		age=a;		
	}		
    User(int a){
		this(a,null,null);		
	}		
	public static void main(String[] args) {
		User qq=new User(60,"lala", "haha");
/*因为构造方法属于非静态代码块,故不能使用“类目.元素()”的方法直接在main中调用,必须先定义对象,将定义在堆中的类的值赋予给一个变量qq,再通过“qq.元素”进行输出*/
		System.out.println(qq.age);
		System.out.println(qq.name);
	
	}

}

在同一个类中可定义多个构造方法,这些构造方法属于重载(方法名相同,参数列表不同,参数列表的不同体现在参数类型不同,参数数量不同),不同的构造方法可以根据this()相互调用,此时this()必须在有效代码的第一行。少的也可以调用多的,但必须在参数列表中输入剩余参数的默认值。

构造方法也有无参构造方法:

package apple;

public class Student {
	
    Student() {
		System.out.println("hahaha");
	}
	public static void main(String[] args) {
		new Student();
	}
}

在非静态代码块格式为:类名(){ }

在main方法中的格式为:new.类名();

的结构对构造方法进行调用。这一结构要与静态代码块在main方法中调用的格式:类名.方法名();区分开。

若定义一个类时,没有定义有参构造方法,则系统默认定义了一个无参构造方法,并隐藏,若新定义一个有参构造方法后,之前隐藏的无参构造方法被系统抹去。

package apple;
public class Person {
	int age;
	String name;
	public Person() {
	}//public Person(){ }就是系统自动隐藏的无参构造方法;

	public static void main(String[] args) {
		Person x=new Person();
		System.out.println(x.age);
	}
}

若此时新定义一个有参构造方法,则默认的无参构造方法消失。

package apple;
	
public class Person {
	int age;
	String name;
	public Person(int 1,String a) {
        System.out.println("啦啦啦");
	}//此时默认的无参构造方法被抹除,若需要无参构造方法,则必须重新定义;

	public static void main(String[] args) {
		Person x=new Person();
		
		System.out.println(x.age);
	}
}

 

你可能感兴趣的:(java)