ホームページ Java &#&はじめる Java のオブジェクト指向機能の概要

Java のオブジェクト指向機能の概要

Feb 05, 2020 pm 05:54 PM
java 特性 オブジェクト指向

Java のオブジェクト指向機能の概要

Java の 3 つの主要なオブジェクト指向機能:

カプセル化、継承、ポリモーフィズム。

1. カプセル化

クラス情報をクラス内に隠し、外部プログラムによる直接アクセスを許可しません。代わりに、非表示の情報は、次のメソッドによって実装されます。クラス、操作、およびアクセス。

カプセル化の実装手順:

属性の可視性を変更: private に設定

ゲッター/セッター メソッドを作成: 属性の読み取りおよび書き込み用

ゲッター/セッター メソッドに属性制御ステートメントを追加します: 属性値の正当性を判断します

(推奨学習: Java ビデオ チュートリアル)

変更private を使用した属性の可視性 (例:

//表示读取该方法中的screen
public float getScreen{
	return screen;
    }
 //有viod无返回值,变量名.属性=值,就不能直接调用可以通过变量名.getScreen()来实现
public viod setScreen(float newScreen){
	screen = newscreen;
	}
ログイン後にコピー

変数名。属性 = 値は直接呼び出すことはできません。変数名.getScreen() を通じて実現できます)。

パッケージの機能:

1.Java ファイルの管理

2.同じ名前のファイルの競合を解決

Definition パッケージ: package

パッケージ名 注: Java ソース プログラムの最初の行に配置する必要があります。パッケージ名は「.」で区切ることができます。例: com.imooc.MyClassJava では、パッケージはすべて小文字です。

Java のアクセス制御修飾子

public、default、protected、private

public: public、すべてのクラスにアクセス可能

default: デフォルトの修飾子、同じパッケージ内でのアクセス

protected: 保護されたタイプ。同じパッケージ内のアウトソーシングされたクラスで、このクラスを継承するクラスは

private: プライベート クラス、このクラスのみがアクセスできます

final、finally、finalize (継承内)

最後: 修飾子。この修飾子によって変更されたクラスは継承できません。この修飾子によって変更された変数は変更できず、読み取りのみ可能です。この修飾子によって変更されたメソッドは使用のみ可能、オーバーロード可能、および上書きできません。この変更はシンボルを変更できません抽象クラス。

finally: 例外をキャッチした後のクリーンアップ操作

finalize: メソッド。主に GC がオブジェクトを削除する前に、最初にオブジェクトの Finalize メソッドを呼び出して、オブジェクトが参照されているかどうかを確認します

Java のこのキーワード

//原来手动输入
public void setScreen( float newScreen){
   screen = newScreen;
   }
// 用eclips 自动生成的是
public void setScreen( float newScreen){
  this.screen = screen;
  }
ログイン後にコピー

this.Attribute: 現在のオブジェクトのプロパティを操作します

this.Method: 現在のオブジェクトのメソッドを呼び出します

Ecilipse は、setter メソッドと getter メソッドを直接生成し、このキーワードを追加できます。

#このキーワードは、メンバー変数またはメンバー メソッドの静的メンバーを呼び出します。this および super キーワードは静的メソッドでは使用できません。同時に、クラスへの参照を返し、コンストラクターを呼び出すこともできます

Java の静的内部クラス

静的内部クラスは、静的に変更された内部クラスです。この種の内部クラスの特徴は次のとおりです:

1. 静的内部クラス外部クラスに直接アクセスすることはできません。非静的メンバーですが、新しい外部クラス () を通じてアクセスできます。メンバー。

2. 外部クラスの静的メンバーが内部クラスのメンバーと同じ名前を持つ場合、「クラス名.静的メンバー」を通じて外部クラスの静的メンバーにアクセスできます。外部クラスのメンバーは内部クラスのメンバーと同じ名前を持ちます。 異なる場合は、「メンバー名」を使用して外部クラスの静的メンバーを直接呼び出すことができます。

3. static 内部クラスのオブジェクトを作成する場合、外部クラスのオブジェクトは必要なく、直接内部クラスのオブジェクト名 = new inner class(); を作成することができます。

2. 継承

継承の概念: クラス間の関係です。

継承の利点:

1) サブクラスは親クラスのすべてのプロパティとメソッドを持ちます (プライベートな変更は無効です)

2) コードの再現を実装します

文法規則: class subclass extendsparent class { }

メソッドの書き換え:

サブクラスが親クラスの継承に満足していない場合は、書き換えます。独自のコンテンツであり、書き換え後、サブクラス メソッドが最初に呼び出されます。

文法規則:

戻り値、型、メソッド名、パラメーターの型番号は、親クラスの統合メソッドと同じで、オーバーライドと呼ばれます。

