記事ディレクトリ
1. Java クラス
クラスは Java プログラムを構成する基本要素であり、Java アプリケーション プログラムは複数のクラスで構成されます。クラスは Java 言語で最も重要な「データ型」であり、クラスによって宣言された変数はオブジェクトと呼ばれます。
クラス定義は、クラス宣言とクラス本体の 2 つの部分で構成されます。基本的な形式は次のとおりです。
class 类名 {
类体的内容
}
class はクラスを定義するために使用されるキーワードです。「class クラス名」はクラスの宣言部分であり、クラス名は有効な Java 識別子である必要があります。2 つの中括弧 {} とそれらの間の内容がクラス本体です。
例えば:
class Factory {
float a[];
Workman zhang;
}
「class Factory」はクラス宣言と呼ばれ、「Factory」はクラス名、「{float a[];Workman zhang;}」はクラス本体です。
クラスの目的は、物事のクラスの共通の属性と動作を抽象化し、特定の文法形式を使用して抽象化された属性と動作を記述することです。抽象化の鍵は、属性と動作という物事の 2 つの側面を捉えることです。したがって、クラス本体の内容は 2 つの部分で構成されます。
1) 変数宣言: オブジェクトのプロパティを反映するために使用されます。
2) メソッド定義: メソッドは、クラス内で宣言された変数を操作して、オブジェクトの動作を反映できます。
2、Java メンバー変数
クラス本体の内容は変数宣言とメソッド定義に分かれており、変数宣言部分で宣言された変数をメンバ変数またはドメイン変数と呼びます。
メンバー変数の型は、基本型 (整数、浮動小数点、文字、論理型)、参照型 (配列、オブジェクト、インターフェイス) を含む、Java の任意のデータ型にすることができます。
メンバー変数はクラス全体で有効であり、その有効性はクラス本体内での記述位置とは関係ありません。ただし、メンバー変数宣言をメソッド間で分散して記述することはお勧めできません。人々は最初に属性を導入し、次に動作を導入することに慣れています。
例えば:
class Factory {
float a[];
Workman zhang;
}
Factoryクラスのメンバ変数aはfloat型の配列であり、zhangはWorkmanクラスで宣言された変数、つまりオブジェクトである。
3. Javaメソッド
クラス本体の内容は変数宣言とメソッド定義に分かれており、メソッド定義はメソッドヘッダーとメソッド本体の 2 つの部分で構成されます。基本的な形式は次のとおりです。
方法头{
方法体的内容
}
メソッド ヘッダーは、メソッドのタイプ、名前、および名前の後の 1 組のかっことその中にパラメータのリストで構成されます。パラメーターのないメソッド定義のメソッド ヘッダーにはパラメーター リストがありません。つまり、メソッド名の後の括弧の中に何もありません。
例えば:
int speak() //无参数的方法头
{
return 123;
}
int add(int x,int y,int z) //有参数的方法头
{
return x+y+z;
}
プログラムのニーズに応じて、メソッドによって返されるデータ型は Java の任意のデータ型になります。メソッドがデータを返す必要がない場合、戻り値の型は void でなければなりません。メソッドのパラメータは多くのメソッド宣言で指定され、パラメータはカンマで区切られたいくつかの変数宣言です。メソッドのパラメータには任意の Java データ型を使用できます。
メソッド宣言の後の中括弧 {,} とそれらの間の内容は、メソッドのメソッド本体と呼ばれます。メソッド本体の内容には、ローカル変数や Java ステートメントの宣言が含まれます。つまり、メソッド本体で宣言されたメンバー変数やローカル変数は、メソッド本体内で操作できます。メソッド本体で宣言された変数およびメソッドパラメータはローカル変数と呼ばれます。
4番目、Javaクラスの構築方法
コンストラクターは、プログラムがクラスを使用してオブジェクトを作成するときに使用されるクラス内の特別なメソッドです。クラス内のコンストラクター メソッドの名前は、そのメソッドが含まれるクラスの名前とまったく同じである必要があり、型はありません。クラス内に複数のコンストラクターを記述することは許可されていますが、それらのパラメーターが異なることを確認する必要があります。パラメーターが異なるとは、パラメーターの数が異なる、またはパラメーターの数は同じだが対応するパラメーターの型が異なることを意味します。パラメータリストが異なります。
知らせ:
クラスに構築メソッドが記述されていない場合、システムはデフォルトで、クラスに構築メソッドが 1 つだけあり、デフォルトの構築メソッドにはパラメータがなく、メソッド本体にステートメントがありません。
クラス内に 1 つ以上のコンストラクターが定義されている場合、Java はデフォルトのコンストラクターを提供しません。例: 次の Point クラスには 2 つのコンストラクターがあります。
class Point {
int x,y;
Point () {
x = 1;
y = 1;
}
Point (int a,int b) {
x = a;
y = b;
}
}
コンストラクターには型がないことに注意することが重要です。
例えば:
class Point {
int x,y;
Point () {
//是构造方法
x = 1;
y = 1;
}
void Point (int a,int b) {
//不是构造方法,该方法的类型是void
x = a;
y = b;
}
int Point () {
//不是构造方法,该方法的类型是int
return 12;
}
}
5. Java でオブジェクトを作成する
クラスはオブジェクト指向言語で最も重要なデータ型であり、クラスを使用して変数を宣言できます。オブジェクト指向言語では、クラスで宣言された変数をオブジェクトと呼びます。基本的なデータ型とは異なり、クラスを使用してオブジェクトを宣言した後、オブジェクトを作成する必要があります。つまり、宣言されたオブジェクトに所有変数を代入し、オブジェクトの属性を決定する必要があります。クラスを使用してオブジェクトを作成する場合は、このクラスのインスタンスを与えるとも呼ばれます。平たく言えば、クラスはオブジェクトを作成するためのテンプレートであり、クラスのないオブジェクトは存在しません。オブジェクトの作成には、オブジェクトの宣言とオブジェクトへの変数の割り当てという 2 つの手順が含まれます。
1. オブジェクト宣言の一般的な形式は次のとおりです。
类的名字 对象名字;
例えば:
Lader lader;
2. 宣言されたオブジェクトに変数を代入します。
new 演算子とクラスのコンストラクターを使用して、宣言されたオブジェクトに変数を代入します。つまり、オブジェクトを作成します。クラスにコンストラクターがない場合、システムはデフォルトのコンストラクターを呼び出します。このコンストラクターにはパラメーターがなく、メソッド本体にステートメントもありません。
例えば:
class Point {
int x,y;
Point (int a,int b) {
x = a;
y = b;
}
}
public class Main {
public static void main(String[] args) {
Point p1,p2; //声明对象p1和p2
p1 = new Point (10,10); //为对象分配变量(使用new和类中的构造方法)
p2 = new Point (23,45); //为对象分配变量(使用new和类中的构造方法)
}
}
6、Java はオブジェクトを使用します
抽象化の目的はクラスを生成することであり、クラスの目的はプロパティと動作を備えたオブジェクトを作成することです。オブジェクトは、自身の変数を操作して状態を変更するだけでなく、クラス内のメソッドを呼び出して特定の動作を生成することもできます。
演算子「.」 (ドット演算子は参照演算子またはアクセス演算子とも呼ばれます) を使用すると、オブジェクトは独自の変数にアクセスし、メソッドを呼び出すことができます。
オブジェクトが作成されると、オブジェクトのエンティティである独自の変数が作成されます。オブジェクトは、ドット演算子「.」を使用して独自の変数にアクセスします。アクセス形式は次のとおりです。
对象.变量;
オブジェクトの作成後、ドット演算子「.」を使用して、オブジェクトを作成したクラスのメソッドを呼び出し、特定の動作を生成できます。呼び出し形式は次のとおりです。
对象.方法;
オブジェクトがメソッドを呼び出すと、メソッド内に表示されるメンバー変数は、オブジェクトに割り当てられた変数を参照します。
class XiyoujiRenwu {
float height,weight;
String head;
void speak (String s) {
head = "歪头";
System.out.println(s);
}
}
public class Main {
public static void main(String[] args) {
XiyoujiRenwu zhubajie,sunwukong; //声明对象
zhubajie = new XiyoujiRenwu(); //为对象分配变量
sunwukong = new XiyoujiRenwu();
zhubajie.height = 1.80f; //对象给自己的变量赋值
zhubajie.head = "大头";
sunwukong.height = 1.60f; //对象给自己的变量赋值
sunwukong.weight = 1000f;
sunwukong.head = "长发飘飘";
System.out.println("zhubajie的身高:"+zhubajie.height);
System.out.println("zhubajie的头:"+zhubajie.head);
System.out.println("sunwukong的重量:"+sunwukong.weight);
System.out.println("sunwukong的头:"+sunwukong.head);
zhubajie.speak("俺老猪想娶媳妇"); //对象调用方法
System.out.print1n("zhubajie现在的头:"+zhubajie.head);
sunwukong.speak("俺老孙想骗八戒背我"); //对象调用方法
System.out.println("sunwukong现在的头:"+sunwukong.head);
}
}
7. Java オブジェクトの参照とエンティティ
クラスによって宣言された変数はオブジェクトと呼ばれます。オブジェクトは、オブジェクトがオブジェクトに割り当てられた変数を操作してクラス内のメソッドを呼び出すことができるようにするための参照を格納する役割を担う変数であり、変数はオブジェクトに割り当てられます。はオブジェクトの実体と呼ばれます。
Point point = new Point()
ポイント: クラス名
ポイント: オブジェクト名
new Point(): オブジェクトの実体
オブジェクト参照は、オブジェクトが保存されているメモリ アドレスです。
注意:
在编写程序时要避免使用空对象。
我们把没有实体的对象称作空对象,空对象不能使用,即不能让一个空对象去调用方法产生行为。假如程序中使用了空对象,程序在运行时会出现异常NullPointerException。由于对象可以动态地被分配实体,所以Java编译器对空对象不做检查。
結論は:
クラスによって宣言された 2 つのオブジェクトが同じ参照を持つ場合、両方ともまったく同じ変数またはエンティティを持ちます。プログラムがクラスを使用して 2 つのオブジェクト object1 と object2 を作成する場合、これら 2 つの参照は異なります。
Java では、同じクラスの 2 つのオブジェクト object1 と object2 に対して、次の代入操作が許可されます。
object1 = object2;
このように、object1に格納されているのはobject2の値、つまりobject2の参照となるため、object1が持つ変数、つまり実体はobject2と全く同じになります。
八、Javaのクラスとプログラムの基本構造
Java アプリケーション プログラムは複数のクラスで構成されており、これらのクラスは 1 つのソース ファイルに含めることも、複数のソース ファイルに分散することもできます。
Javaアプリケーションはメインクラス、つまりmainメソッドを含むクラスを持ち、Javaアプリケーションはメインクラスのmainメソッドから実行を開始します。
Java アプリケーションを作成する場合、複数の Java ソース ファイルを作成し、アプリケーションに関係する Java ソース ファイルを同じディレクトリに保存し、それらを個別にコンパイルして渡し、Java アプリケーションに必要なバイトコード ファイルを取得して、メイン クラスを実行できます。
Java プログラムは、使用するクラスを異なるソース ファイルに格納することも、使用するクラスを 1 つのソース ファイルに格納し、1 つのソース ファイル内のクラスを複数の Java プログラムで使用することもできます。
コンパイルの観点から見ると、プログラムがあるクラスを変更する必要がある場合、そのクラスのソース ファイルを再コンパイルするだけでよく、他のクラスのソース ファイルを再コンパイルする必要がないため、システムの保守に非常に役立ちます。
知らせ:
Java ソース ファイルには複数のクラスを含めることができますが、Java ソース ファイルには 1 つのクラスのみを記述することをお勧めします。
9、Javaパラメータ値の受け渡し
メソッドの最も重要な部分の 1 つはメソッドのパラメータです。パラメータはローカル変数に属します。オブジェクトがメソッドを呼び出すと、パラメータにはメモリ領域が割り当てられ、呼び出し元はパラメータに値を渡す必要があります。つまり、メソッドが呼び出されるとき、パラメーター変数には特定の値が必要です。
Java では、メソッド内のパラメータ変数の値は、呼び出し元が指定した値のコピーです。メソッドがパラメータの値を変更しても、パラメータに「値を渡す」変数の値には影響しません。
基本的なデータ型パラメータの値を渡す:
プリミティブ データ型のパラメーターの場合、パラメーターに渡す値をパラメーターよりも高いレベルにすることはできません。
例: float 値を int パラメータに渡すことはできませんが、float 値を double パラメータに渡すことはできます。
参照型パラメータの値渡し:
Java の参照データには、配列、オブジェクト、インターフェイスが含まれます。パラメータが参照型の場合、「値渡し」では、変数によって参照されるエンティティではなく、変数に格納されている「参照」が転送されます。
知らせ:
同じ型の 2 つの参照変数は、参照が同じであれば同じ実体を持つことになるため、パラメータ変数が参照する実体が変更されると、元の変数の実体も同様に変更されます。 , パラメータを変更する に格納されている「参照」は、値を渡す変数に格納されている「参照」には影響しません。
要約する
失うことを恐れないでください、あなたが失ったものはあなたのものではありません、そして傷つくことを恐れないでください、あなたを傷つけることができるものはあなたの破滅です、繁栄は三千です、無関心はただの雲です、トラブルは数え切れないほどありますが、それについて考えるときは晴れの日です。