目次
まえがき
オブジェクト指向プログラミングの基本概要
クラスの関連概要:
#クラスの継承
ポリモーフィック
抽象クラス
Interface
ホームページ Java &#&チュートリアル Java オブジェクトのナレッジポイントの概要

Java オブジェクトのナレッジポイントの概要

Sep 18, 2018 pm 05:09 PM
java 物体

この記事は Java オブジェクトに関する知識の要点をまとめたものであり、必要な方は参考にしていただければ幸いです。

まえがき

  1. Java はオブジェクト指向言語であるため、オブジェクトのさまざまな定義と理解を個別に記録する必要があります。

  2. オブジェクトと向き合う。主にオブジェクト指向の考え方、クラスとオブジェクトとその使用、オブジェクトのメモリ マップ、メンバー変数とローカル変数の違い、匿名オブジェクト、カプセル化 (プライベート) ) 、このキーワード、コンストラクター メソッド、静的キーワード。

オブジェクト指向プログラミングの基本概要

1. 概要: プロセス指向の考え方に基づいており、プロセス指向プログラミングをカプセル化したものです。

2. オブジェクト指向開発: オブジェクトを常に作成し、使用し、オブジェクトに動作を指示することを意味します。

3. オブジェクト指向設計: 実際には、オブジェクト間の関係を管理および維持します。

4. オブジェクト指向の機能: カプセル化、継承、ポリモーフィズム

5. クラスとオブジェクトの関係:

(1) クラス: 関連する属性のセット動作の集合
(2) オブジェクト: このタイプのものの具体的な具体化です

6. 匿名オブジェクト:

(1) 名前のないオブジェクトです。表現
(2) 匿名オブジェクトの 2 つの使用状況: 1. オブジェクトがメソッドを 1 回だけ呼び出す場合 2. 実際のパラメーターとして渡す

クラスの関連概要:

1. Student s = new Student();メモリ内で何をするのでしょうか?

(1) Student.class ファイルをメモリにロードします
(2) スタック スペースに s 用のスペースを作成します
(3) ヒープ メモリに Student オブジェクト用のスペースを作成します
(4) 右 Student オブジェクトのメンバー変数はデフォルトで初期化されます
(5) Student オブジェクトのメンバー変数の初期化を表示します
(6) Student オブジェクトのメンバー変数に値を代入します構築メソッド
(7) オブジェクト アドレスを s 変数

2 に割り当てます。クラスには、基本的に、継承、ポリモーフィズム、抽象クラス、インターフェイス、パッケージおよびガイド パッケージ、権限が含まれます。修飾子、内部クラス

#クラスの継承

1. 概要: 複数のクラスに同じ属性や動作が存在する場合、それらの内容を 1 つのクラスに抽出する必要はありません。これらの属性と動作を定義し、このクラスを継承するだけで済みます。

2. クラス間の継承は、extends キーワードによって実現できます。この単一のクラスは、親クラス、または基本クラス、またはスーパークラスと呼ばれます。サブクラスまたは派生クラス

4 と呼ばれます。 継承を使用すると、クラスを定義するときに、既存のクラスに基づいて独自の新しいメンバーを定義できます。 利点 :

5。 (1) コードの再利用性の向上

(2) コードの保守性の向上

(3) ポリモーフィズムの前提となるクラス間の関係性の構築

(4) クラスの欠点の 1 つは、クラスの結合が非常に強いこと


6. 注:

(1) サブクラスは、親クラスのすべての非プライベート メンバー (メンバー) のみを継承できます (メソッドとメンバー変数)

(2) サブクラスは親クラスの構築メソッドを継承できませんが、スーパーキーワードを通じて親クラスの構築メソッドにアクセスできます

(3) クラスの一部の機能は継承しません

7. 継承におけるコンストラクタ間の関係:

(1) サブクラス内のすべてのコンストラクタは、デフォルトで親クラスの空のパラメータを持つコンストラクタになります

(2) サブクラスは親クラスを継承するため、クラスのデータは親クラスのデータを使用することもできます。したがって、サブクラスを初期化する前に、まず親クラスのデータの初期化を完了する必要があります。

