java 面向对象进阶 static

发布时间 2023-11-14 21:37:23作者: _Elaina


1. 工具类
package net.elaina.a02staticdemo2;

public class ArrayUtil {
    //私有化构造方法
    //目的:为了不让外界创建他的对象
    private ArrayUtil() {
    }

    //需要定义为静态的,方便调用
    public static String printArr(int[] arr) {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            //i 索引 arr[i]元素
            if (i == arr.length - 1) {
                sb.append(arr[i]);
            } else {
                sb.append(arr[i]).append(", ");
            }
        }
        sb.append("]");
        return sb.toString();
    }

    public static double getAverage(double[] arr) {
        double sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum = sum + arr[i];
        }
        return sum / arr.length;
    }

}

  1. 使用工具类
package net.elaina.a02staticdemo2;

public class TesrDemo {
    public static void main(String[] args) {
        //测试工具类中的两个方法是否正确
        int[] arr1 = {1,2,3,4,5};
        String str = ArrayUtil.printArr(arr1);
        System.out.println(str);

        double[] arr2 = {1.5,2.7,3.5,4.8,5.6};
        double avg = ArrayUtil.getAverage(arr2);
        System.out.println(avg);
    }
}


static的注意事项

    静态方法只能访问静态变量和静态方法

    非静态方法可以访问静态变量或者静态方法,也可以访问非静态的成员变量和非静态的成员方法

    静态方法中是没有this关键字