国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

Java のオブジェクト指向機(jī)能の概要

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

Java のオブジェクト指向機(jī)能の概要

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

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

1. カプセル化

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

カプセル化の実裝手順:

屬性の可視性を変更: private に設(shè)定

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

ゲッター/セッター メソッドに屬性制御ステートメントを追加します: 屬性値の正當(dāng)性を判斷します

(推奨學(xué)習(xí): Java ビデオ チュートリアル)

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

//表示讀取該方法中的screen
public float getScreen{
	return screen;
    }
 //有viod無返回值,變量名.屬性=值,就不能直接調(diào)用可以通過變量名.getScreen()來實(shí)現(xiàn)
public viod setScreen(float newScreen){
	screen = newscreen;
	}

変數(shù)名。屬性 = 値は直接呼び出すことはできません。変數(shù)名.getScreen() を通じて実現(xiàn)できます)。

パッケージの機(jī)能:

1.Java ファイルの管理

2.同じ名前のファイルの競(jìng)合を解決

Definition パッケージ: package

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

Java のアクセス制御修飾子

public、default、protected、private

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

default: デフォルトの修飾子、同じパッケージ內(nèi)でのアクセス

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

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

final、finally、finalize (継承內(nèi))

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

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

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

Java のこのキーワード

//原來手動(dòng)輸入
public void setScreen( float newScreen){
   screen = newScreen;
   }
// 用eclips 自動(dòng)生成的是
public void setScreen( float newScreen){
  this.screen = screen;
  }

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

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

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

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

Java の靜的內(nèi)部クラス

靜的內(nèi)部クラスは、靜的に変更された?jī)?nèi)部クラスです。この種の內(nèi)部クラスの特徴は次のとおりです:

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

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

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

2. 継承

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

継承の利點(diǎn):

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

2) コードの再現(xiàn)を?qū)g裝します

文法規(guī)則: class subclass extendsparent class { }

メソッドの書き換え:

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

文法規(guī)則:

戻り値、型、メソッド名、パラメーターの型番號(hào)は、親クラスの統(tǒng)合メソッドと同じで、オーバーライドと呼ばれます。

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

親クラスの屬性の初期化>親クラスの構(gòu)築メソッド>サブクラスの屬性の初期化>サブクラスの構(gòu)築メソッド 0

スーパー キーワード:

はオブジェクト內(nèi)で使用され、親クラス オブジェクトを表すことができます。

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

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

super の適用:

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

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

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

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

オブジェクト クラス:

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

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

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

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

equals() メソッド:

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

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

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

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

オブジェクトの屬性値情報(bào)、またはオブジェクト データの情報(bào)に注目します

3. ポリモーフィズム

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

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

ポリモーフィック機(jī)能:

1參照多態(tài)性

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

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

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

2. メソッド多態(tài)性

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

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

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

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

以上がJava のオブジェクト指向機(jī)能の概要の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中國語版

SublimeText3 中國語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JDBCを使用してJavaのトランザクションを処理する方法は? JDBCを使用してJavaのトランザクションを処理する方法は? Aug 02, 2025 pm 12:29 PM

JDBCトランザクションを正しく処理するには、最初に自動(dòng)コミットモードをオフにし、次に複數(shù)の操作を?qū)g行し、結(jié)果に応じて最終的にコミットまたはロールバックする必要があります。 1。CONN.SETAUTOCOMMIT(FALSE)を呼び出して、トランザクションを開始します。 2。挿入や更新など、複數(shù)のSQL操作を?qū)g行します。 3。すべての操作が成功した場(chǎng)合はconn.commit()を呼び出し、データの一貫性を確保するために例外が発生した場(chǎng)合はconn.rollback()を呼び出します。同時(shí)に、リソースを使用してリソースを管理し、例外を適切に処理し、接続を密接に接続するために、接続の漏れを避けるために使用する必要があります。さらに、接続プールを使用してセーブポイントを設(shè)定して部分的なロールバックを達(dá)成し、パフォーマンスを改善するためにトランザクションを可能な限り短く保つことをお?jiǎng)幛幛筏蓼埂?/p>

Javaでカレンダーを操作する方法は? Javaでカレンダーを操作する方法は? Aug 02, 2025 am 02:38 AM

