首页 > 其他 > 详细

面向对象-关于静态

时间:2014-03-03 18:05:39      阅读:422      评论:0      收藏:0      [点我收藏+]

1静态可以修饰:成员变量和成员函数。


什么时候定义静态变量(类变量):

当对象中出现数据共享时,该数据被静态所修饰。

对象中的特有数据要定义成非静态,存在于堆内存中。


什么时候定义静态函数:

当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。


eg:

class Person

{

String name;

public void show(){

// 这中间没有使用name,则此函数show()可以定义成static,,,,

}

}


2 每一个应用程序都有共性的功能,可以将这些功能进行抽象,独立封装,以便复用。

eg: 

class ArrayTool{

public void getMax(){

}

public void getMin(){

}

}


class ArrayToolDemo{

ArrayTool arrayTool = new ArrayTool();

arrayTool.getMax();

}

虽然通过建立ArrayTool的对象使用这些工具方法,对数组进行操作,但是发现了问题:

1 对象是用于封装数据的,可以ArrayTool对象并未封装特有数据。

2 操作数组的每一个方法都没有用到ArrayTool对象的特有数据。


如何让程序严谨?

1 所以,这是可以考虑,让程序更严谨(这个程序是不需要ArrayTool对象的),可以将ArrayTool中的方法定义成static,直接通过类名调用即可。

2 同时,将方法都静态后,可以方便使用,但是该类还是可以被其他程序建立对象的(即 ArrayTool arrayTool = new ArrayTool()是合法的),为了更为严谨,强制让类不能建立对象,可以通过将构造函数私有化完成。



面向对象-关于静态,布布扣,bubuko.com

面向对象-关于静态

原文:http://blog.csdn.net/zqx198810/article/details/20310349

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!