(3) 各コンストラクター メソッドの最初のステートメントは、デフォルトでは次のとおりです。 super()

(4) コンストラクター メソッドがない場合親クラス内で行うべきこと:

[1] サブクラスは super を使用して、パラメータを持つ親クラスの他のコンストラクターを明示的に呼び出します
[2] サブクラスは、このクラスを通じてこのクラスの他のコンストラクターを呼び出します
[3 ] 最初のステートメントに super() と this() を指定する必要があることに注意してください。そうしないと、親クラス データの初期化が複数回行われます。メソッドの書き換え:

( 1) 概要: 親クラスとまったく同じメソッド ステートメントがサブクラスに出現します。メソッドの上書き、メソッドのオーバーライドとも呼ばれます
(2) 親クラスのプライベート メソッドはオーバーライドできません
(3)サブクラスが親クラスのメソッドを書き換える場合、アクセス許可を低くすることはできません

(4) 親クラスの静的メソッド、サブクラスも静的メソッドを介して書き換える必要があります

いくつかのキーワード: static、super、最終


1、静的キーワード:

(1) メンバ変数とメンバメソッドの変更が可能
(2) 特徴:
[1] クラスのロードと同時にロードされる
[2] オブジェクトよりも優先順位が存在する
[3] ] クラスのすべてのオブジェクトで共有
[4] クラス名を通じて呼び出すことができます
(3) 注:
[1] 静的メソッドには this キーワードはありません
[2] 静的メソッド 静的メンバ変数と静的メンバ メソッドのみにアクセスできます
(4) 静的変数とメンバ変数の違い:
[1] 静的変数はクラスに属するため、クラスのメンバ変数にもな​​ります。オブジェクトなのでインスタンス変数とも呼ばれます
【2】静的変数はメソッド領域の静的領域に格納され、メンバ変数はヒープメモリに格納されます
【3】静的変数はロードされますクラスがロードされると、クラスが消えると消えます。メンバー変数は、オブジェクトの作成とともに存在し、オブジェクトの消滅とともに消えます。
[4] 静的変数は、クラス名またはオブジェクトのメンバーを通じて呼び出すことができます。変数はオブジェクト名を通じてのみ呼び出すことができます

2. スーパー キーワード:

(1) スーパーとこのキーワードの使用法は、このクラスに対応する参照を表します。 super は親クラスの記憶領域の識別を表します (親クラスの参照として理解できます)
(2) super を使用して親クラスのコンポーネントを参照し、this を使用して現在のオブジェクトを参照します

3. 最終キーワード:

(1) 最終キーワードは、final です。つまり、クラス、メンバー変数、メンバー メソッドを変更できます。
(2) クラスを変更します。クラスは継承できません
(3) 変数を変更します。変数は定数になり、1 回だけ代入できます。
(4 ) 変更メソッド。メソッドはオーバーライドできません。

ポリモーフィック

1 概要: A.特定のものは異なる時点で異なる状態を示します

2. 多態性の前提と明示: 継承関係があり、メソッドの書き換えがあり、サブクラス オブジェクトを直接指す親クラス参照があります

3利点:

(1) プログラムの保守性の向上 (継承によって保証)
(2) プログラムのスケーラビリティの向上 (ポリモーフィズムによって保証)

4.サブクラス固有の関数にアクセスできません

抽象クラス

1. 概要: メソッド本体のないメソッドは抽象メソッドとして定義する必要があり、クラス内に抽象メソッドがある場合は、クラスは抽象クラス

2 として定義する必要があります。 機能:

(1) 抽象クラスおよび抽象メソッドは、抽象キーワードによって変更する必要があります。
(2) 抽象クラスは変更しません。抽象メソッドは必ず必要であり、抽象メソッドを持つクラスは抽象クラスでなければなりません
(3) 抽象クラスはインスタンス化できません
(4) では、抽象クラスはどのようにインスタンス化されるのでしょうか。多態性メソッドに従って、具象サブクラスがインスタンス化されます。
(5) 抽象クラスのサブクラス。抽象クラス、または抽象クラス内のすべての抽象メソッドをオーバーライドします。

