17_static关键字

1.static关键字 可以用来修饰成员变量和成员方法,不能用来修饰类
      被修饰的成员是属于类的,而不单单是属于某一个对象的,将来调用这些被static修饰的成员信息,
      可以不再通过对象来调用。

2.当static修饰成员变量时,该变量称为类变量。该类的每个对象都共享同一个类变量的值。
    任何对象都可以更改该类变量的值,但也可以在不创建对象的情况下对类变量进行操作。
  定义格式:
    static 数据类型 变量名; 如 static String name = "小刘";

3.当static修饰成员方法时,该方法被称为类方法。也习惯称为静态方法。
  定义格式:
    修饰符 static 返回值类型 方法名(参数列表) {
      //方法体内容
        .....
            }

类方法调用时细节:
  1.静态方法可以直接访问类变量和类方法
  2.静态方法不能直接访问普通的成员方法和成员变量。反之,成员方法可以直接访问类变量和类方法。
  3.静态方法中,不能使用this关键字和super关键字。
  4.被static修饰的方法,建议通过类名直接调用,也可以通过对象名来调用,但是程序出现警告信息。

public class StaticDemo extends Employee{

    static String name = "小刘";
    
    public void eat() {
        System.out.println("我在美美的吃大餐。。。");
    }
    public static void main(String[] args) {
        //super.work();
        //this.eat();
        StaticDemo  s1 = new StaticDemo();
        s1.name = "小王";
        System.out.println("s1的name值为:"+s1.name);// 小王
        StaticDemo  s2 = new StaticDemo();
        System.out.println("s2的name值为:"+s2.name);// 小刘
        StaticDemo  s3 = new StaticDemo();
        System.out.println("s3的name值为:"+s3.name);// 小刘
        StaticDemo  s4 = new StaticDemo();
        System.out.println("s4的name值为:"+s4.name);// 小刘      
    }
}
原文地址:https://www.cnblogs.com/rxqq/p/13921949.html