JAVA——构造方法

构造方法:实现在实例化之后为属性赋值;
构造方法是类的一个特殊成员,在类实例化后被自动调用。

(一)构造方法的定义

一,构造方法满足以下三个条件:

  1. 方法名与类名相同;
  2. 在方法名前没有返回值类型的说明;
  3. 在方法中不能使用return语句返回一个值,但是可以单独写return语句作为方法的结束。

二,关于构造方法的使用:

  1. 若没有定义构造方法,系统会自动提供一个默认的构造方法。
  2. 若是定义了构造方法,则以定义的构造方法为准。
  3. 构造方法的调用和对象内存分配几乎是同步完成的,因此我们可以利用构造方法来为类中的属性进行初始化操作。
  4. 类中组成:属性,构造方法,方法
    · 属性是在对象开辟堆内存时开辟的空间 ;
    · 构造方法是在使用new后调用的;
    · 普通方法是在空间开辟了、构造方法执行之后可以多次调用的。
  5. 构造方法一般使用public修饰

系统自动创建的默认构造方法形式:

//默认的构造方法中没有参数,常用形式为以下形式
public 类名(){

}

自己定义的构造方法形式:

public 类名(参数类型 参数,参数类型 参数...){

}

具体代码为:

class Person2{
	//方法,此处先使用公共属性
	public String name;
	public int age;
	//构造方法
	public Person1(String n,int i){
		name = n;
		age = i;
	}
	//方法
	public void intriduce(){
		System.out.println("姓名:"+name+",年龄:"+age);
	}
}

举一个完整例子:

 class Person2{
 
	 //属性——private封装
	private String name;
	private int age;
	//对属性的 setter设置 和 getter获取
	public void setName(String n){
		name = n;
	}
	public String getName(){
		return name;
	}
	public void setAge(int a){
		if(age < 0 || age >= 150){
			System.out.println("输入错误!");
		}
		else{
		age = a;
		}
	}
	public int getAge(){
		return age;
	}
	
	//构造方法
	public Person2(String n,int a){
		name = n;
		setAge(a);
	}
	
	//方法
	public void intriduce(){
		System.out.println("姓名:"+name+",年龄:"+age);
	}
}

public class Test3{
	public static void main(String[] args){
		Person2 sg = new Person2("kelly",21);
		//使用了new之后调用构造方法,即赋值
		sg.intriduce();
	}
}

运行结果如下:
在这里插入图片描述

(二)构造方法的重载

1, 在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。

2,通过不同的构造方法来为不同属性赋值。

· 若干构造方法,最好按照参数个数升序或降序。

对上个例子进行修改:

 class Person2{
	 //方法——private封装
	private String name;
	private int age;
	//setter设置 和 getter获取
	public void setName(String n){
		name = n;
	}
	public String getName(){
		return name;
	}
	public void setAge(int a){
		if(age < 0 || age >= 150){
			System.out.println("输入错误!");
		}
		else{
		age = a;
		}
	}
	public int getAge(){
		return age;
	}
	//构造方法1,只有一个参数
	public Person2(String n){
		name = n;
	}
	//构造方法2,两个参数
	public Person2(String n,int a){
		name = n;
		setAge(a);
	}
	//方法
	public void intriduce(){
		System.out.println("姓名:"+name+",年龄:"+age);
	}
}

public class Test3{
	public static void main(String[] args){
		Person2 sg1 = new Person2("kelly",21);
		//调用构造方法2
		
		Person2 sg2 = new Person2("张三");
		//调用构造方法2
		
		sg1.intriduce();
		sg2.intriduce();
	}
}

运行结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xmfjmcwf/article/details/83997054