- メソッド(メソッド)
は、プログラムの特定の機能を使用して問題を解決するように設計されています。他のプログラミング言語では、Javaの「メソッド」サブルーチン/関数を呼び出します。
1.1メソッドの定義
Javaはオブジェクト指向言語であり、そのメソッドは変数と同じです。各メソッドには独自のクラスオブジェクトがあります。クラスは複数のメソッドを統合して、特定の機能を持つクラスオブジェクトを形成します。各メソッドは、ブロックと見なすこともできます。メソッドを使用するときは、そのクラスオブジェクトのプロパティ、パラメーター、および戻り値のルールに注意してください。
1.クラスで、メソッド(Declare)を作成して(メソッド)を作成します。
2.宣言されたメソッドが戻りデータを実行しない場合は、前にvoidを付ける必要があります。戻りデータを実行する場合は、前にvoidを付けないでください。コンテンツにはリターンが必要です。つまり、voidとreturnは共存できません。
3.メソッドを使用する場合、最初に新しいクラスで新しいオブジェクトを生成してから、新しいオブジェクトでメソッドを実行する必要があります。
4.メソッドを使用するときは、呼び出し側プログラムと呼び出し先プログラムの間のパラメーターに注意してください。これは一貫している必要があります。つまり、(a)パラメーターのタイプが一貫している必要があります。このタイプのルールに違反すると、プログラムは実行されません。
class Study {
int credit = 0;
void addcredit(int i) {
credit +=i;
}
int totalcredit() {
return credit;
}
}
public class Student {
public static void main(String[] args) {
Test a = new Test();
Test b = new Test();
a.addcredit(12);
b.addcredit(9);
b.addcredit(6);
System.out.println("a.addcredit:"+a.totalcredit());//12
System.out.println("b.addcredit:"+b.totalcredit());//15
}
}
1.2インスタンスメソッド(インスタンスメソッド)
このメソッドは、メソッドが属するクラスオブジェクトが存在する場合にのみ使用できるため、オブジェクトの存在とともに存在するメソッドを「インスタンスメソッド」と呼びます。
public class Number {
int n=0;
void addN(int i) {
n=i;
}
int getN() {
return n;
}
}
public static void main(String[] args) {
Number N; //删除后报错
N = new Number();//删除报错
N.addN(10);
System.out.println("使用方法 N.getN:"+N.getN());//10
}
- クラスメソッド(クラスメソッド)
メソッドが宣言されると、「静的」接頭辞により、宣言されたメソッドを常に存在させることができ、新しいオブジェクトを生成するプロセスを実行する必要がなく、「クラスメソッド」と呼ばれる直接実行できます。
public class Number {
static int n=0;
static void addN(int i) {
n=i;
}
static int getN() {
return n;
}
}
public static void main(String[] args) {
Number.addN(10);
System.out.println(" N.getN:"+Number.getN());//10
Number.n = 20;
System.out.println("Number.n:"+Number.n);//20
}
インスタンスメソッドと比較して、クラスメソッドは新しいオブジェクトではなくなり、静的変数を直接使用できます。
- コンストラクター(Constructor)
クラスのコンストラクター機能は次のとおりです。
1.コンストラクターの名前は、それが属するクラスの名前と同じである必要があります。
2.コンストラクターはメソッドであり、他の一般的なメソッドとは異なり、戻りデータ(戻り値なし)はなく、先行するvoidもありません。
3.コンストラクターは、クラス内に新しいオブジェクトを生成して、初期化して実行します。
4.クラスで、コンストラクターがない場合、システムは自動的にデフォルトの非表示の空のコンストラクター(デフォルトコンストラクター)を提供します。
public class Mynumber {
int n;
Mynumber(){
n = 3;
System.out.println("Here is Constructor and n="+n);
}
int getnumber() {
return n;
}
}
public static void main(String[] args) {
Mynumber a = new Mynumber();
System.out.println("Here is main and a.getnumber()="+a.getnumber());//3
}
4.メソッドオーバーロード
クラスには、名前と機能が同じでパラメーターが異なる複数のメソッドがあり、データ型とパラメーター数が異なります。クラスが呼び出されて実行されると、同じパラメーター型と番号を持つメソッドが自動的に実行され、そのようなオブジェクトは「メソッドオーバーロード」と呼ばれます。
public class adder {
int add(int a,int b) {
return a+b;
}
double add(double a, double b) {
return a+b;
}
int add(int x, int y, int z) {
return x+y+z;
}
}
public static void main(String[] args) {
int j;
double k;
int m;
adder ad = new adder();
j=ad.add(5, 7);
k=ad.add(1.2, 1.32);
m=ad.add(12, 12,52);
System.out.println("j="+j);//12
System.out.println("k="+k);//2.52
System.out.println("m="+m);//76
}
- コンストラクターのオーバーロード
public class adder {
int c;
double k;
adder(int a,int b) {
c=a+b;
System.out.println("int c="+c);
}
adder(double a, double b) {
k=a+b;
System.out.println("double k="+k);
}
}
public static void main(String[] args) {
adder add_int = new adder(2,3);//5
adder add_double = new adder(13.2,2.3);//15.5
}
- パブリック/プライベート修飾子(Modifications)
は、クラス内の変数(Variables)またはメソッド(Methods )を宣言し、パブリックおよびプライベート修飾子をプレフィックスとして使用して、それらの使用環境とタイミングを制限できます。
1.変数(メソッド)およびメソッド(メソッド)に接頭辞publicが付いている場合、それらはパブリック変数またはパブリックメソッドであり、他のタイプのオブジェクトを実行および呼び出すことができます。
2.変数とメソッドの前にプライベートが付いている場合、それらはプライベート変数またはプライベートメソッドであり、独自のクラスオブジェクト内のメソッドのみを使用でき、他のクラスオブジェクトを呼び出すことはできません。
3.プレモディファイアがない場合、これはデフォルト設定(Default)であり、同じパッケージ(パッケージ)で呼び出しを実行でき、別のパッケージで呼び出すことはできません。さらに、保護された修飾子には同じ機能があります。
6.1変更なし(デフォルトの変更)
class Number {
int number;
}
public class Lab {
public static void main(String[] args) {
Number i = new Number();
i.number=10;
System.out.printf("i.n=%d",i.number);//i.number=10
}
}
注:変数とメソッドに事前修飾子がない場合、これはデフォルト設定(デフォルト)であり、同じパッケージ(パッケージ)での実行と呼び出しのみが許可され、別のパッケージでは使用できません。
6.2プレモディファイヤパブリック
public class Number {
public int N;
}
import text_two.Number;
public class Lab {
public static void main(String[] args) {
Number i = new Number();
i.N=10;
System.out.printf("i.N=%d",i.N);//i.N=10
}
}
パッケージは異なるパッケージでインポートする必要があります:形式:import <パッケージ名>。<クラス名>;インポートしたパッケージのクラスは事前公開する必要があります。同じパッケージの下にある場合は、変数publicキーワードのみが必要です。
6.3変数とメソッドの接頭辞がprivateの場合、使用できるのは独自のクラスオブジェクトのメソッドのみであり、他のクラスオブジェクトは呼び出さないでください。
class Study {
private int credit = 0;
public void addcredit(int i) {
credit +=i;
}
public int totalcredit() {
return credit;
}
}
public class Lab {
public static void main(String[] args) {
Study joe = new Study();
Study george = new Study();
joe.addcredit(12);
george.addcredit(9);
joe.addcredit(6);
george.addcredit(3);
System.out.println("joe studied:"+joe.totalcredit()+"credites");//joe studied:18credites
System.out.println("george studied:"+george.totalcredit()+"credites");//george studied:12credites
}
}
- thisキーワード
コンストラクターがthis()で別のオーバーロードされたコンストラクターを呼び出す場合、this()はコンストラクターの最初の行に配置する必要があります。
7.1クラス
複雑なクラスでは、プログラムの設計を簡素化し、プログラムの可読性を高めるために、これはメソッドで使用されます。これは、クラスオブジェクトのキーワードを意味します。
class Mynumber {
private int n;
public void setnumber(int i) {
this.n=i;
}
public int getnumber() {
return n;
}
}
public class Lab {
public static void main(String[] args) {
Mynumber M = new Mynumber();
M.setnumber(10);
System.out.println("My.getnumber:"+M.getnumber());
}
}