数据结构与算法分析-第一章Java类(02)

来源:互联网 发布:西门子plc编程软件xp 编辑:程序博客网 时间:2024/06/05 06:28

编写一个名为Person的类,它包含分别表示人的名字与年龄的两个数据域。要求此类包含对其中任何一个数据域进行设置与获取的方法。还要求包含可进行下列测试的方法:

  • 两个Person对象是否相等--即是否有相同的名称与年龄
  • 一个人是否比另一个人年长
最后,还要求有一个toString方法,以返回由人的名称与年龄组成的字符串。

写一个程序演示类的每一个方法

代码实现

package com.crazycoder2010.datastructure.ch01;public class Person {private String name;private int 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;}@Overridepublic boolean equals(Object obj) {if(obj == null || !(obj instanceof Person)){return false;}Person that = (Person)obj;boolean isAgeEquals = this.age == that.age;if(!isAgeEquals){return false;}if(this.name == null){if(that.name == null){return true;}else{return false;}}else{return this.name.equals(that.name);}}public boolean isOlderThan(Person person){return this.age > person.getAge();}@Overridepublic String toString() {return "name:"+this.name+",age:"+this.age;}}
测试代码

package com.crazycoder2010.datastructure.ch01;public class PersonTest {public static void main(String[] args) {Person person = new Person();person.setName("Kevin");person.setAge(20);System.out.println(person);Person person2 = new Person();person2.setName("Kevin");person2.setAge(20);System.out.println(person.equals(person2));//trueSystem.out.println(person.equals(new Person()));//falseSystem.out.println(person.equals(null));//falsePerson person3 = new Person();person3.setName("Kevin");System.out.println(person.equals(person3));//falseperson3.setAge(28);System.out.println(person.isOlderThan(person3));//false}}
执行输出结果

name:Kevin,age:20truefalsefalsefalsefalse



原创粉丝点击