オブジェクト指向の言語としてのJava。次の基本概念をサポートしています。
•多型
•継承
•パッケージ
•抽象的な
•親切
•物体
•例
•方法
•メッセージの解析
このセクションでは、オブジェクトとクラスの概念に焦点を当てます。
•オブジェクト:オブジェクトは、クラス、ステートフル、および行動のインスタンスです。たとえば、犬とは、状態が次のものを含む物体です。色、名前、品種。行動には次のものが含まれます:彼の尾の揺れ、呼び出し、食事など。
•クラス:クラスは、オブジェクトのクラスの動作と状態を記述するテンプレートです。
Javaのオブジェクト
それでは、オブジェクトが何であるかを掘り下げましょう。あなたの周りの現実の世界を見ると、あなた、車、犬、人などの周りに多くのオブジェクトがあることがわかります。これらのオブジェクトはすべて独自の状態と行動を持っています。
例として犬を飼ってください。その状態には、名前、品種、色、および行動には、叫び声、尾を振る、走ることが含まれます。
実際のオブジェクトとソフトウェアオブジェクトを比較すると、それらは非常に似ています。
ソフトウェアオブジェクトには状態と動作もあります。ソフトウェアオブジェクトの状態は属性であり、動作はメソッドを介して反映されます。
ソフトウェア開発では、メソッドはオブジェクトの内部状態の変更に基づいて動作し、オブジェクトへの相互呼び出しもメソッドを通じて完了します。
Javaのクラス
クラスは、Javaオブジェクトを作成するためのテンプレートと見なすことができます。
次の簡単なクラスを使用して、Javaのクラスの定義を理解してください。
パブリッククラスドッグ{String Breed; int age;文字列色; void barking(){} void hungry(){} void sleeping(){}}クラスには、次のタイプ変数を含めることができます。
•ローカル変数:メソッド、コンストラクター、またはステートメントブロックで定義された変数は、ローカル変数と呼ばれます。可変宣言と初期化はどちらもメソッドにあります。メソッドが終了すると、変数が自動的に破壊されます。
•メンバー変数:メンバー変数は、クラスおよびメソッド本体の外側で定義された変数です。この変数は、オブジェクトを作成するときにインスタンス化されます。メンバー変数は、クラス内のメソッド、コンストラクター、およびステートメントブロックでアクセスできます。
•クラス変数:クラス変数は、メソッドの本体の外側のクラスでも宣言されますが、静的タイプとして宣言する必要があります。
クラスには複数のメソッドがあります。上記の例では、Barking()、Hungry()、Sleeping()はすべて犬のクラスの方法です。
建設方法
各クラスにはコンストラクターがあります。コンストラクターがクラスに対して明示的に定義されていない場合、Javaコンパイラはクラスのデフォルトのコンストラクターを提供します。
オブジェクトを作成するときは、少なくとも1つのコンストラクターを呼び出す必要があります。コンストラクターの名前はクラスと同じでなければならず、クラスには複数のコンストラクターを持つことができます。
コンストラクターの例は次のとおりです。
public class puppy {public puppy(){} public puppy(string name){//このコンストラクターには1つのパラメーターのみがあります:名前}}オブジェクトを作成します
オブジェクトはクラスから作成されます。 Javaでは、新しいオブジェクトを作成するために新しいキーワードを使用します。オブジェクトを作成するには、次の3つのステップが必要です。
•宣言:オブジェクト名とオブジェクトタイプを含むオブジェクトを宣言します。
•インスタンス化:新しいキーワードを使用して、オブジェクトを作成します。
•初期化:新規を使用してオブジェクトを作成する場合、コンストラクターメソッドが呼び出され、オブジェクトを初期化します。
オブジェクトを作成する例は次のとおりです。
public class puppy {public puppy(string name){//このコンストラクターには1つのパラメーターのみがあります。名前system.out.println( "passed name is:" + name); } public static void main(string [] args){//次のステートメントは子犬の子犬を作成しますmypuppy = new Puppy( "Tommy"); }}上記のプログラムをコンパイルして実行すると、次の結果が印刷されます。
渡された名前は:トミーです
インスタンス変数とメソッドにアクセスします
次のように、作成されたオブジェクトを介してメンバー変数とメンバーメソッドにアクセスします。
/* instantiated object*/objectReference = new constructor(); /*変数にアクセス*/objectReference.VariaBlename; /*クラスのメソッドにアクセス*/objectReference.methodname();次の例は、インスタンス変数にアクセスし、メンバーメソッドを呼び出す方法を示しています。
パブリッククラスの子犬{int puppyage; public Puppy(String name){//このコンストラクターには1つのパラメーターのみがあります。名前system.out.println( "passed name is:" + name); } public void Setage(int age){puppyage = age; } public int getage(){system.out.println( "子犬の年齢:" + puppyage);子犬を返す; } public static void main(string [] args){ /*オブジェクトを作成* /子犬mypuppy = new Puppy( "Tommy"); / *メソッド別に年齢を設定 */ mypuppy.setage(2); / *年齢を取得するために別の方法を呼び出す */ mypuppy.getage(); / *次のようなメンバー変数にアクセスすることもできます */ system.out.println( "変数値:" + mypuppy.puppyage); }}上記のプログラムをコンパイルして実行し、次の結果を作成します。
渡された名前は:トミーです
子犬の年齢は次のとおりです
変数値:2
ソースファイル宣言ルール
このセクションの最後の部分では、ソースファイルの宣言規則について学びます。ソースファイルで複数のクラスを定義する場合、およびインポートステートメントやパッケージステートメントがある場合、これらのルールに特に注意してください。
•ソースファイルにパブリッククラスは1つしかありません
•ソースファイルには、複数の非パブリッククラスを持つことができます
•ソースファイルの名前は、パブリッククラスのクラス名と一致する必要があります。たとえば、ソースファイルのパブリッククラスのクラス名は従業員であるため、ソースファイルはemployee.javaという名前にする必要があります。
•クラスがパッケージで定義されている場合、パッケージステートメントはソースファイルの最初の行にある必要があります。
•ソースファイルにインポートステートメントが含まれている場合、パッケージステートメントとクラス定義の間に配置する必要があります。パッケージステートメントがない場合、インポートステートメントはソースファイルの前面にある必要があります。
•インポートステートメントとパッケージステートメントは、ソースファイルで定義されているすべてのクラスに対して有効です。同じソースファイルでは、異なるクラスに異なるパッケージ宣言を与えることはできません。
クラスにはいくつかのアクセスレベルがあり、クラスは抽象クラスや最終クラスなどのさまざまなタイプに分割されます。これらについては、アクセス制御セクションで説明します。
上記のタイプに加えて、Javaには、内部クラスや匿名クラスなどの特別なクラスもあります。
Javaパッケージ
パッケージは、主にクラスとインターフェイスの分類に使用されます。 Javaプログラムを開発する場合、何百ものクラスが書かれている可能性があるため、クラスとインターフェイスを分類する必要があります。
インポートステートメント
Javaでは、パッケージ名とクラス名を含む完全な資格のある名前が指定されている場合、Javaコンパイラはソースコードまたはクラスを簡単に見つけることができます。インポートステートメントは、コンパイラが特定のクラスを見つけることができるように合理的なパスを提供するために使用されます。
たとえば、次のコマンドラインがコンパイラにjava_installation/java/ioパスの下にすべてのクラスをロードするようにコマンドします
java.io.*をインポートします。
簡単な例
この例では、従業員とEmployeTestの2つのクラスを作成します。
まず、テキストエディターを開き、次のコードを貼り付けます。ファイルをEmployee.javaとして保存することに注意してください。
従業員クラスには、名前、年齢、指定、給与の4つのメンバー変数があります。このクラスは、パラメーターが1つしかないコンストラクターを明示的に宣言します。
java.io.*をインポートします。 Public Class Employee {String name; int age;文字列指定;二重給与; //従業員クラスの公務員のコンストラクター(文字列名){this.name = name; } //年齢の価値を設定する公共void expage(int expage){age = expage; } /*指定の値を設定します* / public void empdesignation(string empdesig){dexignation = empdesig; } /*給与の値を設定* / public void empsalary(double empsalary){salary = empsalary; } /*情報を印刷* / public void printemployee(){system.out.println( "name:"+ name); System.out.println( "age:" + age); System.out.println( "指定:" +指定); System.out.println( "給与:" +給与); }}プログラムは、メインメソッドから始まります。このプログラムを実行するには、メインメソッドを含めてインスタンスオブジェクトを作成する必要があります。
以下は、従業員クラスの2つのインスタンスをインスタンスし、変数の値を設定するメソッドを呼び出すEmployeetestクラスです。
次のコードをemploeeetest.javaファイルに保存します。
java.io.*をインポートします。 public class equipeeTest {public static void main(string args []){ /* constructorを使用して2つのオブジェクトを作成します* / employee empone = new Employee( "James Smith");従業員emptwo = new Employee( "Mary Anne"); //これら2つのオブジェクトのメンバーメソッドを呼び出してくださいempone.empage(26); empone.empdesignation( "シニアソフトウェアエンジニア"); empone.empsalary(1000); empone.printemployee(); askwo.empage(21); emptwo.empdesignation( "Software Engineer"); askwo.empsalary(500); emptwo.printemployee(); }}これら2つのファイルをコンパイルして、Employeetestクラスを実行すると、次の結果が表示されます。
C:> javac Employee.java C:> vi employeetest.java C:> Javac emploeeet.java C:> Java EmployeTest Name:James Smith Age:26Desingignation:シニアソフトウェアエンジニア給与:1000.0NAME:メアリーアンエイジ:21デザイン:ソフトウェアエンジニア給与:500.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
上記の記事には、Javaオブジェクトとクラスを深く理解しています。それは私があなたと共有したすべてのコンテンツです。私はそれがあなたに参照を与えることができることを願っています、そしてあなたがwulin.comをもっとサポートできることを願っています。