:クラスの中でも、(静的およびインスタンス変数は、ブログの記事に再びそれを説明する必要がある)両者の違いで、私たちが最初に見て、静的およびインスタンスメソッドに分けることができます
1差異:
インスタンスメソッドだけでなく、静的変数動作、インスタンス変数は、上で動作させることができ、及び静的メソッドは静的変数、以下の実施例のみを操作することができます。
public class Study {
public static void main(String args[]) {
A a = new A(); //其中a为引用对象(存在栈中),并不是实例对象本身(存在堆中),相当于一个引用地址,可以找到实例对象;
a.set1(10, 20);
a.showXY();
a.set2(30);
a.showZ();
}
}
class A{
int i; //定义实例变量
static int j; //定义静态变量(类变量)
//定义实例方法
void set1(int x,int y) {
i=x;j=y;
}
//定义静态方法
static void set2(int z) {
j=z*z;
}
//定义输出方法
void showXY() {
System.out.println("i="+i+" j="+j);
}
void showZ(){
System.out.println("j="+j);
}
}
正しい結果を以下に示す:
プロセス分析を次のような静的メソッドSET2()のI SET2()に記述された、エラーが報告されている場合、静的な方法で動作のみ静的変数jを、。
//定义静态方法
static void set2(int z) {
i=z;j=z*z;
}
結果は以下のとおりである:
私は静的メソッドが動作することができないインスタンス変数、インスタンス変数である場合、それが説明します。
両者の差:
静的メソッドが呼び出され、及び方法の実施例は、単にオブジェクトと呼ばれることができるオブジェクトだけでなく、クラスによってのみならず、呼び出すことができます。例としては、次のとおりです:
public class Study {
public static void main(String args[]) {
A a = new A();
A.set1(10, 20);
a.showXY();
a.set2(30);
a.showZ();
}
}
:結果は以下の通りである
解析:クラスインスタンスメソッドは、次のような外観(静的メソッドは、オブジェクトおよびクラスを呼び出すことができる)に変更する必要があり、エラーが発生し起動されます。