static成员的特点

1.static修饰的成员变量

1,被修饰的static成员只能被static方法调用。
2,被修饰的static成员建议用类名调用。
3,一般保存在数据区,可以被共享。
4,如果一处static成员变量被修改,每一处都要进行修改,因为是共享的。
5,在类文件加载的时候已经加载了。

2.static修饰的成员方法

1.建议用类名调用。
2.能够使用static成员变量。
3.不能使用this关键字,因为this代表的是调用这个函数的对象的引用,而静态方法是属于类的,不属于对象,静态方法成功加载后,对象还不一定存在。
4.没有对象。

3.static静态代码块

1.随着程序的运行而加载,只能加载一次。
2.可以调用其他的static成员。
3.主要作用是用来初始化程序的。

大家有什么需要补充的可以在评论区补充!!!

### C++与Java中`static`成员的特性及作用 在C++和Java中,`static`关键字用于定义属于类本身的成员(变量或方法),而非类的实例。这种机制为程序设计提供了更高的灵活性与共享性。 #### C++中的`static`成员 - **静态变量**:静态变量是类的所有对象共享的变量。它在类的所有对象中只有一份副本,无论创建了多少个对象,静态变量始终存在于内存中。静态变量必须在类外进行一次定义,通常是在源文件中初始化[^3]。 ```cpp class MyClass { private: static int count; // 声明静态变量 public: MyClass() { count++; } static int getCount() { return count; } // 静态方法 }; int MyClass::count = 0; // 类外定义静态变量 ``` - **静态方法**:静态方法只能访问静态成员变量和其他静态方法。它们可以通过类名直接调用,而无需创建类的对象。静态方法不能使用`this`指针,因为它们不与任何特定的对象关联[^3]。 ```cpp int main() { std::cout << MyClass::getCount() << std::endl; // 直接通过类名调用静态方法 MyClass obj1, obj2; std::cout << MyClass::getCount() << std::endl; // 输出2 return 0; } ``` - **作用域控制**:在C++中,`static`还可以用于限制全局变量和函数的作用域到当前文件内,防止其他文件访问这些变量或函数[^4]。 #### Java中的`static`成员 - **静态变量**:Java中的静态变量也称为类变量,它们不属于类的任何一个具体实例,而是被所有实例共享。静态变量随着类的加载而加载,随类的卸载而回收[^2]。 ```java public class MyClass { public static int count = 0; // 静态变量 public MyClass() { count++; } } ``` - **静态方法**:静态方法可以直接访问静态变量和其他静态方法,但不能直接访问非静态变量或调用非静态方法。同样,静态方法可以通过类名直接调用,不需要实例化对象[^2]。 ```java public class TestMyClass { public static void main(String[] args) { System.out.println(MyClass.count); // 输出0 new MyClass(); new MyClass(); System.out.println(MyClass.count); // 输出2 } } ``` - **静态代码块**:Java支持静态代码块,用于执行类级别的初始化操作。静态代码块在类首次加载时执行,并且只执行一次[^2]。 ```java public class MyClass { static { System.out.println("Static block executed."); } } ``` - **main方法**:Java应用程序的入口点`main`方法必须声明为`static`,这样JVM可以在不创建类实例的情况下调用它。 ### 总结 尽管C++和Java都使用了`static`关键字来表示类级成员,但在细节上有所不同。C++中的`static`更多地关注于作用域的限制和资源共享,而Java中的`static`则侧重于提供一种无需实例化即可访问类成员的方式。两者都允许通过类名直接访问静态成员,这提高了代码的可读性和效率。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值