程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 創建自己的對象

創建自己的對象

編輯:JAVA編程入門知識

  要創建自己的對象實例,必須首先為其定義一個構造函數。構造函數創建一個新對象,賦予對象屬性,並在合適的時候賦予方法。例如,下面的示例為 pasta 對象定義了構造函數。注重 this 要害字的使用,它指向當前對象。

// pasta 是有四個參數的構造器。
function pasta(grain, width, shape, hasEgg)
{
    // 是用什麼糧食做的?
    this.grain = grain;

    // 多寬?(數值)
    this.width = width;     

    // 橫截面外形?(字符串)
    this.shape = shape;   

// 是否加蛋黃?(boolean    this.hasEgg = hasEgg;  
}

  定義了對象構造器後,用 new 運算符創建對象實例。

var spaghetti = new pasta("wheat", 0.2, "circle", true);
var linguine = new pasta("wheat", 0.3, "oval", true);

  可以給對象實例添加屬性以改變該實例,但是用相同的構造器生成的其他對象定義中並不包括這些屬性,而且除非你特意添加這些屬性那麼在其他實例中並不顯示出來。假如要將對象所有實例的附加屬性顯示出來,必須將它們添加到構造函數或構造器原型對象(原型在高級文檔中討論)中。

// spaghetti 的附加屬性。
spaghetti.color = "pale straw";
spaghetti.drycook = 7;
spaghetti.freshcook = 0.5;

var chowFun = new pasta("rice", 3, "flat", false); 
// chowFun 對象或其他現有的 pasta 對象
// 都沒有添加到 spaghetti 對象
// 的三個新屬性。


// 將屬性‘foodgroup’加到 pasta 原型對象
// 中,這樣 pasta 對象的所有實例都可以有該屬性,
// 包括那些已經生成的實例。
pasta.prototype.foodgroup = "carbohydrates"

// 現在 spaghetti.foodgroupchowFun.foodgroup,等等
// 均包含值“carbohydrates”。

在定義中包含方法

  可以在對象的定義中包含方法(函數)。一種方法是在引用別處定義的函數的構造函數中添加一個屬性。例如,下面的示例擴充上面定義的 pasta 構造函數以包含 toString 方法,該方法將在顯示對象的值時被調用。

// pasta 是有四個參數的構造器。
// 第一部分與上面相同。
function pasta(grain, width, shape, hasEgg)
{
    // 用什麼糧食做的?
    this.grain = grain;

    // 多寬?(數值)
    this.width = width;     

    // 橫截面外形?(字符串)
    this.shape = shape;   

    // 是否加蛋黃?(boolean    this.hasEgg = hasEgg;  

    // 這裡添加 toString 方法(如下定義)。
    // 注重在函數的名稱後沒有加圓括號;
    // 這不是一個函數調用,而是
    // 對函數自身的引用。
    this.toString = pastaToString;
}

// 實際的用來顯示 past 對象內容的函數。 
function pastaToString()
{
    // 返回對象的屬性。

    return "Grain: " + this.grain + "
" +
        "Width: " + this.width + "
" +
        "Shape: " + this.shape + "
" +
        "Egg?: " + Boolean(this.hasEgg);
}

var spaghetti = new pasta("wheat", 0.2, "circle", true);
// 將調用 toString() 並顯示 spaghetti 對象
// 的屬性(需要Internet 浏覽器)。
window.alert(spaghetti);

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved