クラスとオブジェクト
私たちは、エンティティの代わりにオブジェクトが、明らかに現実の世界で識別することができることを知っている(すべてのものがオブジェクトである)、各オブジェクトは、独自の一意のID、状態や行動を持っています。
クラスは総称して、同様の特性との振る舞いを持っているものです。クラスは、同じタイプの一般的なオブジェクトを定義するために使用されます。クラスは、オブジェクトのデータフィールドやメソッドを定義し、契約がやっていることですテンプレートや設計図です。オブジェクトは、クラスのインスタンスです。複数のインスタンスは、クラスから作成することができます。オブジェクトのインスタンスをインスタンス化として知られるプロセスのインスタンスを作成し、しばしば交換可能です。
注:主な機能は、オブジェクトを作成するために必要とされず、直接呼び出される(JVM製)
メインプログラムと種類の主な機能は、一般に、メインクラスと呼ばのみ正面玄関、。
分類クラス
- 主なカテゴリ:プログラムを実行するための主な責任は、特定の事柄を記述する必要性に責任がある必要はありません
- エンティティクラス:物事を記述するための主な責任
- ツール:一般的には直接クラスを通して機能(静的)を呼び出すオブジェクトを作成できません
ここではいくつかの一般的なのは、我々はいくつかのツールに精通しているということですされています
Math.abs()Math.random()
Arrays.toString();
System.out.println();
オブジェクトとクラス間の関係:クラスは、オブジェクトの定義、クラスから作成されたオブジェクトです。例えば、犬はクラスであり、すべての犬やハスキー犬の総称は、このクラスのエンティティオブジェクトです。
クラスを定義する方法を
主にその特性や動作を定義します
- 特徴:可変
- 行動:関数
犬カテゴリの定義、名前、性別、年齢、身長、体重、髪の色を備え、店に6つのメンバ変数を定義し、摂食行動と寝て、実行するために、2つのメンバ関数を定義します。
class Dog{
//直接定义在类中的变量 成员变量
姓名 String name;
性别 String sex;
年龄 int age;
身高 double heigth;
体重 double weight;
毛色 String color;
//成员函数(非static函数)
吃 public void eat(){... return;}
睡 public void sleep(){... return;}
}
ハスキーは、オブジェクトを作成します
public class Mian{
public static void main(String[] args) {
Dog Huskies=new Dog();
}
}
プロセスオブジェクトが作成され
、高度なスタックの主な機能を1。
2、ステートメントの新しい犬()の右の実行は、ヒープメモリ内のスペース、ランダムに割り当てられたアドレスを開きます。
3は、メンバ変数とメンバ変数のためのスペースを作成するには、オブジェクト空間内のメンバ関数を作成し、デフォルトで初期化されている(いないオブジェクト空間に、スタック、コールスタックはもはやありません)。
図4に示すように、関数内のローカル変数のスタックを作成し、ヒープメモリ内のオブジェクトのアドレスに格納されています。
ローカル変数のメンバ変数との間の差
の位置の異なる定義:差
- メンバー変数は、クラスで定義されています
- ローカル変数は、プロセスや文の中で定義されています
メモリ内の異なる位置の2つの間の差
- メンバー変数は、ヒープメモリのオブジェクトに格納されています
- ローカル変数の方法でスタックメモリに記憶されています
三つの違い:異なるライフサイクル
- メンバ変数の出現は、オブジェクトの消滅で、今ヒープのうちのオブジェクトとヒープから消えます
- メソッドのローカル変数は今消え飛び出る方法で、スタックが不足すると
異なる初期設定:4を区別する
- ヒープメモリ内のメンバ変数ので、すべてのデフォルトの初期値
- ローカル変数は、デフォルトの初期値ではありませんあなたが使用する前に、手動でこれに値を割り当てる必要があります