Java 機能の概要

Jul 21, 2017 pm 02:17 PM
特性 関連している

1. 継承 (キーワード: extends): (子親クラス)
1. コードの再利用性を向上します。
2. クラス間の関係を作成します。この関係があって初めてポリモーフィズムの特徴を持つことができます。

1.1 変数
同じ名前の非プライベート (プライベート) メンバー変数が子の親クラスに現れた場合、子クラスはこのクラスの変数にアクセスして this を使用し、子クラスはその変数にアクセスする必要があります親クラスに同じ名前がある場合は、super を使用します。
superの使い方はthisの使い方とほぼ同じです。
これはこのクラスのオブジェクトへの参照を表します。
superで表される親クラスオブジェクトの参照。

1.2 子クラスと親クラスの関数
親クラスと全く同じ関数がサブクラスに現れた場合、
サブクラスのオブジェクトがその関数を呼び出すと、サブクラスの関数の内容が実行されます。親クラスの関数がオーバーライドされるのと同じです。

この状況も、関数の書き換え(上書き)の特徴です

サブクラスが親クラスを継承すると、親クラスの関数をサブクラスに引き継ぎますが、サブクラスは関数を持っているものの、その関数の内容は現時点では、新しい関数を定義する必要はありません。代わりに、オーバーライド機能を使用して、親クラスの関数定義を保持し、関数の内容を書き換えます。

上書きに関する注意事項:
1. サブクラスが親クラスを上書きする場合、上書きする前にサブクラスの権限が親クラスの権限以上であることを確認する必要があります。そうでない場合、コンパイルは失敗します。 。 (パーミッション修飾子を書かない場合、デフォルトのパーミッションはプライベートとパブリックの間になります。)
2. static は static のみをオーバーライドできます。

オーバーロードと書き換え:
オーバーロード: 同じ名前の関数のパラメーター リストのみを確認します。
書き換え: 子クラスと親クラスのメソッド名と戻り値の型はまったく同じである必要があります。 (つまり、戻り値の型とメソッド名 () は同じである必要があります)

1.3 サブクラスのコンストラクター。
サブクラス オブジェクトを初期化すると、親クラスのコンストラクターも実行されます。これは、サブクラスのコンストラクターの最初の行に暗黙的なステートメント super() が含まれるためです。

サブクラスが親クラスのコンストラクターにアクセスする必要がある理由クラス。
親クラス内のデータサブクラスは直接取得できるため、すべてのサブクラスオブジェクトを作成したら、まず親クラスがどのようにデータを初期化しているかを確認する必要があります。したがって、オブジェクトを初期化するとき、サブクラスはまず親クラスのコンストラクターにアクセスする必要があります。親クラスで指定されたコンストラクターにアクセスしたい場合は、super ステートメントを手動で定義することで指定できます。

注: スーパー ステートメントは、サブクラス コンストラクターの最初の行で定義する必要があります。


結論:
サブクラスのすべてのコンストラクターは、デフォルトで親クラスの空のパラメーターを使用してコンストラクターにアクセスします。
サブクラスの各コンストラクターの最初の行には暗黙の super() が含まれるため、
親クラスに空のパラメーターを持つコンストラクターがない場合、サブクラスはスーパーの形式で親クラスへのアクセスを手動で指定する必要があります。ステートメントのコンストラクター。
もちろん、サブクラスのコンストラクターの最初の行でこのステートメントを手動で指定して、このクラスのコンストラクターにアクセスすることもできます。サブクラスには、親クラスのコンストラクターにアクセスするコンストラクターが少なくとも 1 つ存在します。 (this() と super() は両方ともコンストラクターの最初の行にのみ配置できるため、コンストラクター内に存在できるのはどちらか 1 つだけです。)


注: 他の関数を取得するためにコードを単純化しないでください。クラスと継承。クラスを継承するには、クラス間に関係が必要です。所属は 。
2.final: ついに。修飾子として。
2.1 クラス、関数、変数は変更できます。
2.2 Finalで変更されたクラスは継承できません。継承を回避するには、サブクラスによる関数のオーバーライドを避けてください。
2.3 Final によって変更されたメソッドはオーバーライドできません。
2.4 Final によって変更された変数は、値を 1 回だけ割り当てることができる定数です。メンバー変数またはローカル変数のいずれかを変更できます。物事を説明する際、何らかのデータが登場する場合、可読性を高めるために、その値に名前が付けられます。読みやすい。この値は変更する必要がないため、最終的な変更が追加されます。 定数として: 定数が複数の単語で構成されている場合、定数の表記規則はすべて大文字です。単語は_で結ばれます。 (例: Final double PI = 3.14; Final int SET_ON = 1;)
2.5 内部クラスがクラス内のローカルな場所で定義されている場合、final によって変更されたローカル変数にのみアクセスできます。