Java.Timeパッケージのクラスを使用して、古い日付とカレンダーのクラスを置き換えます。 2。LocalDate、LocalDateTime、LocalTimeを通じて現(xiàn)在の日付と時(shí)刻を取得します。 3。of()メソッドを使用して特定の日付と時(shí)刻を作成します。 4.プラス/マイナスメソッドを使用して、時(shí)間を不正に増加させて短縮します。 5. ZonedDateTimeとZoneIDを使用して、タイムゾーンを処理します。 6。DateTimeFormatterを介したフォーマットおよび解析の文字列。 7.インスタントを使用して、必要に応じて古い日付型と互換性があります?,F(xiàn)代のJavaでの日付処理は、java.timeapiを使用することを優(yōu)先する必要があります。

Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pre-formanceTartuptimeMemoryusage、quarkusandmicronautleadduetocopile-timeprocessingingandgraalvsupport、withquarkusoftentylightbetterine serverlessシナリオ。

Garbage CollectionはJavaでどのように機(jī)能しますか? Garbage CollectionはJavaでどのように機(jī)能しますか? Aug 02, 2025 pm 01:55 PM

JavaのGarbage Collection(GC)は、メモリを自動(dòng)的に管理するメカニズムであり、到達(dá)不可能なオブジェクトを取り戻すことでメモリ漏れのリスクを軽減します。 1.GCルートオブジェクトからのオブジェクトのアクセシビリティ(スタック変數(shù)、アクティブスレッド、靜的フィールドなど)、および到達(dá)不可能なオブジェクトはゴミとしてマークされています。 2。マーククリアリングアルゴリズムに基づいて、すべての到達(dá)可能なオブジェクトをマークし、マークのないオブジェクトをクリアします。 3.世代の収集戦略を採用する:新世代(Eden、S0、S1)は頻繁にMinorGCを?qū)g行します。高齢者のパフォーマンスは少なくなりますが、MajorGCを?qū)g行するのに時(shí)間がかかります。 Metaspaceはクラスメタデータを保存します。 4。JVMはさまざまなGCデバイスを提供します。SerialGCは小さなアプリケーションに適しています。 ParallelGCはスループットを改善します。 CMSが減少します

ユーザーデータにHTML「入力」タイプを使用します ユーザーデータにHTML「入力」タイプを使用します Aug 03, 2025 am 11:07 AM

適切なHTMLinputタイプを選択すると、データの精度を向上させ、ユーザーエクスペリエンスを向上させ、使いやすさを向上させることができます。 1.テキスト、電子メール、電話、番號(hào)、日付など、データ型に従って対応する入力タイプを選択します。 2。HTML5を使用して、より直感的な相互作用方法を提供できるU(xiǎn)RL、色、範(fàn)囲、検索などの新しいタイプを追加します。 3.プレースホルダーと必要な屬性を使用して、フォームフィリングの効率と精度を改善しますが、プレースホルダーがラベルを置き換えることはできないことに注意してください。

HTTPミドルウェアロギングの例を例に進(jìn)めます HTTPミドルウェアロギングの例を例に進(jìn)めます Aug 03, 2025 am 11:35 AM

GOのHTTPログミドルウェアは、リクエストメソッド、パス、クライアントIP、および時(shí)間がかかることを記録できます。 1. http.handlerfuncを使用してプロセッサをラップします。2。next.servehttpを呼び出す前後の開始時(shí)間と終了時(shí)間を記録します。完全なサンプルコードの実行が検証されており、中小のプロジェクトの開始に適しています。拡張機(jī)能の提案には、ステータスコードのキャプチャ、JSONログのサポート、リクエストIDトラッキングが含まれます。

Javaビルドツールの比較:Maven vs. Gradle Javaビルドツールの比較:Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

gradleisthebetterchoiceformostnewprojectoitssuperorfficability、performance、andmoderntoolingsupport.1.gradle’sgroovy/kotlindslismoreconciseandexpressiveethanmaven’sverboseml.2.gradleorformsmavenbenbumebutedwitedwitedwitedspedexは

説明された延期聲明の例で進(jìn)みます 説明された延期聲明の例で進(jìn)みます Aug 02, 2025 am 06:26 AM

Deferは、クリーニングリソースなど、関數(shù)が戻る前に指定された操作を?qū)g行するために使用されます。パラメーターは、延期時(shí)にすぐに評(píng)価され、関數(shù)は最後のファーストアウト(LIFO)の順に実行されます。 1.複數(shù)の債務(wù)は、宣言の逆の順序で実行されます。 2.ファイルの閉鎖などの安全なクリーニングに一般的に使用されます。 3。指定された返品値を変更できます。 4.回復(fù)に適したパニックが発生した場(chǎng)合でも実行されます。 5。リソースの漏れを防ぐために、ループで延期の亂用を避けます。正しい使用により、コードのセキュリティと読みやすさが向上します。

See all articles