记住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)的可以调用类的;