3. 抽象化:
3.1 抽象メソッドは抽象クラス内に存在する必要があります。
3.2 抽象メソッドと抽象クラスは両方とも、abstract キーワードを使用して変更する必要があります。 (抽象クラス クラス名 { 抽象 void メソッド名 (); })
3.3 抽象クラスはオブジェクトの作成に new を使用できません。抽象メソッドを呼び出しても意味がないからです。
3.4 抽象クラスで抽象メソッドを使用するには、すべての抽象メソッドをサブクラスで書き換える必要があります。その後、サブクラス オブジェクトを呼び出すことができます。サブクラスが一部の抽象メソッドのみをカバーする場合、そのサブクラスは依然として抽象クラスです。
一般クラスと抽象クラスの類似点と相違点: 抽象クラスと一般クラスの間には大きな違いはありません。物事をどのように説明しても構いませんが、理解できない点もいくつかあります。物の機能でもあるこれらの不確定な部分は、明示的に現れる必要があります。しかし、主題を定義することはできません。抽象メソッドを通じて表現されます。
抽象クラスには、通常のクラスよりも 1 つ多くの抽象関数があります。つまり、クラス内に抽象メソッドを定義できます。
抽象クラスはインスタンス メソッドを持つことができません。
特別: 抽象クラスで抽象メソッドを定義する必要はありません。これにより、クラスがオブジェクトを作成できなくなるだけです。
4. テンプレートのデザインパターン:
関数を定義するとき、関数の一部は確実ですが、一部は不確実であり、その一部が不確実な部分を使用すると、不確実な部分が露出します。これは、このクラスのサブクラスによって行われます。
5. インターフェース:
初期理解は特別な抽象クラスとして考えることができます。抽象クラスのメソッドが抽象である場合、クラスはインターフェイスの形式で表現できます。
class: クラスを定義するために使用されます
interface: インターフェイスを定義するために使用されます。インターフェイスも型です。クラスファイルを生成することができます。

インターフェイスを定義するときの形式の特徴:
1. インターフェイスの共通定義: 定数、抽象メソッド。インターフェースの出現は、「多重継承」を別の形、つまり「多重実装」で具体化します。
2. インターフェース内のメンバーには固定修飾子があります。
定数: public static Final
メソッド: public abstract
覚えておいてください: インターフェイス内のすべてのメンバーは public です。
インターフェース:抽象メソッドがあるためオブジェクトを作成することはできません。これはサブクラスによって実装される必要があります。サブクラスがインターフェイス内のすべての抽象メソッドを書き換えた後でのみ、サブクラスをインスタンス化できます。それ以外の場合、サブクラスは抽象クラスになります。
例:interface Inter
{
//インターフェース内のメンバーには固定修飾子があるため、public static Final 修飾子と public abstract 修飾子が欠落していても問題ありません。ただし、読みやすさを高めるために、開発中に記述するのが最善です。
public staticfinal int SET_ON = 1;
public abstract void show();
}
//インターフェイス実装を使用する
class Test実装 Inter
{
public void show(){} //抽象メソッドshowをオーバーライドする必要があるCreate object
}
class InterfaceDemo
{
public static void main(String[] args)
{
Test t = new Test();
System.out.println(t.SET_ON);

}

}

