您的位置:首页网页设计经验技巧 → Java基础静态成员

Java基础静态成员

时间:2010/2/5 11:23:00来源:本站整理作者:我要评论(0)

Java是面向对象的语言,在开发的时候要以对象的方式来组织代码,方法和属性应该属于某个对象,而不是独立存在。

在Java中还存在一类方法和属性,不属于某个具体对象,而是多个对象共享的,称为静态方法或者静态属性。

1、静态属性

静态属性是某个类的所有对象共享的属性,通过static关键字定义。下面的代码定义了一个静态属性:

public Class Person(

   public static int count;

)

要访问静态属性,可以通过对象名,还可以通过类名。下面的代码都是正确的:

方式一:

Person.count = Person.count+1;

方式二:

Person person = new Person();

person.count++;

这与非静态成员是不同的,非静态成员只能通过对象名调用,每个对象都有自己对应的属性,例如张三有自己的身高,李四有自己的身高。因为静态成员是对应到类的,而非静态成员是对应到对象的,每个对象都会有一个。假设,Person类实例化了6个对象,对于静态成员,内存中只有一个空间来保存这个属性,而非静态成员会有6个,每个对象一个。所以,静态成员又称为类成员,非静态成员称为对象成员。

实例:写出下面代码的输出结果

Person p1 = new Person();

p1.count=10;

Person p2 = new Person();

p2.count=20;

System.out.println(p1.count);

System.out.println(p2.count);

答案:20 20鼠标选中查看答案。

2、静态方法

静态方法属于类的方法,不属于某个具体对象的,所以静态方法不能访问非静态成员。

静态方法的定义,使用关键字static,下面定义了一个静态方法,对count进行操作:

public static void setCount(int count){

      Person.count = count;

}

public static int getCount(){

   return count:

}

实际上,大家在课程已开始的时候就已经使用静态方法了,记不记得main方法的定义?

静态方法不能访问非静态属性,下面的代码就是错误的:

public int height;

public static int getHeight(){

   return height;

}

问题:什么时候用静态方法呢?

答案:如果方法执行过程中不使用对象的属性(也就是非静态成员变量),只是用静态成员变量或者通过参数传入的信息,这时候方法的处理过程与对象无关,所以可以设置成静态方法,并且应该设置成静态方法。

鼠标选中查看答案。

3、静态初始化器

构造方法用于对成员变量进行初始化,静态成员变量不属于某个对象,如何对静态成员变量进行初始化呢?使用静态初始化器。下面就是一段静态初始化器代码:

static{

      count=0;

}

static引导的一对大括号,括号中包含对静态成员的初始化代码,这就是静态初始化器,可以认为是比较特殊的方法,没有返回值类型,没有参数,没有方法名,因为它是在加载类的时候调用的。

注意:静态初始化器中只能对静态成员进行操作,不能对非静态成员进行操作。

相关视频

    没有数据

相关阅读 jdk不是有效的win32程序怎么办 jdk不是有效的win32程序解决方法java设置cookie教程 java怎么设置cookiejava怎么设置随机数 java设置随机数详细教程java怎么设置光标位置 java设置光标位置教程如何在Mac上清除Java高速缓存?如何在Mac上卸载Java?Mac上怎么卸载Java?OSX 10.11 java 6不兼容问题解决办法如何为Mac更新Java?java mac版更新教程

文章评论
发表评论

热门文章 Wordpress本地安装教程dx1.5如何设置二级域名

最新文章 hbuilder有哪些快捷键Wordpress本地安装教程 Wordpress本地安装教程expression web 4文档乱码解决方法dz 2.5“收藏本版”关闭小对话框无法关闭解在制作安装软件之前,您必须先将易语言存盘,

人气排行 如何使用multipart/form-data格式上传文件Photoshop PS图层混合模式详解(非常详细)ISAPI_Rewrite3使用教程网站里添加收藏和设为首页代码桌面快捷方式图标不见了C#获取执行程序所在的当前路径的方法详解(XMLHttpRequest)进行跨域请求方法如何用远程桌面连接进行传输文件