如何設置類的顯示信息

要顯示一個類的信息,怎麼做?
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的值。
發佈了1 篇原創文章 · 獲贊 0 · 訪問量 2860
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章