如何設置類的顯示信息
要顯示一個類的信息,怎麼做?
1、 一個類通常要提供顯示類的信息的方法。但如果自己寫如show()會不規範。
2、 打印一個類,其實是調用類的toString( )方法。如果類自己沒有重寫toString()方法,則調用Object的String()方法。
示例:
package bu18;
public class Test2 {
public static void main(String[] args){
Student stu1 = new Student();
stu1.setName("張三");
stu1.setAge(20);
System.out.print(stu1);
}
}
class Student extends Object{
public String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
if(age<0 ||age>150){
System.out.println("日誌:輸入年齡不合法。"+age);
age = 18;//學生默認18歲
}
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString(){
return "學生:姓名="+this.name+";年齡="+this.age;
}
}
改進:
1、 空構造方法
2、 在多次調用“+”來創建新字串的地方,改用StringBuffer。
到此,纔是一個比較完善的類設計。
class Student{
public String name;
private int age;
public Student(){
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age<0 ||age>150){
System.out.println("日誌:輸入年齡不合法。"+age);
age = 18;//學生默認18歲
}
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString(){
StringBuffer bf = new StringBuffer();
bf.append("學生:姓名=");
bf.append(this.name);
bf.append(";年齡=");
bf.append(this.age);
return bf.toString();
}
}
同學提問:如果一個類有10個屬性,那麼就要對付一共20個getter和setter。會不會太多了?
回答:不會。一是因爲getter和setter可以通過IDE(如Eclipse)生成;二是getter和setter在很多JAVA前沿的技術都必須設計。比如不這樣設計網頁就不能獲取的成員變量如name的值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.