最新文章

LightBlog

2019/10/25

Java 物件的建立

類別名稱  物件名稱  =  new   建構子

舉例:
MyClass obj = new MyClass();

MyClass() : 是 建構子 ( Constructor) ,而 建構子名稱一定與類別名稱相同。
上述程式包含兩個動作,一個是宣告,一個是產生物件。如下動作:

MyClass obj;                               // 宣告物件名稱為 obj
obj = new MyClass();                 //呼叫類別建構子,配置物件記憶體空間,並設定物件指向                                                            記憶體位置

----------------------------------------------------   範例程式開始 ----------------------------------------------
public class Object1{
public static void main(String[] args){
System.out.println(" 標題="+MyObj.title);     // 四星
//System.out.println(" 尺寸="+MyObj.size);  // 錯誤程式碼 , MyObj 的 int size要                                                                                              static:靜態,表可為類別的所有物件共享
MyObj a = new MyObj();
MyObj b = new MyObj();
a.color=" 紅色";       //修改a 物件的顏色屬性
a.title=" 翠谷";         //修改a 物件的標題屬性
b.size=20;                   //修改b 物件的尺寸屬性

System.out.println("a 物件的顏色="+a.color);    //紅色    a.color=" 紅色"; 
System.out.println("b 物件的顏色="+b.color);    //白色    MyObj(){color=" 白色";}
System.out.println("a 物件的尺寸="+a.size);       //10        MyObj(){size=10;}
System.out.println("b 物件的尺寸="+b.size);      //20         b.size=20;
System.out.println("b 物件的標題="+b.title);      //翠谷    a.title=" 翠谷";  a 改掉title
System.out.println("myObj 類別的標題="+MyObj.title);     //翠谷
}
}


class MyObj
{
   String color; //顏色屬性
   int size=20; //尺寸屬性
   static String title=" 四星"; //標題屬性,此一屬性宣告為靜態

     MyObj() //建構子:與類別相同、不加修飾語、沒有回傳值
    {  
          color=" 白色";
          size=10;
     }
}

---------------------------------------------------------  程式輸出   ----------------------------------------------

E:\test>java Object1

 標題= 四星

a 物件的顏色= 紅色
b 物件的顏色= 白色
a 物件的尺寸=10
b 物件的尺寸=20
b 物件的標題= 翠谷
myObj 類別的標題= 翠谷

---------------------------------------------  另一個範例程式開始 ----------------------------------------------

public class Object12{
public static void main(String[] args){
System.out.println("=================程式開始=================");
System.out.println("MyObj.title="+MyObj.title);
System.out.println("MyObj.size="+MyObj.size);
System.out.println("MyObj.color="+MyObj.color);
System.out.println("=========MyObj a = new MyObj();=================");
System.out.println("=========MyObj b = new MyObj();=================");

MyObj a = new MyObj();
MyObj b = new MyObj();


System.out.println("MyObj.title="+MyObj.title);
System.out.println("MyObj.size="+MyObj.size);
System.out.println("MyObj.color="+MyObj.color);
 System.out.println("a.title="+a.title);
 System.out.println("a.size="+a.size);
System.out.println("a.color="+a.color);
System.out.println("b.title="+b.title);
  System.out.println("b.size="+b.size);
System.out.println("b.color="+b.color);




System.out.println("=================a.title=翠谷; =================");
System.out.println("=================b.size=20; ====================");
  System.out.println("=================a.color=紅色;=================");


a.title=" 翠谷"; //修改a 物件的標題屬性
b.size=10; //修改b 物件的尺寸屬性
  a.color=" 紅色"; //修改a 物件的顏色屬性

System.out.println("MyObj.title="+MyObj.title);
System.out.println("MyObj.size="+MyObj.size);
System.out.println("MyObj.color="+MyObj.color);
System.out.println("a.title="+a.title);
  System.out.println("a.size="+a.size);
System.out.println("a.color="+a.color);
System.out.println("b.title="+b.title);
System.out.println("b.size="+b.size);
System.out.println("b.color="+b.color);



}
}

class MyObj{

  static String title=" 四星"; //標題屬性,此一屬性宣告為靜態
  static int size=20;                 //尺寸屬性
  static String color;               //顏色屬性



      MyObj()       //建構子:與類別相同、不加修飾語(=friendly:只能被位於同一個package                                  裡的類別成員來存取)、沒有回傳值
     {
                   title="ABC";
                   size=30;
                   color=" 白色";
      }


 }
---------------------------------------------------------  程式輸出   ----------------------------------------------

E:\test>java Object12
=================程式開始=================
MyObj.title= 四星
MyObj.size=20
MyObj.color=null
=================MyObj a = new MyObj();=================
=================MyObj b = new MyObj();=================
MyObj.title=ABC
MyObj.size=30
MyObj.color= 白色

a.title=ABC
a.size=30
a.color= 白色

b.title=ABC
b.size=30
b.color= 白色



=================a.title=翠谷; =================
=================b.size=20; =======================
=================a.color=紅色;=================
MyObj.title= 翠谷
MyObj.size=10
MyObj.color= 紅色

a.title= 翠谷
a.size=10
a.color= 紅色

b.title =翠谷
b.size=10
b.color= 紅色



沒有留言:

Adbox