20-Java-面向对象-static
文章目录
- static
- 静态变量
- 示例
- 静态方法
- 示例
- static的注意事项
static
- static:表示静态,是Java中的一个修饰符,可以修饰成员方法,成员变量
静态变量
- 被static修饰的成员变量,叫做静态变量
- 特点:
- 被该类所有对象共享
- 不属于对象,属于类。
- 随着类的加载而加载,优先于对象存在
- 调用方式:
- 类名调用(推荐)
- 对象名调用
示例
/*** @Author: 大海* @Date: 2025-10-26*/public class study_23_static_静态变量 {// 属性 姓名 年龄 性别private String name;private int age;private String gender;public static String teacher; // 静态属性 老师// 构造方法public study_23_static_静态变量() {}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}// 行为public void study() {System.out.println(name + "正在学习 Java 编程");}public void show() {System.out.println(name + gender + ",今年" + age + "岁。" + "老师是" + teacher);}public static void main(String[] args) {// 类名调用静态属性study_23_static_静态变量.teacher = "高老师";System.out.println(study_23_static_静态变量.teacher);// 创建第一个学生对象study_23_static_静态变量 student1 = new study_23_static_静态变量();student1.setName("大海");student1.setAge(31);student1.setGender("男");student1.study();student1.show();// 创建第二个学生对象study_23_static_静态变量 student2 = new study_23_static_静态变量();student2.setName("小白");student2.setAge(28);student2.setGender("女");student2.study();student2.show();}
}
静态方法
-
被static修饰的成员方法,叫做静态方法
-
特点:
- 多用在测试类和工具类中
- Javabean类中很少会用
-
调用方式:
- 类名调用(推荐)
- 对象名调用
示例
package common;/*** @Author: 大海* @Date: 2025-10-26*/// 工具类
public class ArrayUtil {// 为了不让外界创建实例,将构造方法设为私有private ArrayUtil() {}// 数组中元素平均值public static double getAverage(double[] arr) {if (arr == null || arr.length == 0) {return 0;}int sum = 0;for (double j : arr) {sum += j;}return (double) sum / arr.length;}}package common;/*** @Author: 大海* @Date: 2025-10-26*/// 测试类
public class TestDemo {public static void main(String[] args) {double[] array = {1.2, 3.4, 5.6, 7.8, 9.0};double average = ArrayUtil.getAverage(array);System.out.println(average);}
}
static的注意事项
- 静态方法只能访问静态变量和静态方法
- 非静态方法可以访问静态变量或者静态方法,也可以访问非静态的成员变量和非静态的成员方法
- 静态方法中是没有this关键字