初期化シーケンスを継承します:

親クラスの属性の初期化>親クラスの構築メソッド>サブクラスの属性の初期化>サブクラスの構築メソッド 0

スーパー キーワード:

はオブジェクト内で使用され、親クラス オブジェクトを表すことができます。

親クラスの属性へのアクセス: super.age;

親クラスへのアクセス方法: super.eat();

super の適用:

サブクラスの構築メソッド中に、親クラスの構築メソッドを呼び出す必要があります。

サブクラスのコンストラクターが親クラスのコンストラクターを明示的に呼び出さない場合、システムはデフォルトで親クラスの引数なしのコンストラクターを呼び出します。

コンストラクターを明示的に呼び出す場合、それはサブクラスのコンストラクターの最初の行になければなりません。

サブクラスのコンストラクターが親クラスのコンストラクターを明示的に呼び出しておらず、親クラスにパラメーターなしのコンストラクターがない場合、コンパイル エラーが発生します。

オブジェクト クラス:

どのクラスが継承されるかを識別しないことは、オブジェクト クラスの

toString() メソッドを継承することと同じです:

toString() メソッドが Object クラスに定義されている場合に返されるオブジェクトのハッシュ コード (オブジェクト アドレス文字列)

toString() メソッドをオーバーライドすることでオブジェクトを表現できます属性

equals() メソッド:

比較は、オブジェクト参照が同じメモリ アドレスを指しているかどうかです。注: 2 つのオブジェクトを比較する場合、equals() メソッドは適用できません。新しいオブジェクトが作成されると、メモリ内に新しいストレージ アドレスが作成されます。したがって、オブジェクトの属性が一致していても、それらは等しくありません。オブジェクトの特定の属性値が同じになるようにするには、「equals() メソッドを記述します」を繰り返す必要があります。

getClass() を比較して、クラス オブジェクトを返します。

getClass() はクラス オブジェクトを返します: クラスを説明するコード情報です。クラスの属性は、どれ、型、変数名、メソッド名、さらに重要なのはコードです。クラスの情報。

オブジェクト名を作成し、クラスのオブジェクトを返します。

オブジェクトの属性値情報、またはオブジェクト データの情報に注目します

3. ポリモーフィズム

ポリモーフィズム: オブジェクトのさまざまな形式を指し、主に参照ポリモーフィズムとメソッド ポリモーフィズムに分けられます。

継承はポリモーフィズムの基礎です。子クラスと親クラスには継承関係が必要であることを忘れないでください。

ポリモーフィック機能:

1参照多態性

親クラス参照は、このクラスのオブジェクトを指すことができます。 Animal obj1 = new Animal();

親クラス参照は、サブクラス オブジェクト Animal obj2 = new Dog を指すことができます。 ();

しかし、サブクラスの参照を使用して親クラス オブジェクトを指すことはできません Dog obj3 = new Animal(); //エラー

2. メソッド多態性

クラス Animal メソッドで Eat() を定義し、ステートメントを出力します (動物には食べる能力があります); サブクラス Dog の Eat() メソッドを書き換えて、ステートメントを出力します (犬は肉を食べる); 次に、メイン関数でテストクラスの場合、obj1.eat() の場合は親クラスのメソッドが呼び出され、obj2 を使用して Eat() メソッドの呼び出しが行われる場合は、サブクラスのメソッドが呼び出されます。

親クラス Animal を継承するサブクラス Cat を作成するが、継承された Eat() メソッドが Cat でオーバーライドされないなど、別の状況もあります。次に、テストの main 関数でサブクラスを作成します。 class Object, Animal obj3 = new Cat(); and then call obj3.eat(); すると、結果として、サブクラスは親クラスのメソッドを継承します(出力結果:動物は食べる能力を持っています)。

最後の特殊なケースでは、ポリモーフィックな機能は使用できません。出力ステートメント (犬はドアを監視する能力を持っています) を含む固有のメソッド public void watchDoor() をサブクラスに追加すると、次のようになります。テスト クラスのメイン関数 (最初にオブジェクト Animal obj2 = new Dog() を定義する必要があります) では、obj2.watchDoor() を使用できません。つまり、親の参照を通じてサブクラスのメソッドを呼び出すことはできません。クラス。

おすすめの関連記事とチュートリアル: Java 入門チュートリアル

以上がJava のオブジェクト指向機能の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプ Java での日付までのタイムスタンプ Aug 30, 2024 pm 04:28 PM

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

未来を創る: まったくの初心者のための Java プログラミング 未来を創る: まったくの初心者のための Java プログラミング Oct 13, 2024 pm 01:32 PM

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。

See all articles