解释下这些话
来源:百度知道 编辑:UC知道 时间:2024/06/28 05:05:49
(34) public variable
インスタンス変数は,极力publicにせず,妥当なアクセスメソッドを设けること.
理由: オブジェクト指向の标准.クラスの内部状态に胜手にアクセスさせるのはよくない.ただし,以下の条件をすべて満たす场合,インスタンス変数をpublicにし,直接アクセスさせてもよい.
そのインスタンス変数が他のインスタンス変数と独立であり,単独で変更されても内部の整合性をくずさない.
どちらにしても,getX()/setX() メソッドを书く.
インスタンス変数の実装が将来に渡って変更されないことが根拠付けられる.
また,上记に当てはまらない场合でも,极度に速度を気にする场合は,この限りではない.(ただし,慎重にコメントすること)
例: Stackクラスにおいて,itemCount属性をpublicにしてはならないが,Pointクラスにおいてx, yをpublicにしてもいいかもしれない(极端に速度を気にする场合, ex. Java3D の Vector/Point クラス).
Stack s = new Stack();
s.itemCount = 79; // ここで内部状态が崩れてしまう.
Point p = new Point();
p.x = 30; // 内部状态の整合性は崩れない.
(35) 初期化
初期化をあてにしない(参照がnullに初期化されているとか).また,2度初期化しない.
悪い例:
class PoorInitialization {
private name = “initial_name”;
public Sample() {
name = “initial_name”;
}
理由: 初期化に関するバグを最小化する.
(36) static変数を避ける
static変数(クラス変数)は极力避ける.(static final定数は除く)
理由:
インスタンス変数は,极力publicにせず,妥当なアクセスメソッドを设けること.
理由: オブジェクト指向の标准.クラスの内部状态に胜手にアクセスさせるのはよくない.ただし,以下の条件をすべて満たす场合,インスタンス変数をpublicにし,直接アクセスさせてもよい.
そのインスタンス変数が他のインスタンス変数と独立であり,単独で変更されても内部の整合性をくずさない.
どちらにしても,getX()/setX() メソッドを书く.
インスタンス変数の実装が将来に渡って変更されないことが根拠付けられる.
また,上记に当てはまらない场合でも,极度に速度を気にする场合は,この限りではない.(ただし,慎重にコメントすること)
例: Stackクラスにおいて,itemCount属性をpublicにしてはならないが,Pointクラスにおいてx, yをpublicにしてもいいかもしれない(极端に速度を気にする场合, ex. Java3D の Vector/Point クラス).
Stack s = new Stack();
s.itemCount = 79; // ここで内部状态が崩れてしまう.
Point p = new Point();
p.x = 30; // 内部状态の整合性は崩れない.
(35) 初期化
初期化をあてにしない(参照がnullに初期化されているとか).また,2度初期化しない.
悪い例:
class PoorInitialization {
private name = “initial_name”;
public Sample() {
name = “initial_name”;
}
理由: 初期化に関するバグを最小化する.
(36) static変数を避ける
static変数(クラス変数)は极力避ける.(static final定数は除く)
理由:
大体意思是说:
倭寇,败类,狗娘养的,猪
鸟语
看英文的不更好么
JAVA又不是小日本发明的,何必呢
如果外语不行,中文的也不错的,中国JAVA虽然不如美国发达,但是这些年来翻译的文献也不少了
就是,我反正看不懂 你怎么打出来的