C++和Java中static关键字的雷同点
1、静态数据成员:
在C++和Java中静态数据成员都是类成员,并在一切对象之间同享。比方,鄙人面的Java顺序中,静态变量计数用于计算所建立的对象的数目。
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中声明为static的要领是类成员,并具有以下限定:
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、静态块
与C ++差别,Java支撑一个特别的块,称为静态块(也称为静态子句),可用于类的静态初始化;静态块内的此代码仅实行一次。
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++教程》
以上就是本篇文章的全部内容,愿望能对人人的进修有所协助。更多精彩内容人人能够关注ki4网相干教程栏目!!!
以上就是C++和Java中static关键字的简朴比较的细致内容,更多请关注ki4网别的相干文章!