静的キーワードは、C と Java でほぼ同じ目的で使用されますが、若干の違いがまだあります。次の記事では、C と Java の static キーワードの類似点と相違点について説明します。お役に立てば幸いです。
C と Java の static キーワードの類似点
1. 静的データメンバー:
C および Java では、静的データ メンバーはクラス メンバーであり、すべてのオブジェクト間で共有されます。たとえば、次の Java プログラムでは、静的変数 count を使用して、作成されたオブジェクトの数をカウントします。class Test { static int count = 0; Test() { count++; } public static void main(String arr[]) { Test t1 = new Test(); Test t2 = new Test(); System.out.println("共创建了" + count + " 个对象"); } }出力:
共创建了2个对象2. 静的メンバー メソッド C および Java で静的として宣言されたメソッドはクラス メンバーであり、次の制限があります。 1)、他の静的メソッドのみを呼び出すことができます。たとえば、次のプログラムの fun() は非静的ですが、静的な main() で呼び出されるため、コンパイルは失敗します。
class Main { public static void main(String args[]) { System.out.println(fun()); } int fun() { return 20; } }2).静的データのみにアクセスする必要があります。 3)、this または super にはアクセスできません。たとえば、次のプログラムはコンパイル時に失敗します。
class Base { static int x = 0; } class Derived extends Base { public static void fun() { System.out.println(super.x); // 编译器错误:不能从静态上下文引用非静态变量 } }注: C と Java はどちらも、オブジェクトを作成せずに静的データ メンバーと静的メソッドにアクセスできます。クラス名を使用してアクセスできます。たとえば、次のプログラムでは、オブジェクトなしで静的データ メンバー数と静的メソッド fun() にアクセスできます。
class Test { static int count = 0; public static void fun() { System.out.println("调用了静态方法fun()"); } } class Main { public static void main(String arr[]) { System.out.println("Test.count = " + Test.count); Test.fun(); } }#C と Java の static キーワードの違い
##1. static ブロック # C とは異なり、Java はクラスの静的初期化に使用できる静的ブロック (静的句とも呼ばれる) と呼ばれる特別なブロックをサポートしており、静的ブロック内のこのコードは 1 回だけ実行されます。
2. 静的ローカル変数C とは異なり、Java は静的ローカル変数をサポートしません。たとえば、次の Java プログラムはコンパイル時に失敗します。
class Test { public static void main(String args[]) { System.out.println(fun()); } static int fun() { static int x= 10; //编译器错误:不允许静态局部变量 return x--; } }
関連ビデオ チュートリアルの推奨事項: 「
Java チュートリアル」、「C チュートリアル 」 上記がこの記事の全内容です。皆さんの勉強に役立つことを願っています。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !
以上がC++ と Java の static キーワードの簡単な比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。