C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++とJavaの静的キーワード


C ++またはJavaでは、staticキーワードを取得できます。それらはほとんど同じですが、これら2つの言語の間にはいくつかの基本的な違いがあります。 C++の静的とJavaの静的の違いを見てみましょう。

静的データメンバーは、JavaとC++で基本的に同じです。静的データメンバーはクラスのプロパティであり、すべてのオブジェクトで共有されます。

public class Test {
   static int ob_count = 0;
   Test() {
      ob_count++;
   }
   public static void main(String[] args) {
      Test object1 = new Test();
      Test object2 = new Test();
      System.out.println("The number of created objects: " + ob_count);
   }
}

出力

The number of created objects: 2

#include<iostream>
using namespace std;
class Test {
   public:
      static int ob_count;
      Test() {
         ob_count++;
      }
};
int Test::ob_count = 0;
int main() {
   Test object1, object2;
   cout << "The number of created objects: " << Test::ob_count;
}

出力

The number of created objects: 2

静的メンバー関数- C ++およびJavaでは、静的メンバー関数を作成できます。これらもそのクラスのメンバーです。いくつかの制限もあります。

  • 静的メソッドは、他のいくつかの静的メソッドのみを呼び出すことができます。
  • 静的メンバー変数にのみアクセスできます
  • 「this」または「super」にアクセスできません(Javaの場合のみ)

C ++およびJavaでは、いくつかのオブジェクトを作成せずに静的メンバーにアクセスできます

//This is present in the different file named MyClass.java
public class MyClass {
   static int x = 10;
   public static void myFunction() {
      System.out.println("The static data from static member: " + x);
   }
}
//This is present the different file named Test.Java
public class Test {
   public static void main(String[] args) {
      MyClass.myFunction();
   }
}

出力

The static data from static member: 10

#include<iostream>
using namespace std;
class MyClass {
   public:
      static int x;
      static void myFunction(){
         cout << "The static data from static member: " << x;
      }
};
int MyClass::x = 10;
int main() {
   MyClass::myFunction();
}

出力

The static data from static member: 10

静的ブロック:Javaでは、静的ブロックを見つけることができます。これは静的句とも呼ばれます。これらは、クラスの静的初期化に使用されます。静的ブロック内に記述されたコードは、1回だけ実行されます。これはC++にはありません

C ++では静的ローカル変数を宣言できますが、Javaでは静的ローカル変数はサポートされていません。


  1. thisキーワードを使用して、Javaの静的メンバーを参照できますか?

    いいえ、「これ 「キーワードを使用してクラスの静的メンバーを参照することはできません。これは、「 this ”キーワードは現在のオブジェクトを指します クラスと静的メンバーのオブジェクトを呼び出す必要はありません。クラスの静的メンバーには、オブジェクトを作成せずに直接アクセスできます。 Javaのt。 例 public class StaticTest {    static int a = 50;    static int b;    static void show() {       Syste

  2. インターフェイスのJava8静的メソッド

    インターフェースにはJava8以降の静的ヘルパーメソッドを含めることもできます。 public interface vehicle {    default void print() {       System.out.println("I am a vehicle!");    }    static void blowHorn() {       System.out.println("Blowing horn!!!"); &nb