3. メンバーの特性:

(1) メンバ変数は変数でも定数でも構いません
(2) コンストラクタはありますが、インスタンス化できません。では、コンストラクター メソッドの役割は何でしょうか?ユーザー サブクラスが親クラス データにアクセスするための初期化
(3) サブクラスが特定のアクションを完了するように制限する抽象メソッドが存在する可能性があります
(4) コードの再利用性を向上させる非抽象メソッドも存在する可能性があります
( 5 ) 抽象メソッドはパブリックまたはプロテクトである必要があります (プライベートの場合はサブクラスに継承できず、サブクラスはメソッドを実装できないため)。デフォルトでは、public

Interface

です。 1. 概要: ソフトウェア工学では、インターフェイスは一般に、インターフェイスの特性を抽象化したものを指します。 (1) 使用方法 キーワード インターフェイスは次のことを表します: インターフェイス インターフェイス名 {}

(2) クラス実装インターフェイスはimplements で表されます: class クラス名implements インターフェイス名 {}

(3) インターフェイスはインスタンス化できませんが、これは、ポリモーフィックな方法で実装でき、特定のサブクラスによってインスタンス化されます。

(4) インターフェイスのサブクラス: 抽象クラス、またはインターフェイスのすべての抽象メソッドをオーバーライドします。


3.

(1) メンバー変数: 定数のみにすることができ、デフォルトの修飾子は public、static、final です

(2) インターフェイスは主に関数を拡張し、拡張しないため、コンストラクター メソッドはありません。具体的に存在します

(3) インターフェイス メンバー メソッドは抽象メソッドのみにすることができ、デフォルトの修飾子は public、abstract です

クラス間、クラス対インターフェイス、インターフェイス対インターフェイスの関係

1. クラス間: 継承関係、単一継承のみ可能ですが、マルチレベル継承も可能です

#2. 実装関係、単一または複数で実装できます。方法。 1 つのクラスから複数のインターフェイスを継承し、複数のインターフェイスを同時に実装することもできます。

3. インターフェイスとインターフェイス: 継承関係、単一または複数の継承を継承できます

抽象クラスの違いおよびインターフェイス:

1. インターフェイスはアクションの抽象化であり、抽象クラスはソースの抽象化です。

2. 抽象クラスはオブジェクトとインターフェイスを表します。オブジェクトが実行できることを表します

3. 抽象クラスもインターフェイスもインスタンス化できません。インスタンス化する場合、抽象クラス変数はすべての抽象メソッドを実装するサブクラス オブジェクトをポイントし、インターフェイス変数はそれをポイントする必要があります。

4. 抽象クラスはサブクラスによって継承される必要があり、インターフェイスはメソッド宣言にのみ使用できます。抽象クラスはメソッド宣言とメソッド実装に使用できます。

6. インターフェイスで定義される変数はパブリック静的定数のみであり、抽象クラス内の変数は通常の変数です。

7. 抽象クラスの抽象メソッドはサブクラスによって実装される必要があります。サブクラスが親クラスのすべての抽象メソッドを実装できない場合、サブクラスは抽象クラスのみになります。同様に、インターフェイスを実装するときに、すべてのインターフェイス メソッドを実装できない場合、そのクラスは抽象クラスのみになります。

#8 抽象メソッドは宣言のみ可能で、実装はできません。インターフェイスは設計の結果であり、抽象クラスは再構築の結果です。

9 インターフェイスは複数のインターフェイスを継承できますが、クラスは 1 つの抽象クラスのみを継承できます。特定のメソッドと属性を持つことができます。インターフェイスは抽象メソッドと不変定数のみを持つことができます。

11. 物事の本質に焦点を当てる場合は、抽象クラスを使用します。操作に焦点を当てる場合は、インターフェイスを使用します。

パッケージ: package

1. 概要: 実際にはクラスを分類して管理するフォルダーです。

2. 定義: パッケージ パッケージ名

3。注:

(1) package ステートメントはプログラムの最初の実行可能コードである必要があります

(2) Java ファイルには package ステートメントは 1 つだけ存在できます

(3) package ステートメントが存在しない場合パッケージ、デフォルトはパッケージ名なしを意味します


4. パッケージを使用したクラスのコンパイルと操作:

(1) マニュアル:

[1] javac は現在のクラス ファイル

をコンパイルします。 [2] パッケージに対応するフォルダーを手動で作成します

[3] コンパイルしたクラス ファイルを前の手順で作成したフォルダーに配置します
[4] java コマンドを介して実行します。この名前で実行する必要があります。パッケージの: java testpackage.HelloWorld
(2) 自動タイプ:
[1] javac のコンパイル時に -d パラメータを指定して実行: javac -d .HelloWorld.java
[2] java を通じて実行マニュアルタイプ

5 と同じコマンドです。 ガイドパッケージ:

(1) 概要: 異なるパッケージのクラス間のアクセスでは、異なるパッケージのクラスが使用されるたびに問題が発生することがわかりました。 、ルート全体を追加する必要があります。このとき、java はパッケージインポート機能を提供します

(2) パッケージインポート形式: クラス名

内部クラス

1 概要: 他のクラスにクラスを定義します。内部的には、このクラスは内部クラス

2と呼ばれます。 アクセス特性:

(1) 内部クラスは、プライベートを含む外部クラスのメンバーに直接アクセスできます。

(2) 外部クラスは、次のことを行う必要があります。内部クラスのメンバーになりたい場合は、オブジェクト

3 を作成する必要があります。 内部クラスの位置:

(1) 内部クラスによって定義されたさまざまな位置に従って、クラスの場合、次の 2 つの形式に分けることができます: メンバー位置 (メンバー内部クラス)、ローカル位置 (ローカル内部クラス)

(2) メンバー内部クラス:

[1] 共通の修飾子: private、static

[2] 静的に変更されるメンバー内部クラスのみ 外部クラスの静的メンバーにアクセスできます
(3) ローカル内部クラス:
[1] 外部クラスのメンバーに直接アクセスできます
[2] を作成できます内部クラス オブジェクトを作成し、そのオブジェクトを通じて内部クラス メソッドを呼び出します。 ローカル内部クラス関数の使用
[3] ローカル フェイス変更にアクセスするには、ローカル内部クラスを Final で変更する必要があります。ローカル変数はメソッド呼び出しが完了すると消えるため、この時点ではローカル オブジェクトはヒープ メモリからすぐには消えず、引き続きその変数を使用する必要があります。データを引き続き使用できるようにするために、ヒープ メモリに格納される内容が実際には定数値になるように、final でデータが変更されます。
(4) 匿名内部クラス:
[1] 内部クラスの簡略化した書き方です
[2] 形式: 新しいクラス名またはインターフェイス名 (){}
[3] 前提: クラスまたはインターフェイスがあります。ここでのクラスは、具体的な通常のクラスにすることも、抽象クラスにすることもできます
[4] 本質: クラスを継承するか、インターフェイスを実装するサブクラスの匿名オブジェクトです
[5] 匿名内部クラスは実際にはサブクラス匿名オブジェクトであると言えます

以上が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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

作曲家:AIを介したPHP開発の援助 作曲家:AIを介したPHP開発の援助 Apr 29, 2025 am 12:27 AM

AIは、作曲家の使用を最適化するのに役立ちます。特定の方法には次のものが含まれます。1。依存関係管理の最適化:AIは依存関係を分析し、最適なバージョンの組み合わせを推奨し、競合を減らします。 2。自動コード生成:AIは、ベストプラクティスに準拠したComposer.jsonファイルを生成します。 3.コードの品質を改善する:AIは潜在的な問題を検出し、最適化の提案を提供し、コードの品質を向上させます。これらの方法は、開発者が効率とコードの品質を向上させるのに役立つ機械学習および自然言語処理技術を通じて実装されています。

データ処理と計算にMySQL関数を使用する方法 データ処理と計算にMySQL関数を使用する方法 Apr 29, 2025 pm 04:21 PM

