java类之Person

public class Person {
	protected String name;
	protected MyData birthday;
	private static int count=0;
	
	//四个构造函数
	public Person(String name,MyData birthday)
	{
		this.name=name;
		this.birthday=birthday;
		count++;
	}
	//一下三个构造函数都是基于第一个来做的,所以只需要第一个count++
	public Person(String name)
	{
		this(name,new MyData());
	}
	
	public Person()
	{
		this("未知",new MyData());
	}
	
	public Person(Person p)
	{
		this(p.name,new MyData(p.birthday));//深拷贝,系统根据new自动创建name,bitthday实例
		
	}
	
	//给外界提供修改name属性的接口
	public void set(String name)
	{
		this.name=name;
	}
	//给外界提供修改birthday的接口
	public void set(MyData birthday)
	{
		this.birthday=new MyData (birthday);
	}
	
	public String getName()
	{
		return this.name;
	}
	
	public MyData getBirthday()
	{
		return this.birthday;
	}
	
	public String toString()
	{
		return this.name+","+this.birthday.toString()+","+this.getAge()+"岁";
	}
	
	//public int getAge(int year)//year为对象在year年份的年龄
	//{
	//	return year-this.birthday.getYear();
	//}
	
	public int getAge()
	{
		//return getAge(MyData.getThisYear());//MyData中默认的thisYear 是2009年
	return MyData.getThisYear()-this.birthday.getYear();
	}
	//比较两个人的年龄
	public int olderthan(Person p)
	{
		return this.getAge()-p.getAge();
	}
	
	public static void howmany()//统计Person对象的个数
	{
		System.out.println(count+"个Person对象");//访问静态对象Person.count
	}
	public void finalize()
	{
		System.out.println("释放对象("+this.toString()+")");
		this.count--;
	}
	public static void main(String args[])
	{
		Person p1=new Person("李晓明",new MyData(1979,3,15));
		person p2=new Person(p1);
		p2.set(p2.getName().substring(0,2)+"东");
		
		
	}
	
	
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值