• 目录

static关键字

阅读量: 1062 编辑

记住static关键字的用法:修饰属性和方法,表示类的(非实例的),可以通过类名.直接调用;

一、static关键字说明

  • static 关键字修饰的属性或者方法,指的是静态属性或静态方法,如:private static int age;

  • 使用 static 修饰符修饰的属性和方法称为静态变量,也可以称为类的变量,不是实例的变量,也就是说不能使用 this. 关键字;

  • static 的属性是类的属性,static 方法是类的方法,不需要实例化即可使用,也就是说,直接用 类.属性类.方法 即可使用;

  • static 是从属于类,不能使用 this.;

  • static 方法可以调用其他的 static 方法,但是不可以调用 非static 方法,因为 非static 的是需要 this 的,而 static 是不能使用 this;

  • 非static 方法可以调用 static方法;

二、编程实战

代码的详细解读,可以参考视频教程

/**
 * User: 祁大聪
 */
public class Person {

    private String name;    //非静态变量,需要使用 this
    private static int age; //静态变量,不需要使用 this

    //非静态方法,里面会有 this
    public void sing(){
        name = "sanNi";
        age = 100;
    }

    //静态方法,里面没有 this,所以不能在里面调用 非静态的属性或方法
    public static void dance(){
    
//        name = "sanNi";   //这里没有默认的 this. ,所以会报错
        System.out.println("dance");
    }

    /**
     * 主方法就是 static 的,
     * 所以我们调用 非static方法或属性的时候,必须 new 实例出来 才能调用
     */
    public static void main(String[] args) {

		// 静态的,所以可以直接使用,不需要实例
        dance();   		
        
        // 静态的
        System.out.println(age);   

        Person p1 = new Person();
        
        // 非静态变量,必须通过实例才可以调用
        p.name = "sanNi";  		
        
        // 实例也可以使用静态的属性
        p1.age = 100;         	 

        Person p2 = new Person();
        p2.age = 101;
        System.out.println("p1.age = " + p1.age);
    }

}

一句话总结就是:类的(static)不可以调用实例的(this),但是实例(IS-A)的可以调用类的;

  • 目录