インターフェイスの特徴:
インターフェイスは、外部の世界に公開されるルールです。
インターフェースはプログラムの機能拡張です。
インターフェースは複数の実装に使用できます。
クラスとインターフェースの間には実装関係があり、クラスは一つのクラスを継承し、同時に複数のインターフェースを実装することができます。
インターフェース間には継承関係が存在する可能性があります。
6. ポリモーフィズム:
定義: 特定のタイプのものの複数の存在形態。
例: 動物の中の猫と犬
猫オブジェクトの対応するタイプは猫タイプです
猫 x = new cat()
同時に猫も動物の 1 つであり、動物とも呼ばれます。
Animal y = new cat();
Animal は、猫と犬の特定のものから抽出された親の種類です。
親型参照はサブタイプオブジェクトを指します。
6.1. ポリモーフィズムの反映:
親クラスの参照は、自身のサブクラスオブジェクトを指します。
親クラスの参照は、独自のサブクラス オブジェクトを受け取ることもできます。
例:親クラス 親クラス参照名 = new subclass();//型昇格。上向きの変革。サブクラスの独自の機能を使用するには、下向きに変換する必要があります: subclass 新しいサブクラス参照名 = (サブクラス) 元の親クラス参照名
キーワード:instanceof は参照型を決定します
例: if (ainstanceof Cat)//determine a猫タイプなのかな?
6.2. ポリモーフィズムの前提条件:
クラス間に関係が存在する必要があります。継承するか実装するかのどちらかです。
通常、サブクラスはオーバーライド (書き換え) する必要があるという前提条件があります。

6.3. ポリモーフィズムの利点:
ポリモーフィズムの出現により、プログラムのスケーラビリティが大幅に向上しました。
6.4. ポリモーフィズムの欠点:
スケーラビリティが向上しますが、親クラスのメンバーにアクセスするには親クラスの参照しか使用できません。

6.5 ポリモーフィズムにおける非静的メンバー関数の特性:
コンパイル時: 参照変数が属するクラスに呼び出しメソッドがあるかどうかを確認します。存在する場合、コンパイルは成功します。存在しない場合、コンパイルは失敗します。
実行時: オブジェクトが属するクラスに呼び出されるメソッドがあるかどうかを確認します。
簡単にまとめると、メンバー関数がポリモーフィカルに呼び出される場合、コンパイル時には左側を見て、実行時には右側を見てください。
6.6 ポリモーフィズムにおけるメンバ変数の特徴:
コンパイル時、実行時に関わらず、左記(参照変数が属するクラス)を参照
ポリモーフィズムにおける静的メンバー関数の特徴:
コンパイル時、実行時に関わらず、左記を参照左側 (静的自体を直接呼び出すことができます)。

7.object: すべてのオブジェクトの直接的または間接的な親クラスであり、伝説の神です。
このクラスで定義されるのは、すべてのオブジェクトが持つ機能でなければなりません。
内部クラスのアクセス規則:
1. 内部クラスは、プライベートクラスを含む外部クラスのメンバーに直接アクセスできます。
2. 内部クラスにアクセスするには、外部クラスは内部クラスのオブジェクトを作成する必要があります。

以上が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)

win7 home バージョンと win7 Ultimate バージョンの違いの紹介 win7 home バージョンと win7 Ultimate バージョンの違いの紹介 Jul 12, 2023 pm 08:41 PM

win7システムには、win7Ultimateバージョン、Win7Professionalバージョン、Win7Homeバージョンなど、多くのバージョンがあることは誰もが知っています。多くのユーザーは、HomeバージョンとUltimateバージョンの間で迷っており、どのバージョンを選択すればよいかわかりません。そこで今日は、Win7 Family Meal と Win7 Ultimate の違いについて説明します。 1. Experience Different Home Basic Edition を使用すると、日常の操作がより迅速かつ簡単になり、最も頻繁に使用されるプログラムやドキュメントにより迅速かつ便利にアクセスできるようになります。 Home Premium は最高のエンターテインメント体験を提供し、お気に入りのテレビ番組、写真、ビデオ、音楽を簡単に楽しんだり共有したりできます。 Ultimate Edition は、各エディションのすべての機能を統合し、Windows 7 Home Premium のすべてのエンターテイメント機能とプロフェッショナル機能を備えています。

Spring MVC の主要な概念をマスターする: これらの重要な機能を理解する Spring MVC の主要な概念をマスターする: これらの重要な機能を理解する Dec 29, 2023 am 09:14 AM

SpringMVC の主要な機能を理解する: これらの重要な概念を習得するには、特定のコード例が必要です。 SpringMVC は、開発者が Model-View-Controller (MVC) アーキテクチャ パターンを通じて柔軟でスケーラブルな構造を構築するのに役立つ Java ベースの Web アプリケーション開発フレームワークです。ウェブアプリケーション。 SpringMVC の主要な機能を理解して習得すると、Web アプリケーションをより効率的に開発および管理できるようになります。この記事では、SpringMVC の重要な概念をいくつか紹介します。

