Java面向对象之关键字static 入门实例
Posted 竹小冉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面向对象之关键字static 入门实例相关的知识,希望对你有一定的参考价值。
一、基础概念
静态关键字 static 是成员修饰符,直接用于修饰成员。
(一)特点:
1.被静态修饰的成果,可以直接被类名所调用。
2.静态成员优先于对象存在。
3.静态成员随着类的加载而加载。随着类的消失而消失。静态成员的生命周期很长。
(二)注意事项:
1.静态方法只能访问静态成员,不能访问非静态成员。
2.静态方法中不能出现this或者super关键字。
3.主函数是静态的。
(三)什么时候用:
1.成员变量:如果数据在所有对象中都是一样的。直接用静态修饰。
2.成员函数:如果函数没有访问过对象中的属性数据,那么该函数就是静态的。
(四)成员变量和静态变量的区别:
1.名称:成员变量也叫实例变量。静态变量也叫类变量。
2.内存存储:成员变量存储到堆内存的对象中。静态变量存储到方法区的静态区中。
3.生命周期:成员变量随着对象的出现而出现,随着对象的消失而消失。静态变量随着类的加载而加载。随着类的消失而消失。
(五)静态代码块:
1.随着类的加载而执行,而且只执行一次。
2.给类进行初始化。
3.类不需要创建对象,但是需要初始化。这是将部分代码存储到静态代码块中。
二、实例代码
1 class Person 2 { 3 private String name; 4 private int age; 5 static String country = "CN";//定义静态变量country 6 7 Person(String name,int age) 8 { 9 this.name = name; 10 this.age = age; 11 } 12 public void show() 13 { 14 System.out.println("name="+name+",age"+age); 15 } 16 //既然sleep函数没有访问到对象中的属性,可以用static修饰该方法。(节约内存的使用) 17 public static void sleep() 18 { 19 System.out.println("sleep......"); 20 21 } 22 23 static//静态代码块 24 { 25 System.out.println("static......"); 26 } 27 28 static void show1() 29 { 30 System.out.println(country);//直接访问静态变量 31 } 32 static void show2() 33 { 34 System.out.println(Person.country);//通过类名的方式访问静态变量 35 } 36 37 } 38 39 class StaticDemo 40 { 41 public static void main(String[] args) 42 { 43 Person p = new Person("xiaoming",20); 44 Person.sleep();//通过类名的方式调用静态sleep函数 45 Person.sleep(); 46 System.out.println(Person.country);//通过类名访问,输出静态变量country的值 47 Person.show1(); 48 Person.show2(); 49 } 50 }
三、代码运行
以上是关于Java面向对象之关键字static 入门实例的主要内容,如果未能解决你的问题,请参考以下文章