静态

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);
  }
}

posted @ 2018-04-28 09:18  简简单单zjl  阅读(142)  评论(0编辑  收藏  举报