ニーズと機能に基づいて、該当する Go バージョンを選択してください ニーズと機能に基づいて、該当する Go バージョンを選択してください Jan 20, 2024 am 09:28 AM

インターネットの急速な発展に伴い、プログラミング言語は常に進化し、更新されています。中でもGo言語はオープンソースのプログラミング言語として近年注目を集めています。 Go 言語は、シンプル、効率的、安全で、開発とデプロイが簡単になるように設計されています。高い同時実行性、高速なコンパイル、メモリの安全性などの特徴を備えており、Web開発、クラウドコンピューティング、ビッグデータなどの分野で広く使用されています。ただし、現在、Go 言語のさまざまなバージョンが利用可能です。適切な Go 言語バージョンを選択するときは、要件と機能の両方を考慮する必要があります。頭

5gの3つの特徴とは 5gの3つの特徴とは Dec 09, 2020 am 10:55 AM

5g の 3 つの特徴は次のとおりです: 1. 高速; 実用的なアプリケーションでは、5G ネットワークの速度は 4G ネットワークの 10 倍以上です。 2. 低遅延; 5G ネットワークの遅延は約数十ミリ秒であり、人間の反応速度よりも高速です。 3. 幅広い接続: 5G ネットワークの出現と他のテクノロジーの組み合わせにより、すべてのインターネットの新しいシーンが生まれます。

Golang にはクラスのようなオブジェクト指向機能はありますか? Golang にはクラスのようなオブジェクト指向機能はありますか? Mar 19, 2024 pm 02:51 PM

Golang (Go 言語) には伝統的な意味でのクラスの概念はありませんが、構造体と呼ばれるデータ型が提供され、これによってクラスと同様のオブジェクト指向機能を実現できます。この記事では、構造体を使用してオブジェクト指向機能を実装する方法を説明し、具体的なコード例を示します。構造体の定義と使用法 まず、構造体の定義と使用法を見てみましょう。 Golang では、type キーワードを通じて構造を定義し、必要に応じて使用できます。構造には属性を含めることができます

C++ 関数の種類と特性 C++ 関数の種類と特性 Apr 11, 2024 pm 03:30 PM

C++ 関数には、単純関数、const 関数、静的関数、および仮想関数というタイプがあり、インライン関数、デフォルト パラメーター、参照戻り値、およびオーバーロードされた関数などの機能が含まれます。たとえば、calculateArea 関数は π を使用して、指定された半径の円の面積を計算し、それを出力として返します。

Javaの特徴は何ですか Javaの特徴は何ですか Aug 09, 2023 pm 03:05 PM

Java の特徴は次のとおりです: 1. シンプルで学習が簡単; 2. オブジェクト指向なので、コードの再利用性と保守性が向上します; 3. プラットフォームに依存せず、さまざまなオペレーティング システムで実行可能; 4. 自動ガベージによるメモリ管理収集メカニズム メモリの管理 5. 強力な型チェック、変数は使用前に型を宣言する必要がある 6. セキュリティ、不正なアクセスや悪意のあるコードの実行を防ぐことができる 7. マルチスレッドのサポート、パフォーマンスと応答性を向上させることができるプログラム ; 8. 例外処理によりプログラムのクラッシュを回避できる; 9. 多数の開発ライブラリとフレームワーク; 10. オープンソースのエコシステム。

Golang ミドルウェアの主要な機能とアプリケーション シナリオをマスターする Golang ミドルウェアの主要な機能とアプリケーション シナリオをマスターする Mar 20, 2024 pm 06:33 PM

Golang は高速で効率的なプログラミング言語として、Web 開発の分野でも広く使用されています。その中でも、ミドルウェアは重要な設計パターンであり、開発者がコードをより適切に整理および管理し、コードの再利用性と保守性を向上させるのに役立ちます。この記事では、Golang のミドルウェアの主な機能とアプリケーション シナリオを紹介し、具体的なコード例を通じてその使用法を説明します。 1. ミドルウェアの概念と機能 ミドルウェアはプラグイン コンポーネントとして、アプリケーションの要求と応答の処理チェーンに配置され、使用されます。

See all articles