付公司网站费用怎么做分录,宣传品牌网站建设,wordpress多导航栏,下载百度2024最新版静态#xff1a;
使用 static 关键字声明的成分属于类本身#xff0c;而不是类的任何特定对象的实例。这意味着你可以在创建类的任何对象之前访问它们。
静态变量#xff1a; 静态变量#xff08;也称为类变量#xff09;是被类的所有实例共享的变量。无论你创建多少对象…静态
使用 static 关键字声明的成分属于类本身而不是类的任何特定对象的实例。这意味着你可以在创建类的任何对象之前访问它们。
静态变量 静态变量也称为类变量是被类的所有实例共享的变量。无论你创建多少对象静态变量只有一份拷贝。静态变量通常用于定义类级别的常量或者跟踪类的所有实例共享的信息。在 Java 中静态变量属于类Class而不是某个特定的对象实例。所有对象共享同一个静态变量所以如果存在对象改变静态变量静态变量会变成最新改变的值。
public class Student {static int studentCount 0; // 静态变量用于计数// 构造方法public Student() {studentCount; // 每次创建对象时增加计数}// 静态方法获取当前学生计数public static int getStudentCount() {return studentCount;}public static void main(String[] args) {Student s1 new Student();Student s2 new Student();System.out.println(Total students: Student.getStudentCount()); // 输出学生总数}
}在这个例子中studentCount 是一个静态变量用于跟踪创建的 Student 对象的数量。无论创建多少个 Student 对象都只有一个 studentCount 变量。
静态变量的应用场景
计数器 如上面的例子所示用于统计对象的数量或函数被调用的次数。配置参数 存储全局配置或常量供整个程序共享使用。单例模式 在设计模式中使用静态变量确保一个类只有一个实例。 静态方法
静态方法是属于类的方法而不是类的实例。这意味着你可以不创建类的实例而调用静态方法。静态方法只能直接访问类的静态成员变量和方法不能直接访问非静态成员。
样例一
public class Calculator {public static int add(int a, int b) {return a b; // 静态方法可以通过类名直接调用}
}在这个例子中add 是一个静态方法可以使用 Calculator.add(5, 3) 来调用而不需要创建 Calculator 类的对象。
package Static;
//工具类不需要创建对象而是运用其中的方法
public class ArrayUtil {//私有化构造方法目的是为了不让外界创建他的对象private ArrayUtil() {}//需要定义为静态的方便调用// 静态方法中没有this关键字// 静态里面不能调用非静态的非静态可以访问所有public static String PrintArray(int[] arr) {//System.out.println(showArray(arr));无法访问StringBuffer sb new StringBuffer();sb.append([);for (int i 0; i arr.length; i) {if (i arr.length - 1) sb.append(arr[i]);else sb.append(arr[i] ,);}sb.append(]);return sb.toString();}public int showArray(int[] arr) {return arr.length;}
}主方法当中的调用
package Static;public class TestArray {public static void main(String[] args) {//测试工具类中的方法是否正确int arr[] {1,2,3,4,5};String str ArrayUtil.PrintArray(arr);System.out.println(str);}
}样例二
public class MathUtil {public static double PI 3.141592653589793;public static double add(double a, double b) {return a b;}public static double calculateCircleArea(double radius) {return PI * radius * radius;}
}public class Main {public static void main(String[] args) {double sum MathUtil.add(5.0, 3.0);double area MathUtil.calculateCircleArea(2.5);System.out.println(Sum: sum); // 输出: Sum: 8.0System.out.println(Area: area); // 输出: Area: 19.634954084936208}
}解释 MathUtil 类中的 add 和 calculateCircleArea 方法都是静态方法可以直接通过类名调用而无需创建 MathUtil 的实例。
静态方法的应用场景
工具类方法 如数学运算、字符串处理等不依赖于对象状态的功能。例如Java 中的 Math 类中的 sqrt 方法。工厂方法 用于创建类的实例而无需直接使用构造函数。例如Java 中的 Integer.valueOf 方法。单例模式 静态方法常用于获取单例对象的实例。配置和初始化 用于初始化类级别的配置或资源。
注意
尽量在创建对象之前来调用静态方法或者静态变量。
原因 静态成员的独立性静态方法和变量不依赖于对象实例可以在无需创建对象的情况下直接访问和调用。 资源与性能优化通过避免不必要的对象创建静态成员的使用有助于节省内存和提升性能尤其是在高频调用的场景中。 代码简洁与一致性静态成员通过类名直接访问使代码更加简洁并且确保了全局数据的一致性。