ホームページ > Java > &#&ベース > Javaの静的メソッドとインスタンスメソッドの違い

Javaの静的メソッドとインスタンスメソッドの違い

王林
リリース: 2019-11-18 16:43:01
オリジナル
2965 人が閲覧しました

Javaの静的メソッドとインスタンスメソッドの違い

静的メソッドとインスタンス メソッドの違いは、主に 2 つの側面に反映されます。

静的メソッドを外部から呼び出す場合は、「クラス」を使用できます。 name".メソッド名"メソッドの他に、"オブジェクト名.メソッド名"メソッドも使用できます。インスタンスメソッドには後者のメソッドしかありません。つまり、静的メソッドを呼び出すにはオブジェクトを作成する必要はありません。

静的メソッドがこのクラスのメンバーにアクセスする場合、静的メンバー (つまり、静的メンバー変数と静的メソッド) へのアクセスのみが許可されますが、インスタンス メンバーへのアクセスは許可されません。変数とインスタンス メソッド。;インスタンス メソッドにはこの制限はありません。

#次の例は、この違いを示しています。

1. 静的メソッド インスタンスの呼び出し

public class hasStaticMethod{
//定义一个静态方法
public static void callMe(){
  System.out.println("This is a static method.");
}
}
ログイン後にコピー

次のプログラムでは、2 つの形式を使用して静的メソッドを呼び出します。

public class invokeStaticMethod{
  public static void main(String args[]){
  hasStaticMethod.callMe(); //不创建对象,直接调用静态方法  
  hasStaticMethod oa = new hasStaticMethod();  //创建一个对象
  oa.callMe();   //利用对象来调用静态方法
}
}
ログイン後にコピー

プログラムでは静的メソッドを 2 回呼び出すことができます。プログラムの出力は次のとおりです:


This is a static method.This is a static method.
ログイン後にコピー

オブジェクトを作成せずに静的メソッドを呼び出すことができるのは Java の仕様です。これにより、いくつかの一般的なメソッドを使用する手間が省かれ、プログラマは C 言語の関数を使用する従来の方法でメソッドを使用できるようになります。

2. メンバー変数にアクセスする静的メソッドの例

class accessMember{
private static int sa; //定义一个静态成员变量
private int ia; //定义一个实例成员变量
//下面定义一个静态方法
static void statMethod(){
  int i = 0;  //正确,可以有自己的局部变量sa = 10;  
  //正确,静态方法可以使用静态变量
  otherStat(); 
  //正确,可以调用静态方法
  ia = 20;  //错误,不能使用实例变量
  insMethod(); //错误,不能调用实例方法
}
static void otherStat(){} 
//下面定义一个实例方法 
void insMethod(){
  int i = 0;  //正确,可以有自己的局部变量
  sa = 15;  //正确,可以使用静态变量
  ia = 30;  //正确,可以使用实例变量
  statMethod();  //正确,可以调用静态方法
}
}
ログイン後にコピー

この例は、実際には 1 つの文に要約できます: 静的メソッドは静的メンバーにのみアクセスでき、インスタンス メソッドは静的メンバーとインスタンス メンバーにアクセスできます。静的メソッドがインスタンスのメンバー変数にアクセスできない理由は、インスタンスのメンバー変数は特定のオブジェクトに属しており、静的メソッドの実行時にそのオブジェクトが存在するとは限らないためです。

同様に、インスタンス メソッドはインスタンス メンバー変数にアクセスできるため、静的メソッドがインスタンス メソッドの呼び出しを許可されている場合、インスタンス メンバー変数の使用が間接的に許可されるため、インスタンス メソッドを呼び出すことはできません。同じ理由で、キーワード this は静的メソッドでは使用できません。


main() メソッドは典型的な静的メソッドであり、一般的な静的メソッドの規則にも従うため、オブジェクトを作成する前にシステムから呼び出すことができます。

推奨チュートリアル:

Java チュートリアル

以上がJavaの静的メソッドとインスタンスメソッドの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート