物件的建立和銷毀

2021-08-29 16:42:35 字數 1578 閱讀 5953

考慮用靜態工廠方法代替構造器

**示例:

public

static boolean valueof(boolean b)

當構造引數很多的時候考慮使用建造者(模式)
**示例:

// 原始

public

class nutritionfacts

}

// builder pattern

public

class nutritionfacts

public builder calories(int val)

public builder fat(int val)

public builder carbohydrate(int val)

public builder sodium(int val)

public nutritionfacts build()

} private nutritionfacts(builder builder)

}

用列舉實現單例(模式)
**示例:

public enum elvis

}

避免建立不必要的物件
**示例:

public

class person

}

class person 

public

boolean isbabyboomer()

}

**示例:

// hideously slow program! can you spot the object creation?

public

static

void main(string args)

system.out.println(sum);

}

清除過時的物件引用
**示例:

// can you spot the "memory leak"?

public

class stack

public

void push(object e)

public object pop()

/*** ensure space for at least one more element, roughly

* doubling the capacity each time the array needs to grow.

*/private

void ensurecapacity()

}

public object pop()
避免使用finalize()

effective java 建立和銷毀物件

b 1.考慮靜態方法替代建構函式 b 靜態工廠方法有3個好處 b a.b 靜態工廠方法具有名字使程式碼易讀,名字不必和類名一樣具有更高靈活性。b b.b 實現singleton模式。b c.b 能返回乙個原返回型別的子類,形成面向介面程式設計的好習慣。壞處 b a.b 不能被繼承。b b.b 不夠物...

1 建立和銷毀物件

1.使用建構函式 2.使用返回物件的靜態函式 1.方法中的區域性變數 必須初始化才可以進行使用 2.類的屬性變數 可以不進行初始化 物件的reference初始化為null 基本型別變數會自動的初始化 3.變數的初始化順序 3.1首先初始化類的屬性 呼叫他們的建構函式 3.2呼叫自己的建構函式 例子...

第2章 建立和銷毀物件

優勢1 有特定的名稱 如果構造器的引數本身沒有確切地描述正被返回的物件,那麼具有適當名稱的靜態工廠方法會更容易使用。biginteer.probableprime int,random 指明返回的biginteger可能為素數,比原始的建構函式表示的更清楚。public class biginteg...