首页 > 编程语言 > 详细

java 构造器

时间:2020-01-10 00:04:23      阅读:88      评论:0      收藏:0      [点我收藏+]

构造器在生成对象过程中对属性进行初始化赋值,可重载多个构造器,类中最少有一个隐式构造器,如果显式定义构造器, 系统就不在提供默认的空参数的构造器,所以在自定义构造器时,如果需要new Person() 需写一个空参构造器,不然会报错

0.构造器定义方式

权限修饰符 构造器名(参数列表){
    //  初始化代码体  
}

  

1.隐式

public class PersonTest {
	public static void main(String[] args) {
		Person p = new Person();
		System.out.println(p.age); // 0 默认值;
	}
}
class Person{
	int age; 
    //类体存在隐式空参构造器 权限修饰符跟class相同 }

2.显式空参构造器(跟默认构造器一样 权限修饰符可以更改)

public class PersonTest {
	public static void main(String[] args) {
		Person p = new Person();
		System.out.println(p.age); // 0
	}
}
class Person{
	int age;
	public Person() {
		
	}
}

3.显式有形参列表(重载)

public class PersonTest {
	public static void main(String[] args) {
		Person p1 = new Person(20);
		System.out.println("p1 age is :" + p1.getAge());
		Person p2 = new Person("李狗蛋");
		System.out.println("p2 name is :" + p2.getName());
		Person p3 = new Person(18,"李狗蛋");
		System.out.println("p3 age is :" + p3.getAge() + "\t name is: " + p3.getName());
		
	}
}
class Person{
	private int age;
	private String name;
	public Person(int age) {
		this.age = age;
	}
	public Person(String name) {
		this.name = name;
	}
	public Person(int age,String name) {
		this.age = age;
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public String getName() {
		return name;
	}
}

4.赋值顺序

public class PersonTest {
	public static void main(String[] args) {
		Person p = new Person("李老八");
		System.out.println("name"+p.getName());
		p.setName("轩子巨二兔");
		System.out.println("After setting name:" + p.getName());		
	}
}
class Person{
	private String name;   // null(默认) => “李老八”(构造器) => “轩子老师”(操作赋值)
	public Person(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

  

 

java 构造器

原文:https://www.cnblogs.com/liangfc/p/12173466.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!