重载构造器+几种初始化

重载构造器

用this调用另一个构造器

无参数构造器

实例域初始化

对象初始化块

静态初始化块

import java.util.*;

public class Test
{
	public static void main(String args[])
	{
		Employee[] staff = new Employee[3];
		
		staff[0] = new Employee("Bob", 40000);
		staff[1] = new Employee(60000);
		staff[2] = new Employee();
		
		for(Employee e: staff)
		{
			System.out.println("name=" + e.getName() + ", salary=" + e.getSalary() + ", id=" + e.getId());
		}
	}
}

class Employee
{
	private static int nextId;
	
	private int id;
	private String name = "";	//实例域初始化
	private double salary;
	
	static	//静态初始化块
	{
		Random gen = new Random();
		nextId = gen.nextInt(10000);
	}
	
	{	//对象初始化块
		id = nextId;
		nextId++;
	}
	
	//三个重载构造器
	public Employee(String n, double s)
	{
		name = n;
		salary = s;
	}
	
	public Employee(double s)
	{
		this("Employee#"+nextId, s);	//调用另一个构造器
	}
	
	public Employee()
	{
		//name=""、salary=0、id已经对象初始化块中初始化了
	}
	
	public String getName()
	{
		return name;
	}
	
	public double getSalary()
	{
		return salary;
	}
	
	public int getId()
	{
		return id;
	}
}

output:

name=Bob, salary=40000.0, id=4789
name=Employee#4790, salary=60000.0, id=4790
name=, salary=0.0, id=4791
发布了137 篇原创文章 · 获赞 51 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/Pop_Rain/article/details/73770650
今日推荐