类成员
来源:互联网 发布:windows gcc搭建 编辑:程序博客网 时间:2024/06/06 00:29
理解类成员:类成员就是被static修饰的的成员
类变量属于整个类,当类初始化完成后,类变量也被初始化完成
类变量既可以通过类来访问,也可以通过对象访问,但是通过对象访问只是一种假象,通过对象访问依然是该类的类变量,可以这样理解:当通过对象来访问类变量时,系统会
在底层转换为通过该类来访问类变量
public class NullAccessStatic { public static int id; private static void test(){ System.out.println("static的静态方法"); } public static void main(String args[]){ NullAccessStatic nas = null; nas.id=12; System.out.println(id);//输出:12 nas.test();//输出:static的静态方法 //如果null对象访问实例成员,将会引发异常,因为null表示该对象根本不存在 //所以采用对象来调用类方法和类变量时,是一种假象,系统会在底部转换为通过该类来访问类变量。 }}
类成员不能访问实例成员,因为类成员是属于类的,类成员的作用比实例成员作用域更大,完全可能出现类成员已经初始化完成,但实例成员还不曾初始化的情况,如果允许类
成员访问实例成员将会引起大量错误
单例类:如果一个类始终只能创建一个实例,则这个类被称为单例类
class Singleton{//使用一个类变量来缓存曾经创建的实例 private static Singleton instance; //对构造器使用private修饰,隐藏该构造器 private Singleton(){ } //提供一个静态方法,用于返回Singleton实例 //该方法可以加入自定义控制,保证只产生一个Singleton对象 public static Singleton getInstance(){ //如果instance为null,则表明还不曾创建Singleton对象 if(instance == null){ //创建一个Singleton对象,并将其缓存起来 instance = new Singleton(); } return instance; }}public class SingletonTest {public static void main(String args[]){Singleton s1 = Singleton.getInstance();Singleton s2 = Singleton.getInstance();System.out.println(s1==s2);//输出:true}}
上面通过getInstance方法提供的自定义控制,保证只产生一个实例。所以在main方法中,看到产生的两次Singleton对象实际上是同一个对象
阅读全文
1 0
- 类成员
- 类成员
- 类成员
- 类成员
- 类成员
- 类成员
- 实例成员与类成员
- 修改私有成员(类成员)/只读成员的属性
- 类的 静态成员 --- 静态成员变量 、 静态成员函数
- C++ static成员/类专属成员的定义/静态成员
- 静态类成员和成员函数
- 类中的成员属性和成员方法
- 类的成员之二:成员方法
- 类成员和实例成员的访问
- 4.7 实例成员与类成员
- 初始化C++类成员
- Static类成员
- C#类成员
- Html中行内元素有哪些?块级元素有哪些?
- socket与http的区别
- ACM_51nod 1354 选数字
- zookeeper安装mac版本
- JAVA反射与注解
- 类成员
- post和get的区别
- Python核心编程(第二版)第六章练习题
- 两个目录互相备份,相同文件取最新
- HDU 3255 Farming
- javascript中的原型继承
- eclipse环境下如何使用断点调试?
- Java实现字符串的反转
- 读取excel文件中的信息实例1