C ++ vs Java中的static关键字

在C ++或Java中,我们可以获得static关键字。它们基本相同,但是这两种语言之间存在一些基本差异。让我们看看C ++中的static和Java中的static之间的区别。

静态数据成员在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);

   }

}

//这是另一个名为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中,我们可以找到静态块。这也称为静态子句。这些用于类的静态初始化。写入静态块内部的代码将仅执行一次。这在C ++中不存在

在C ++中,我们可以声明静态局部变量,但是在Java中,不支持静态局部变量。

以上是 C ++ vs Java中的static关键字 的全部内容, 来源链接: utcz.com/z/331503.html

回到顶部