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);// 小刘 } }