static关键字

static的作用

用于修饰类成员:

                                成员变量:类变量

                                成员方法:类方法

调用方式: 可以通过类名.成员变量名(成员方法名)直接调用

1、static修饰成员变量

可以被本类所有对象共享

eg:定义研发部成员类,让每位成员进行自我介绍

package com.wang.duixiang;

public class StaticDemo01 {
    public static void main(String[] args) {
       Developer developer=new Developer();
       developer.setName("小黑");
       developer.setWork("写代码");
       developer.selfIntroduction();
       Developer developer1=new Developer();
       developer1.setWork("鼓励师");
       developer1.setName("远远");
       developer1.selfIntroduction();
       /*//修改有static修饰的变量
        Developer.developmentName="开发部";
        developer.selfIntroduction();
        developer1.selfIntroduction();
        不可随意修改,所以有static修饰的变量前面加final
        */
    }
}
class Developer{
    public final static String DEPARTMENT_NAME="研发部";
    private String name;
    private String work;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setWork(String work) {
        this.work = work;
    }

    public String getWork() {
        return work;
    }
    public void selfIntroduction(){
        System.out.println("我是+"+DEPARTMENT_NAME"部门的"+getName()+",我的工作是"+getWork());
    }
}
2、static修饰成员方法

静态方法:静态方法中没有对象this,所以不能访问非静态成员

静态方法的使用场景:只需要访问静态成员

                                      不需要访问对象状态,所需参数都由参数列表显示提供。即当调用一个方法的时候,想通过                     类名.的形式调用,而不是通过对象名.的形式调用。就可以使用静态方法

eg:定义静态方法,反转数组中的元素

package com.wang.duixiang;
//定义静态方法,反转数组元素
public class StaticDemo02 {
    public static void main(String[] args) {
        //静态方法通过类名直接调用
     ReverseArray.show();
        System.out.println("=======================================");
        int[] array={1,6,4,5,2,3};
        for (int i=0;i<array.length;i++){
            System.out.print(array[i]+"  ");
        }
        System.out.println();
        ReverseArray.reverse(array);
        for (int i=0;i<array.length;i++){
            System.out.print(array[i]+"  ");
        }
    }
}
class ReverseArray{
    int num1=10;
    static int num2=20;
    public static void show(){
        //System.out.println(num1);静态方法不能访问非静态成员
        System.out.println(num2);
    }
    public static void reverse(int[] array){
        //交换元素  反转其实就是数组中array[i]和array[array.length-1-i]进行交换
        //明确交换次数
        for(int i=0;i<array.length/2;i++){
            int temp=array[i];
            array[i]=array[array.length-1-i];
            array[array.length-1-i]=temp;
        }
    }
}
原文地址:https://www.cnblogs.com/wyj96/p/11763242.html