您的位置:首页 > 编程语言 > Java开发

java中的static关键字

2017-07-23 19:33 253 查看
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();//创建对象stu1
stu1.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修饰的函数叫类函数

注意:非静态的方法(函数)可以使用静态和非静态成员,而静态的方法只能使用静态的不能使用非静态的成员。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息