Javaプログラムの開発と学習クラスおよびオブジェクト

Javaプログラムの開発と学習クラスおよびオブジェクト

(参考書:Java2実践チュートリアル第5版)

1.オブジェクト指向プログラミングの3つの特徴

  1. カプセル化:オブジェクト指向プログラミングの中心的な考え方は、オブジェクトが独自のデータとこれらのデータに対する操作を合理的かつ効果的にカプセル化することです。
  2. 継承:サブクラスは、親クラスのプロパティと関数を継承できます。つまり、親クラスが持つデータと操作を継承できます。同時に、サブクラスのデータに対する一意のデータと操作を増やすことができます。 。
  3. ポリモーフィズム:1つ目は操作名のポリモーフィズムであり、オブジェクトが対応するメッセージに従って特定の動作を生成できるように、さまざまなメッセージが操作に渡されます。2つ目は継承に関連するポリモーフィズムであり、同じ操作を呼び出すことができます。さまざまなオブジェクトによってさまざまな動作を生成します。

2つ、クラス宣言とクラス本体

クラスはJavaプログラムの基本要素であり、オブジェクトのクラスの状態とメソッドをカプセル化します。クラスはオブジェクトを定義するために使用されるテンプレートであり、オブジェクトを作成できます。クラスを使用してオブジェクトを作成する場合、このクラスのインスタンスが指定されるとも言います。クラスは、クラス宣言とクラス本体の2つの部分で構成されます。

clss 类名{
    
    
	类体的内容;
}

それらの中にはclass 类名クラス宣言と呼ばれます。

三、クラス本体の構成

クラス本体のコンテンツには、メンバー変数とメソッドの2つがあります。
メンバー変数:クラスによって作成されたオブジェクトのプロパティを記述するために使用されます。メンバー変数の型はJavaの任意のデータ型であり、クラス本体のどこに記述されているかに関係なく、クラス全体で有効です。メンバー変数を定義するときに初期値を割り当てることができます。

メソッド:構築メソッドはクラスの作成に使用され、クラスによって作成されたオブジェクトの初期状態を提供するために使用されます。他のメソッドは、クラスによって作成されたオブジェクトによって呼び出されます。オブジェクトは、これらのメソッドを呼び出してメンバー変数を操作し、オブジェクトの特定の動作を反映する特定のアルゴリズムを形成します。

四、工法

クラスの一部は構築メソッドと呼ばれます。構築メソッドは、クラスによって作成されたオブジェクトに適切な初期状態を与えるために、クラスがオブジェクトを作成するときに使用されます。

  • 構築メソッドは特別なメソッドであり、その名前はそれが含まれるクラスの名前と完全に同じである必要があり、タイプはありません。
  • クラスに構築メソッドが記述されていない場合、Javaはパラメーターなしのデフォルトの構築メソッドを提供します。構築メソッドが記述されている場合、デフォルトの構築メソッドは提供されません。
  • Javaでは、クラス内で複数の構築メソッドを使用できますが、これらの構築メソッドのパラメーターの数またはタイプは異なっている必要があります。

5、オブジェクトの作成

オブジェクトの作成は、メンバー変数の宣言と割り当ての2つのステップに分かれています。
(1)オブジェクト宣言、形式:类的名字 对象名字;

(2)
宣言されたオブジェクトのメンバー変数のマッチング宣言されたオブジェクトはデータを格納せず、エンティティをオブジェクトに割り当てる必要があります。つまり、メンバー変数を割り当てる必要があります。
通常、new演算子をクラスコンストラクターと組み合わせて使用して、宣言されたオブジェクトにメンバー変数を割り当てます。クラスにコンストラクターがない場合、システムはデフォルトコンストラクターを呼び出します(デフォルトコンストラクターにはパラメーターがありません。コンストラクターの名前を覚えておいてください)。クラス名と同じである必要があります)

オブジェクト作成の形式:オブジェクト对象 = new 构造方法名(即是类名)(构造方法参数);
の宣言とメンバー変数の割り当ては、次の1つのステップで完了できます。

类名 对象名 = new 构造方法名(构造方法参数);

(3)複数の異なるオブジェクトを作成
するクラスは、演算子newを使用して複数の異なるオブジェクトを作成できます。これらのオブジェクトには異なるメモリスペースが割り当てられるため、1つのオブジェクトの状態を変更しても、他のオブジェクトの状態には影響しません。

(4)オブジェクトの使用
オブジェクトは、自身の変数を操作して状態を変更できるだけでなく、それを作成したクラスのメソッドを使用することもできます。オブジェクトは、これらのメソッドを使用して特定の動作を生成できます。演算子「。」を
介して、オブジェクトは独自の変数にアクセスし、メソッドを呼び出すことができます。オブジェクトのプロパティ:オブジェクトは独自の変数を操作します。オブジェクトの動作:オブジェクトはクラスのメソッドを呼び出します。

6.オブジェクト参照とエンティティ