MySQL関数は、データ処理と計算に使用できます。 1.基本的な使用には、文字列処理、日付計算、数学操作が含まれます。 2。高度な使用法には、複数の関数を組み合わせて複雑な操作を実装することが含まれます。 3.パフォーマンスの最適化では、Where句での機能の使用を回避し、GroupByおよび一時テーブルを使用する必要があります。

mysqlの文字セットと照合ルールを構成する方法 mysqlの文字セットと照合ルールを構成する方法 Apr 29, 2025 pm 04:06 PM

MySQLで文字セットと照合を構成する方法は次のとおりです。1。サーバーレベルでの文字セットとコレクションの設定:setNames'utf8 '; setCharacterSetutf8; setCollat​​ion_connection = 'utf8_general_ci'; 2。特定の文字セットと照合を使用するデータベースを作成します:createdatabaseexample_dbcharactersetutf8collat​​eutf8_general_ci; 3.テーブルを作成するときに文字セットとコレクションを指定:createTableExample_table(idint

MySQLのデータベースの名前を変更する方法 MySQLのデータベースの名前を変更する方法 Apr 29, 2025 pm 04:00 PM

MySQLでデータベースを変更するには、間接的な方法が必要です。手順は次のとおりです。1。新しいデータベースを作成します。 2。mysqldumpを使用して、古いデータベースをエクスポートします。 3.データを新しいデータベースにインポートします。 4.古いデータベースを削除します。

CにSingletonパターンを実装する方法は? CにSingletonパターンを実装する方法は? Apr 28, 2025 pm 10:03 PM

CにSingletonパターンを実装すると、静的メンバー変数と静的メンバー関数を介してクラスのインスタンスが1つしかないことを保証できます。特定の手順には次のものが含まれます。1。プライベートコンストラクターを使用し、コピーコンストラクターと課題演算子を削除して、外部の直接インスタンス化を防ぎます。 2.静的メソッドGetInstanceを介してグローバルアクセスポイントを提供して、1つのインスタンスのみが作成されるようにします。 3。スレッドの安全性のために、再チェックロックモードを使用できます。 4。メモリの漏れを避けるために、STD :: shared_ptrなどのスマートポインターを使用します。 5。高性能要件については、静的なローカル変数を実装できます。シングルトンのパターンはグローバルな国家の乱用につながる可能性があることに注意する必要があり、それを慎重に使用して代替案を考慮することをお勧めします。

プラットフォームの独立性を考慮して、JavaはIoT(Thingのインターネット)デバイスの開発においてどのような役割を果たしますか? プラットフォームの独立性を考慮して、JavaはIoT(Thingのインターネット)デバイスの開発においてどのような役割を果たしますか? May 03, 2025 am 12:22 AM

javaplaysasificanificantduetduetoitsplatformindepence.1)itallowscodetobewrittendunonvariousdevices.2)java'secosystemprovidesutionforiot.3)そのセキュリティフィートルセンハンス系

さまざまなサーバーで実行する必要があるWebアプリケーションにJavaを使用することの利点は何ですか? さまざまなサーバーで実行する必要があるWebアプリケーションにJavaを使用することの利点は何ですか? May 03, 2025 am 12:13 AM

Javaは、クロスサーバーWebアプリケーションの開発に適しています。 1)Javaの「Write and、Run Averywhere」哲学は、JVMをサポートするあらゆるプラットフォームでコードを実行します。 2)Javaには、開発プロセスを簡素化するために、SpringやHibernateなどのツールを含む豊富なエコシステムがあります。 3)Javaは、パフォーマンスとセキュリティにおいて優れたパフォーマンスを発揮し、効率的なメモリ管理と強力なセキュリティ保証を提供します。

HTML要素の回転効果を設定する方法 HTML要素の回転効果を設定する方法 Apr 30, 2025 pm 02:42 PM

HTMLで要素の回転効果を設定する方法は? CSSとJavaScriptを使用して達成できます。 1. CSSの変換特性は、回転(45DEG)などの静的回転に使用されます。 2。JavaScriptは、変換属性を変更することで実装される回転を動的に制御できます。

See all articles