Java入门.构造块和静态代码块

package pro1;

class Person {
	private String name;
	private int age;

	{
		// 和构造方法一样,只要对象实例化,肯定会运行一次
		// 在构造方法之前运行
		System.out.println("构造块");
	}

	static {
		// 不管创建了多少个对象,都只运行一次
		System.out.println("静态代码块");
	}

	public boolean compare(Person p1) {
		Person p2 = this;
		if (p2 == p1) {
			return true;
		}
		if ((p2.age == p1.age) && p2.name.equals(p1.name)) {
			return true;
		} else {
			return false;
		}
	}

	public static int count = 0;

	public Person() {
		count++;
		System.out.println("共初始化了" + count + "个对象");
	}

	public Person(String name, int age) {
		this();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

}

public class T4 {
	public static void main(String[] args) {
		Person[] persons = new Person[2];
		persons[0] = new Person("张三", 111);
		persons[1] = new Person("张三", 111);
		System.out.println("两个对象是否相同: " + persons[0].compare(persons[1]));
	}
}


猜你喜欢

转载自8850702.iteye.com/blog/2280455
今日推荐