クラスを使用してオブジェクトを作成すると、メンバー変数にメモリスペースが割り当てられます。これらのメモリスペースはオブジェクトのエンティティまたは変数と呼ばれ、これらの変数がオブジェクト操作で確実に使用されるように、参照がオブジェクトに格納されます。したがって、2つのオブジェクトが同じ参照を持っている場合、それらは同じエンティティを持っています。

Javaのガベージコレクションメカニズム:オペレーティング環境は、エンティティがオブジェクトによって参照されなくなったかどうかを定期的にチェックします。そのようなエンティティが見つかった場合、エンティティによって占有されていたメモリが解放されます。

エンティティのないオブジェクトは空のオブジェクトと呼ばれ、空のオブジェクトはメソッドを呼び出して動作を生成できなくなります。

7つのメンバー変数

クラス内でメソッド外で定義された変数は、メンバー変数と呼ばれます。

(1)クラス変数とインスタンス変数
メンバー変数は、作成されたオブジェクトのプロパティを記述するために使用されます。一部のメンバー変数はインスタンス変数と呼ばキーワードstaticで変更されたメンバー変数の他の部分は静的変数またはクラスと呼ばれます。変数。

すべてのオブジェクトはクラス変数を共有します。クラスがオブジェクトを作成しない場合でも、クラス変数はメモリスペースを割り当てます。

クラス変数には、オブジェクトからだけでなく、クラス名から直接アクセスすることもできます。(ただし、インスタンス変数にはオブジェクトを介してのみアクセスできます)

(2)定数キーワードfinalで変更さ
れたメンバー変数は定数と呼ばれます。定数名は大文字を使用するために使用されます。最終定数はメモリスペースを占有しません。宣言時に初期化する必要があります。オブジェクトは操作できますが、変更することはできません。

8つのローカル変数

メソッド本体で宣言された変数とメソッドパラメータは、ローカル変数と呼ばれます。

  • ローカル変数はメソッド内でのみ有効であり、宣言された場所からのみ有効です。
  • ローカル変数の名前がメンバー変数と同じである場合、メンバー変数は非表示になります。つまり、このメソッドではメンバー変数は一時的に無効になります。
  • メソッドで非表示のメンバー変数を使用する場合は、キーワードthisを使用する必要があります格式:this.变量名
  • メンバー変数にはデフォルト値がありますが、ローカル変数にはデフォルト値がありません。ローカル変数に特定の値があることを確認する必要があります。

9、パラメータ転送値

(1)基本データ型の転送は
、変更されていないか、精度が低下する方向にのみ行うことができます。つまり、低精度のパラメーターを高精度の変数に渡すことはできません。

(2)値
による参照型Javaの参照データには、配列、オブジェクト、およびインターフェースが含まれます。それらは、参照されるエンティティではなく、変数に格納されている参照を渡します。

(3)変数パラメーター
とは、特定の項目からリストの最後の項目までのパラメーターの名前と数を指し、メソッドを宣言するときにパラメーターを与えませんが、これらのパラメーターのタイプは完全に同じである必要があります。変数パラメーターは「...」を使用して複数のパラメーターを示します。これらのパラメーターは同じタイプである必要があり、最後のパラメーターはメソッドのパラメーターリストの最後のパラメーターである必要があります例:void f(int…x)は、最初から最後までのパラメーターがint型であることを示しますが、連続して表示されるint型の数は不明です。xはパラメーターリストの可変パラメーターであると言われています。メソッドfの。パラメータは "を表します。
このように、ステートメントのために強化されて生まれました:

for(声明循环变量:参数代表){
    
    
	循环体;
}

10.オブジェクトの組み合わせ

クラスはオブジェクトを独自のメンバー変数として使用できます。そのようなクラスでオブジェクトを作成すると、このオブジェクトには他のオブジェクトが存在します。これは、人々がよくHas-Aと呼ぶものです。

オブジェクトaがオブジェクトbを組み合わせる場合、aはbを委任してそのメソッドを呼び出すことができます。

11.インスタンスメソッドとクラスメソッド

(1)インスタンスメソッド:キーワードの静的変更なし

数据类型 方法名{
    
    
	方法体内的语句;
}

(2)クラスメソッド:キーワードstaticで変更

static 数据类型 方法名{
    
    
	方法体内的语句;
} 

  • インスタンスメソッドは、このクラスのインスタンスメソッドまたはクラスメソッドを呼び出すことができますが、クラスメソッドはこのクラスのクラスメソッドのみを呼び出すことができます。
  • インスタンスメソッドはメンバー変数(クラス変数とインスタンス変数)を操作でき、クラスメソッドはクラス変数のみを操作できます。
  • インスタンスメソッドはオブジェクトを介して呼び出す必要があり、クラスメソッドはクラス名(またはオブジェクト)を介して呼び出すことができます。

12.メソッドのオーバーロード

メソッドのオーバーロードとは、動作のポリモーフィズムを指します。具体的な意味は次のとおりです。同じ名前のクラスに複数のメソッドが存在する可能性がありますが、これらのメソッドのパラメーターは異なる必要があります。つまり、パラメーターの数またはパラメーターのタイプです。異なっています。同じ名前と異なるパラメータを持つこれらのメソッドは、異なる動作を生成しますただし、オーバーロードされたメソッドは、呼び出されたときにあいまいな呼び出しが発生する傾向があります。

