java中的static关键字

来源:互联网 发布:淘宝客服昵称大全男 编辑:程序博客网 时间:2024/06/05 02:19

static关键字

static:静态的

static修饰成员变量的特点:

1.static 修饰的成员变量是该类所有对象的共享

2.static 修饰的成员变量随着类的加载就在静态区中开辟内存了,所以优先非静态成员变量开辟内存

3.static 修饰的成员变量可以直接使用类名访问

看下面的例子:

class Student//定义了一个student类{String name;static String country="CN";//将属性country修饰为静态成员变量public void show()//显示函数{System.out.println(name+","+country);//输出对象的名字和所属国家}}class Demo_1{public static void main(String[] args)//main函数:程序运行的入口{student stu1=new Student();//创建对象stu1stu1.name="Jack";stu1.show();//调用show方法student stu2=new Student();stu2.name="Tom";stu2.show();student stu3=new Student();stu3.name="Jim";stu3.show();stu1.country="USA";//修改对象stu1的country属性System.out.println(stu2.country+","+stu3.country);//输出对象stu2和stu3的country属性}}


由运行结过来看当对象的某个属性被修饰为静态时 (如本例中的属性country),则该类的所有对象的这一属性

都是一样的值,即static修饰的成员变量是多有对象的共享,所有的对象可以直接使用;然而当修改某一个对

象的这一属性值时,则其他对象的也会变为与之相同。

静态成员变量和非静态成员变量的区别:

(1).存储的数据

静态成员变量存储的是对象共享的数据

非静态成员变量存储的是每个对象特有的数据

(2).存储位置

静态成员变量是随着类的加载就在方法区中开辟内存了

非静态成员变量是随着对象的创建才在堆中开辟内存的

(3).调用方式

静态成员变量可以对象访问也可以通过类名直接访问

非静态成员变量只能通过对象访问

补充:

非静态成员变量又叫实例成员变量

静态成员变量又叫类变量

有static修饰的函数叫实例函数

无static修饰的函数叫类函数

注意:非静态的方法(函数)可以使用静态和非静态成员,而静态的方法只能使用静态的不能使用非静态的成员。













原创粉丝点击