package Test;
/*静态的特点:
*1.随着类的加载而加载
*2.优先于对象存在的
*3.被类的所有对象共享,如果某个成员变量是被所有对象共享的,则可以将其设置成静态变量,共性用静态,特性用非静态
*4.静态成员可以用类名进行调用
*5.静态方法中是没有this关键字的(因为静态是随着类的加载而加载的,this是随着对象的创建而存在的,静态比对象先存在)
*6.静态只能访问静态,不能访问非静态,因为非静态必须创建对象之后才能使用
*
*静态变量和成员变量的区别
*1.所属不同:静态变量属于类,所以也称为类变量;成员变量属于对象,所以也称为实例变量
*2.内存位置不同:静态变量存储于方法区的静态区,成员变量存储于堆内存
*3.内存出现的时间不同:静态变量随着类的加载而加载,随着类的消失而消失
*4.调用不同:静态变量可以通过类名调用,也可以通过对象调用,成员变量只能通过对象调用
*/
public class Static {
public static void main(String[] args) {
PersonOne p=new PersonOne();
p.name="kobe";
p.country="USA";
p.speak();//kobe,USA
PersonOne p1=new PersonOne();
p1.name="kevin";
p1.speak();//kevin,USA,country已经被之前赋值过了
}
}
class PersonOne{
String name;
static String country;//静态后代表是公共部分
public void speak() {
System.out.println(name+","+country);
}
}