Java オブジェクト指向の基礎と高度な知識のまとめ

PHP中文网
リリース: 2017-06-22 13:52:47
オリジナル
1260 人が閲覧しました

クラスのメンバーへのアクセスを制御する

private: 自分のクラス内でのみ使用できます

public: どこでも使用できます

protected: package-private は同じパッケージの下で使用できます。他のパッケージから継承するサブクラスでも使用できます。

no-modifier: package-private は同じパッケージ内でのみ使用できます (同じパッケージの場合、protected と同じです)。他のパッケージでは機能しません。


オーバーライドとオーバーロード オーバーライド

オーバーライド: は、関数本体の変更を除き、サブクラスと親クラスの間で使用され、その他は変更されません。また、サブクラスのオーバーライドのアクセス コントローラーを親クラスより上位にすることはできません。

オーバーロード: 同じ型のメソッド間で行われます。 パラメータ リストは変更する必要があり、戻り値の型は変更される場合と変更されない場合があります。


ポリモーフィズム

は、大まかに次のように理解できます

ParentClass obj = new ChindClass() //A

ChildClass obj2 = new ChildClass(); ; //

ChildClass OBJ3 = New Parentclass (); // C エラーの例

この設定がある理由を皆さんに教えてください。 A の場合、ParentClass を宣言すると、ParentClass の変数とメソッド用にメモリ内に別の部屋を開くことと同じになり、ChildClass の変数とメソッドの数は次のようになります。 ParentClass の数以上であるため、以前にオープンした部屋はすべて満室でした。そのため、ホテルは非常に満足しており、予約した数だけ宿泊しています。 Cの場合、ChildClassの変数とメソッドを使用して部屋を予約しましたが、実際に来る人の数はParentClassからのものであり、その数はChildParentの人数よりも明らかに少ないため、予約が満足できない場合はホテルが予約します。非常に怒ってあなたにエラーを報告するでしょう。

オーバーライドとオーバーロードはポリモーフィズムの重要な形式です。


抽象クラス 抽象クラス

抽象クラスは、抽象関数を含めることも含めないこともでき、抽象関数はabstractキーワードで変更する必要があります。

クラスに抽象関数が含まれている限り、このクラスはabstractキーワードで変更する必要があります。そのサブクラスでも同様です。


Interface インターフェイス

インターフェイスは、抽象クラスよりもさらに極端なものです。その内のすべてのメソッドは抽象メソッドである必要があり、int などのすべての定数は static かつ Final である必要があります。

implement すべての抽象メソッドを抽象と同様に実装する必要があります。


Javaの高度な知識

汎用クラス

それは簡単で、以下の例から明らかです。たとえば、arraylist や hashmap はすべて汎用です

package Generic;

//generic class
public class GenericMethodTest< A,Z > {
	//generic variable
	public A a;
	
	public void setA( A a) {
		this.a = a;
	}
	
	//generic methods
	public A getA () {
		return this.a;
	}
	public void printArray ( Z[] inArray) {
		for ( Z temp : inArray) {
			System.out.println(temp);
		}
	}
	
	public static < B > void printArray_2 (B[] inArray) {
		for (B temp : inArray) {
			System.out.println(temp);
		}
	}

}
ログイン後にコピー


package Implement;

import Generic.GenericMethodTest;

public class a{
	
	public static void main (String[] args) {
		GenericMethodTest<Integer,String> gm = new GenericMethodTest<Integer,String>() ;
		gm.setA(10);
		String[] ss = {"aaa", "bbb", "ccc"};
		Double [] bb = {1.0, 2.0, 3.0};
		gm.printArray(ss);
		gm.printArray_2(ss);
		gm.printArray_2(bb);
	}
	
}
ログイン後にコピー


シリアル化

シリアル化とは、単に既存のインスタンス化されたオブジェクトをバイト配列に変換するテクノロジーまたはプロセスです。メリットもたくさんありますので、ぜひご覧ください。

http://stackoverflow.com/questions/2232759/what-is-the-Purpose-of-serialization-in-java

簡単なシリアル化は、次のコードに従って学習できます。

注: シリアル化したくない一部の領域については、キーワード transient を使用して変更できます。

りー


りー


りー

以上がJava オブジェクト指向の基礎と高度な知識のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート