当前位置: 首页> 财经> 金融 > 提供网站制作_校园网网络规划与设计方案_投百度做广告效果怎么样_谷歌官网下载

提供网站制作_校园网网络规划与设计方案_投百度做广告效果怎么样_谷歌官网下载

时间:2025/8/27 14:19:01来源:https://blog.csdn.net/2401_87463146/article/details/146536943 浏览次数:2次
提供网站制作_校园网网络规划与设计方案_投百度做广告效果怎么样_谷歌官网下载

目录

  • 1、static
  • 2、static 修饰成员变量
    • 2.1、静态成员变量初始化
      • 2.1.1、就地初始化
      • 2.1.2、静态代码块初始化
  • 3、static 修饰成员方法
  • 4、静态成员 VS 实例成员

1、static

Student 类中有 name、gender、age 和 score 字段,用来描述不同学生,那么是否可以在 Student 类中加入 classRoom 字段,答案是不能。
因为在类中定义的实例变量,每个对象都会包含一份,用于描述具体的对象,但是 classRoom 这个属性每个学生保存一份是不合理的, classRoom 也不能描述具体的学生,而是需要所有学生都共享。此时需要用到 static 修饰。如下述代码所示。

public class Student {private String name;private String gender;private int age;private double score;private static String classRoom;
}

在 Java 中,被 static 修饰的成员称为静态成员,也可以称为类成员,其不属于某个具体的对象,而是所有对象所共享的。注意 static 修饰成员变量、成员方法、类。

2、static 修饰成员变量

static 修饰的成员变量成为静态成员变量,静态成员变量的特性如下:

  • 静态成员变量不属于某个具体的对象,而是类的属性,是所有对象共享的。
  • 静态成员变量存储在方法区中,并不存储在某个对象的空间中。
  • 静态成员变量是类的属性,因此只会在 JVM 加载类时才开辟空间并进行初始化。
  • 静态成员变量生命周期伴随类的一生,随着类的加载而创建,随着类的卸载而销毁。
  • 静态成员变量可以通过对象访问,也可以通过类名访问,更推荐使用类名访问。
	Student s1 = new Student();// 通过对象.静态成员名访问  不推荐System.out.println(s1.classRoom);// 通过类名.静态成员名访问  更推荐System.out.println(Student.classRoom);

2.1、静态成员变量初始化

静态成员变量一般不会放在构造方法中初始化,构造方法中初始化的是与对象有关的实例属性。
静态成员变量的初始化分为两种:就地初始化和静态代码块初始化。

2.1.1、就地初始化

就地初始化指的是在定义时直接给出初始值。

// 就地初始化
private static String classRoom = "room304";

2.1.2、静态代码块初始化

使用 static 定义的代码块成为静态代码块,一般用于初始化静态成员变量。

// 静态代码块 
static {classRoom = "room306";
}
  • 无论创建多少个对象,静态代码块只执行一次。
  • 如果一个类中有多个静态代码块,则在编译代码时,按照定义的先后次序依次执行。

3、static 修饰成员方法

一般来说,类中的数据成员设置为 private,而类中的方法设置为 public,那么当静态成员变量设置为 private 时,其他类如何访问该静态成员变量呢,答案是使用静态成员方法。
被 static 修饰的方法称为静态成员方法,是类的方法,不是某个对象特有的,静态成员变量一般是通过静态方法访问的。

public static String getClassRoom(){return classRoom;
}
  • 静态方法不属于某个具体的对象,是类方法。
  • 静态方法不能在静态方法中访问任何非静态成员变量,也不能调用任何非静态方法,这是因为静态方法在调用时无法传递 this 引用。
  • 静态方法无法被重写。
  • 静态成员变量可以通过对象访问,也可以通过类名访问,更推荐使用类名访问。
	Student s1 = new Student();// 通过对象.静态成员名访问  不推荐System.out.println(s1.getClassRoom());// 通过类名.静态成员名访问  更推荐System.out.println(Student.getClassRoom());

4、静态成员 VS 实例成员

在这里插入图片描述
在这里插入图片描述

关键字:提供网站制作_校园网网络规划与设计方案_投百度做广告效果怎么样_谷歌官网下载

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: