Java-----04-----クラスとオブジェクト

3188 ワード

Java オブジェクト向けのプログラミング言語であり、クラスとオブジェクトはJava言語の核心と言える.クラスと対象をまとめます.
 
対象は現実世界に客観的に存在する事物(すなわち対象)からソフトウェアシステムを構築し、システム構造の中でできるだけ人間の考え方を運用し、問題ドメイン(現実世界)の事物を中心に直接問題を考え、問題を認識することを強調し、これらの事物の本質的特徴に基づいて、彼らを抽象的にシステムの対象として表す.システムの基本構成単位として.
 
クラス、オブジェクト、継承はオブジェクト向けの3つの要素です.クラスとオブジェクトのみをサポートし、継承をサポートしないことをオブジェクトベースと呼びます.
 
定義:
クラス:
クラスは、属性と動作を持つオブジェクトの抽象です.クラスに属するすべてのオブジェクトに対して統一的な抽象的な説明を提供します.クラスはオブジェクトを生成するテンプレートであり、オブジェクトはクラスのインスタンスです.クラス内の属性は一般的にプライベートメンバーであり、クラス内でしか使用できません.クラス内のメソッド(動作を表す)は一般的に公有メンバーであり、クラス外で使用できます.
 
オブジェクト:オブジェクトは客観的な物事を記述するためのエンティティであり、システムを構成する基本ユニットである.オブジェクトには、プロパティと動作のセットがあります.プロパティは、オブジェクトの静的フィーチャーを記述するデータ・アイテムであり、オブジェクトのステータスを表します.動作時にオブジェクトの動的特徴と動作を記述するために使用される操作で、オブジェクトが外部に提供する機能を表します.オブジェクトはクラスによって記述され、クラスインスタンス化によって得られる.
 
クラスはオブジェクトの抽象であり、オブジェクトはクラスの具体的な実装である.クラスは抽象的で、メモリを消費しません.
 
例を挙げます.
「動物」という言葉を聞いたとき、まず思いついたことは何ですか? 
鶏?アヒル?ガチョウ?犬?猫...
これ ニワトリとアヒルのガチョウと犬の猫 私たちが言っている対象であり、「動物」は一つの類です.
 
 
 
継承:
継承は、クラス間の交差関係であり、あるクラスが別のクラスの特徴と機能を継承できるようにします.継承された既存のクラスを親クラス(ベースクラスまたはスーパークラス)と呼び、既存のクラスから継承された新しいクラスを子クラス(または派生クラス)と呼ぶ.1つのクラスから複数のサブクラスが派生し、クラスの階層関係が形成されます.
継承の役割:
1.明確な体現クラス間の構造階層関係
2.コードとデータの重複を減らし、可用性を向上させる.
 
 
オブジェクト向けの3つの特性:
1.パッケージ性
カプセル化とは、クラス(オブジェクト)の属性と動作を独立した単位に結合し、できるだけ詳細を隠すことです.
カプセル化された情報隠蔽作用は物事の相対的な独立性を反映し、対外的に提供されるインタフェースだけに関心を持つことができ、つまり何ができるか知っているが、どうすればいいか分からない.
カプセル化の結果,オブジェクト以外の部分がオブジェクトの内部属性に勝手にアクセスできないため,外部影響の誤りを効果的に回避し,誤り検出,誤り排出の難易度を低減した.
2.継承性
継承は、クラスとクラスを接続する階層モデルです.継承性とは、特殊なクラスのオブジェクトが一般的な属性と動作を持つことを意味します.継承は「自動所有」を意味します.すなわち、特殊クラス(オブジェクト)では、一般クラスに存在する属性や動作を再定義する必要はありません.
Javaではマルチ継承はサポートされていません.つまり、1つのクラスに2つ以上の親を持つことはできません.
Javaのマルチ継承はインタフェースによって実現され,「マルチインプリメンテーション」と呼ばれる.
3.多態性
マルチステートとは、継承システム内の異なるクラスのオブジェクトが同じメッセージに対して異なる動作を生成することを意味します.
 
 
 
クラスとオブジェクトの作成:
 
 
class Person{// 
	private int age;
	private String name;
	public void SetAge(int age){
		this.age = age;
	}
	public void SetName(String name){
		this.name = name;
	}
	public void show (){
		System.out.println("name :"+name);
		System.out.println("age :"+ age);
	}
}


public class Main {
	public static void main (String[] args){
		Person aPerson = new Person();//aPerson  Person      
		aPerson.SetName("zhangsan");
		aPerson.SetAge(18);
		aPerson.show();
		
	}
}

 
 
継承の簡単な使用:
 
 
class Person{// 
	private int age;
	private String name;
	public void SetAge(int age){
		this.age = age;
	}
	public void SetName(String name){
		this.name = name;
	}
	public void show (){
		System.out.println("name :"+name);
		System.out.println("age :"+ age);
	}
}

class Student extends Person{//  Student   Person 
	
}

public class Main {
	public static void main (String[] args){
		Person aPerson = new Person();//aPerson  Person      
		aPerson.SetName("zhangsan");
		aPerson.SetAge(18);
		aPerson.show();
		
		Student a = new Student();//a Student      
		a.SetName("lisi");
		a.SetAge(20);
		a.show();
	}
}