创建对象前加static
时间: 2023-08-13 07:18:10 浏览: 39
在Java中,使用关键字`static`可以定义静态成员变量、静态方法和静态代码块。如果在创建对象前加上`static`关键字,通常是指静态方法或静态代码块。
静态方法是指在类级别上可以直接调用的方法,不需要通过对象来调用。静态方法中不能访问非静态成员变量,因为非静态成员变量需要通过对象来访问。静态方法可以访问静态成员变量和其他静态方法。
静态代码块是指在类被加载时执行的一段代码块,可以用来初始化静态成员变量。静态代码块只会执行一次,即使创建多个对象也只会执行一次。
因此,在创建对象前加上`static`关键字是无意义的,因为创建对象是实例化对象,只有非静态成员才能被实例化。
相关问题
static创建的对象为null
这种说法是不正确的。在Java中,使用static关键字创建的变量或方法是属于类的,而不是属于对象的。也就是说,当我们使用static关键字创建变量或方法时,它们不会随着对象的创建而被初始化,而是在类被加载时就被初始化,并且它们的生命周期与类的生命周期相同。
因此,使用static关键字创建的变量是不可能为null的,因为它们在类加载时就已经被初始化了。如果我们没有给这些变量赋初始值,它们会被默认初始化为0、false或null(如果是引用类型)。但是,这并不代表它们的值是null。如果我们想让一个静态变量的值为null,我们需要显式地将它赋值为null。
成员方法前加static与不加的区别
成员方法前加static与不加的区别是:
1. 静态方法可以直接通过类名调用,而非静态方法需要先创建类的对象才能调用。
2. 非静态方法可以访问类的实例变量,而静态方法不能。
3. 静态方法是属于整个类的,而非静态方法是属于类的每个实例的。
4. 静态方法在程序启动时就已经存在了,而非静态方法需要在类的实例化后才能存在。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)