1.クラス:学生のクラスの定義は、学生のクラスは、主に2つの部分から構成され
プロパティは:(どのようなものです)クラスの人々 {
名の文字列名、
年齢、int型の年齢; //属性:フィールド/メンバ変数/インスタンス変数
学生IDを
行動:(私が)んでき
食べる
睡眠ボイド(){} //行動を食べる:メソッド
学習}
インスタンス:人々のP =新しい人々(); //メモリを開放
コンストラクタ:ボイド等人が(){} //すなわち、戻り値を持っていない、追加できません
.New 2:
.. 1)ヒープメモリ開きます
)2をインスタンス変数を初期化するコンストラクタを呼び出します。
3.ローカル変数は初期化されていない使用することはできません。初期化されていないメンバーを使用することができます。
4.ソースファイルは、publicクラスを複数持つことができません。
5.CMDでは、JPSでプロセスを見ることができます。
6.メソッド定義された変数は、ヒープメモリを考慮していません。
学生{クラス
//クラスヘッダー:8バイト
int型の年齢= 20; // 8つのバイトを占有
}
7.コンストラクタは:なしコンストラクタた場合、システムが自動的に引数なしのコンストラクタを提供しない。彼はコンストラクタを書いている間、システムが使用できなくなりました。
1)コンストラクタの名前は大文字と小文字を含め、クラス名と同じでなければなりません。
... 2)コンストラクタは戻り値はありません、また変更がフロントコンストラクタ戻り値の型を追加するように注意していない場合は無効にすることができ、これはこれを行いますコンストラクタは一般的な方法となり、実行時エラーのコンストラクタが見つかりません。
コンストラクタは、クラスの定義で定義されていない場合3.クラスは、施工方法の複数を定義する、コンパイラが自動的にコンストラクタは、任意のコードを実行しない、引数なしでデフォルトコンストラクタを挿入します。
前記構成方法は、パラメータの数、種類、順番にオーバーロードすることができます
8.アクセス修飾子:
公共:公共、誰でも使用することができます。
プライベート:プライベート、それだけで現在のクラスで使用することができます。
パッケージ:同じパッケージのパスにアクセスすることができ、それがデフォルトです。珍しいクラスのパッケージで、現在の初めに書かれた:import.package.src2(参照経路などにpackage.src2)
この方法は、このキーワードで使用することができます。これは、渡されたオブジェクトを表します。名前の競合がある//とき、私たちは現在のオブジェクトを示すためにこのキーワードを追加する必要があります
10.関数に渡された文字列は、追加された機能は、IF(STR == NULL)リターンを覚えています。
11. オブジェクトのコピー:クローン()、クラスオブジェクト()メソッドの書き換えにクローンに追加する必要があります
追加してさらに、クラス猫がCloneableを実装した後。
1)メモリの共有の浅いコピーは、互いに属性の変更を変更します。唯一のint型と文字列の属性のクラスの場合は、これを使用することができます。
器具Cloneableを、アドレス{クラス
のint ID;
}
}
保護オブジェクト・クローン()CloneNotSupportException {スロー
;(super.cloneに戻る)
}
2)ディープコピー、メモリ共有の除去を。プロパティのいくつかの独自の定義のクラスに含まれている場合、これを使用し、それ以外の場合は、共有メモリがあります。
class Address implements Cloneable{
int id;
@Override //需要对这个特有的属性也进行clone的重载
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
class Cat implements Cloneable{
int age;
Address address = new Address();
@Override
protected Object clone() throws CloneNotSupportedException {
Object o = super.clone();//
Cat c = (Cat)o;
c.address = (Address) this.address.clone();
return c; //返回的是对象
}
}