13、このキーワード

thisキーワードは、インスタンスメソッドと構築メソッドに表示できますが、クラスメソッドには表示できません
(1)構築方法に表示されます:構築方法によって作成されたオブジェクトを表します。
(2)インスタンスメソッドに表示されます:メソッドを呼び出している現在のオブジェクトを表します。インスタンスメンバー変数がインスタンスメソッドに表示される場合、デフォルトの形式はthis .member variableです。クラス変数がインスタンスメソッドに表示される場合、デフォルトの形式はclass name .membervariableです。ただし、通常は省略できます。(特別な場合については、8、ローカル変数を参照してください)

14.パッケージ

このパッケージの目的は、異なるJavaソースファイル内の2つのクラスの名前が同じである状況、つまり、異なるパッケージに属することによって区別される状況を効果的に区別することです。
(1)パッケージステートメントパッケージステートメントは
キーワードpackageを使用宣言されますpackageステートメントは、Javaソースファイルの最初のステートメントです。これは、ソースファイルで定義されたクラスのパッケージ形式が次のとおりであることを示します。package 包名;
(2)
パッケージ名でメインクラスを実行するパッケージ名でメインクラスを実行するに、次の形式を使用する必要があります。包名.主类名

15.インポートステートメント

クラスに、同じパッケージに含まれていないクラスを使用させます。
Javaはクラスライブラリを提供します。クラスライブラリのクラスを使用するには、importステートメントを使用してパッケージ内のクラスとインターフェイスをインポートする必要があります。Javaステートメントでは、複数のインポートステートメントが存在する可能性があり、パッケージステートメントとソースファイルのクラス定義の間に記述する必要があります
パッケージ内のすべてのクラスをインポートする場合は、代わりにワイルドカード(*)を使用できimport 包名.*;
ます。パッケージ内の特定のクラスをインポートする場合:import 包名.类名;

Javaが提供する共通パッケージ:
java.lang:すべての基本言語クラスが含まれ、Java言語のコアクラスライブラリです
。javax.swing:抽象ウィンドウツールセットの画像、テキスト、およびウィンドウGUIクラスが含まれます
。java.io :すべての入力クラスと出力クラスが含まれます;
java.utilのクラス:ユーティリティクラスを構成します;
java.sql:クラスを含むデータベースの操作;
java.net:ネットワーク機能を実装するすべてのクラスが含まれます;

16.アクセス権限

1)プライベート変数とプライベートメソッド修正メンバ変数やメソッド
キーワードプライベートはプライベート変数とプライベートメソッドと呼ばれています。クラスAがプライベート変数とメソッドを宣言している場合、クラスBのクラスAで作成されたオブジェクトは、Aのプライベート変数とプライベートメソッドにアクセスできません。

(2)共有変数と共有方法に変更メンバ変数やメソッド
キーワード公衆が共有変数と共有メソッドと呼ばれています。クラスAが共有変数とメソッドを宣言している場合、クラスBとクラスAによって作成されたオブジェクトは、独自の共有変数とメソッドにアクセスできます。

(3)フレンドリ変数とフレンドリメソッド
public、protected、privateキーワードによって変更さないメンバー変数とメソッドは、フレンドリ変数とフレンドリメソッドと呼ばれます。クラスAのメンバー変数とメソッドがフレンドリである場合は、クラスBのクラスAでオブジェクトを作成します。クラスAとクラスBが同じパッケージにある場合、オブジェクトはフレンドリーな変数とメソッドにアクセスできます。

(4)保護されたメンバ変数とメソッドメンバ変数とメソッド修飾
保護されたキーワード保護メンバ変数とメソッドと呼ばれます。クラスAが保護されたメンバー変数とメソッドを宣言する場合、クラスBでクラスAを使用して作成されたオブジェクト。クラスAとクラスが同じパッケージに含まれている場合、オブジェクトは保護されたメンバーの変数とメソッドにアクセスできます。パッケージに含まれていないが、継承によってオブジェクトにアクセスできるようにすることができます。

(5)パブリッククラスとフレンドリクラス
クラス宣言において、クラスの前にパブリックが追加されている場合、そのようなクラスはパブリッククラスと呼ばれます。そうでなければ、それは友好的です。パブリッククラスは他のクラスでオブジェクトを作成できますが、フレンドリクラスは同じパッケージに含まれている必要があります。

17.基本的なデータ型のカプセル化

java.lang、基本データ型に関連するクラスは、基本データ型のカプセル化を実現するために設けられています。彼らです:Byte、Interger、Short、Long、Float、Double、Character。

18、オブジェクト配列

名前が示すように、オブジェクト配列は、同じタイプの複数のオブジェクトを順番に組み合わせたものです。オブジェクト配列が宣言された後のオブジェクトは、宣言が完了した後の空のオブジェクトのみです。使用するには作成する必要があります。例えば:

Student stu[] = new Student[10];
for(int i=0;i<10;i++) {
    
    
	stu[i] =new Student();
}

おすすめ

転載: blog.csdn.net/YCF8746/article/details/112688728