Java学习笔记(static静态变量)

static

static表示静态,是Java中的一个修饰符,可以修饰成员方法,成员变量

被static修饰的成员变量,叫做静态变量,被static修饰的成员方法,叫做静态方法

静态变量的特点:

  • 被该类所有对象共享
  • 不属于对象,属于类
  • 随着类的加载而加载,优先于对象存在

调用方式:

  • 类名调用(推荐)
  • 对象名调用 

静态方法的特点:

  • 多用在测试类和工具类
  • Javabean类中很少会用

调用方式:

  • 类名调用(推荐)
  • 对象名调用

工具类:帮助我们做一些事情的,但是不描述任何事物的类

 要求:

  1. 类名见名知意
  2. 私有化构造方法
  3. 方法定义为静态

工具类练习:

Java学习笔记(static静态变量)_第1张图片

package com.itheimaa01staticdemo1;

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++) {
            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+=arr[i];
        }
        return sum/arr.length;
    }
}

package com.itheimaa01staticdemo1;

public class TestDemo {
    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,3.7,4.9,5.8,6.6};
        double av = ArrayUtil.getAverage(arr2);
        System.out.println(av);
    }
}

Java学习笔记(static静态变量)_第2张图片

前面还有Javabean没写

package com.itheima;

import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        //创建一个集合用来存储学生对象
        ArrayList list =new ArrayList<>();
        //创建三个学生对象
        Student stu1=new Student("zhangsan",18,"男");
        Student stu2=new Student("lisi",19,"女");
        Student stu3=new Student("wangwu",25,"男");
        //将学生对象添加到集合当中
        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        //调用工具类中的方法
        int maxage=StudentUtil.getMaxAgeStudent(list);
        System.out.println(maxage);
    }

}

 

package com.itheima;

import java.util.ArrayList;

public class StudentUtil {
    private StudentUtil(){};
    //静态方法
    public static int getMaxAgeStudent(ArrayListlist)
    {
        //定义一个参照物
        int max=list.get(0).getAge();
        //循环遍历集合
        for (int i = 1; i < list.size(); i++) {
            if(list.get(i).getAge() >max){
                max=list.get(i).getAge();
            }
        }
        return max;
    }
}

 static 的注意事项

  • 静态方法只能访问静态变量和静态方法
  • 非静态方法可以访问静态变量或者静态方法,也可以访问非静态的成员变量和非静态的成员方法
  • 静态方法中没有this关键字 

你可能感兴趣的:(java,学习,笔记)