単語クラスから来ているの分類(カテゴリー何かが置かれているには)、今、私たちはすべてのことを聞いたことがあるクラスは青写真のようなものですが、これは正確に何を意味するのでしょうか?これは、クラスが特定のカテゴリの説明を保持していることを意味します(Javaを使用した例でクラス、オブジェクト、インスタンスの違いを示したいので、読者にそれを読んでいる間、ストーリーのように視覚化するように要求します。問題ないJavaに精通していない)だから、私たちはメイクを始めましょうカテゴリー呼ばHumanBeing次のようにJavaプログラムがそれを表現しますので、
class HumanBeing{
/*We will slowly build this category*/
}
さて、HumanBeingが一般的に持っている属性は、名前、年齢、身長、体重です。今のところ、これらの4つの属性に限定して、カテゴリに追加しましょう。
class HumanBeing{
private String Name;
private int Age;
private float Height;
private float Weight;
/*We still need to add methods*/
}
これで、すべてのカテゴリに動作があります。たとえば、カテゴリ犬には吠える、フェッチする、転がすなどの動作があります。同様に、カテゴリHumanBeingにも特定の動作があります。たとえば、HumanBeingにあなたの名前/年齢/体重/を尋ねると、高さ?名前/年齢/体重/身長がわかるはずなので、Javaでは次のようにします
class HumanBeing{
private String Name;
private int Age;
private float Height;
private float Weight;
public HumanBeing(String Name,int Age,float Height,float Weight){
this.Name = Name;
this.Age = Age;
this.Height = Height;
this.Weight = Weight;
}
public String getName(){
return this.Name;
}
public int getAge(){
return this.age;
}
public float getHeight(){
return this.Height;
}
public float getWeight(){
return this.Weight;
}
}
これで、カテゴリHumanBeingに動作が追加されたので、名前、年齢、身長、体重を尋ねることができますが、これらの詳細は誰から尋ねますか。これclass HumanBeing
は単なるカテゴリであるため、たとえば建築家が設計図を作成します。彼が建てたい建物の紙、今は青写真(建物の説明)に住むことはできません私たちは建物が建てられて初めて住むことができますそれでここで私たちは私たちのカテゴリーから人間を作る必要があります上記で説明したので、Javaでそれを行うにはどうすればよいですか
class Birth{
public static void main(String [] args){
HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);
}
}
上記の例では、age age height weightという名前の最初の人間を作成したので、上記のコードで正確に何が起こっているのでしょうか。。私たちはされているインスタンス化私たちのカテゴリHumanBeing私たちのクラスのすなわちアンオブジェクトが作成されます
注: オブジェクトとインスタンスは同義語ではない場合によっては、オブジェクトとインスタンスは同義語のように見えますが、そうではありません。両方の場合を示します。
ケース1:オブジェクトとインスタンスは同義語のようです
少し詳しく説明します。カテゴリHumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);
のオブジェクトがヒープメモリ上に作成され、それにアドレスが割り当てられ、firstHuman
そのアドレスへの参照を保持している場合、このオブジェクトは次のようになります。HumanBeingのオブジェクトともHumanBeingのアンインスタンス。ここでは、オブジェクトとインスタンスは同義語のようです。繰り返しますが、これらは同義語ではありません。
ストーリーを再開しましょう。firstHumanを作成しました。名前、年齢、身長、体重を尋ねることができます。これがJavaでの方法です。
class Birth{
public static void main(String [] args){
HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);
System.out.println(firstHuman.getName());
System.out.println(firstHuman.getAge());
...
...
}
}
だから私たちは最初の人間を持っていて、最初の人間にいくつかの資格を与えることによって羽を動かします、彼を医者にしましょう、それで私たちは医者と呼ばれるカテゴリーを必要としそして私たちの医者にいくつかの行動を与えます、それでjavaでは次のようにします
class Doctor extends HumanBeing{
public Doctor(String Name,int Age,float Height,float Weight){
super(Name,Age,Height,Weight);
}
public void doOperation(){
/* Do some Operation*/
}
public void doConsultation(){
/* Do so Consultation*/
}
}
ここでは、コードに再利用性をもたらす継承の概念を使用しました。すべての医師は常に最初にHumanBeingになるため、Doctorには名前、年齢、体重、身長があり、再度書き込む代わりにHumanBeingから継承されます。まだ作成していない医師の説明を書いたばかりなので、で医師を作成しましょう。class Birth
class Birth{
public static void main(String [] args){
Doctor firstDoctor = new Doctor("Strange",40,6,80);
.......
.......
/*Assume some method calls , use of behaviour*/
.......
.......
}
}
ケース2:オブジェクトとインスタンスが同義語ではない
上記のコードでは、カテゴリDoctorをインスタンス化し、それを実現していることを視覚化できます。つまり、カテゴリDoctorのオブジェクトを作成しているだけです。すでにわかっているように、オブジェクトはヒープメモリに作成されます。そしてfirstDoctor
、ヒープ上のオブジェクトへの参照を保持しています。
この特定のオブジェクトfirstDoctor
は次のとおりです(firstDoctor
オブジェクトへの参照を保持していることに注意してください。オブジェクト自体ではありません)。
firstDoctor
オブジェクトclass Doctor
とAのアンインスタンスclass Doctor
firstDoctor
のオブジェクトでclass HumanBeing
はなく、のインスタンスですclass HumanBeing
したがって、特定のオブジェクトは特定のクラスのインスタンスになることができますが、その特定のクラスのオブジェクトである必要はありません。
結論:
オブジェクトが特定のカテゴリのすべての特性を満たしている場合、そのオブジェクトは特定のカテゴリのインスタンスであると言われます。
実世界の例は次のようになります、私たちは最初に人間として生まれたので、私たちを人間のオブジェクトとしてイメージします、今私たちが成長するとき、私たちは責任を負い、新しいスキルを学び、人生の例でさまざまな役割を果たします息子、兄弟、娘、父、母は今私たちは実際に何ですか?私たちは人間のオブジェクトであると言うことができますが、兄弟、娘、...などのインスタンス
これがお役に立てば幸いです
ありがとうございました