关于私有静态对象的问题

关于私有静态对象的问题

问题描述:

老师,请问关于私有静态对象的相关知识点在前面的哪一节课程中有提及,我给忘记了

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,static可以用来修饰成员变量,方法,代码块等。

// 2.创建该类型的静态私有对象
private static SingletonOne instance = new SingletonOne();

这里static是用来修饰成员变量。用static修饰的成员变量称为静态成员变量。静态成员变量是属于整个类的,仅在类加载时初次加载时初始化,在类销毁时销毁。可以通过 类名.成员变量名 的方式进行调用。

// 3.创建公有静态方法返回静态实例对象
public static SingletonOne getInstance() {
    return instance;
}

这里static是用来修饰方法的,用static修饰的方法称为静态方法。静态方法属于整个类的,由类所进行维护,可以通过 类名.方法名  的方式进行调用,在静态方法中不能直接访问同类中的非静态成员。


建议同学可以再去学习一下《Java封装》课程第2章。如果还有什么地方不理解,请具体指出来。

祝学习愉快~

  • 慕尼黑3413982 提问者 #1

    那为什么这样产生的对象指向的是同一个引用?

    		SingletonOne one=SingletonOne.getInstance();
    SingletonOne two=SingletonOne.getInstance();
    System.out.println(one);
    System.out.println(two);


    2021-01-19 19:40:07
  • 好帮手慕阿满 回复 提问者 慕尼黑3413982 #2

    同学你好,之前讲过用static修饰,在类加载时就加载。也就是说instance对象在加载SingletonOne类时就已经实例化了。多次调用getInstance()方法返回的同一个是instance对象,所以one和two的引用指向同一个对象。

    祝学习愉快~

    2021-01-20 10:45:58
好帮手慕阿满 2021-01-18 10:11:23

同学你好,在《Java封装》中讲了静态static关键字,在《Java继承(上)》中讲了访问修饰符私有private,在《Java面向对象》中讲过实例化对象。私有静态对象是关键字组合使用,私有静态对象表示只能在本类中使用,在加载类时就加载并只加载一次的对象。

祝学习愉快~

  • 提问者 慕尼黑3413982 #1

    那static静态关键字起到什么作用呢?

    2021-01-18 19:10:22
  • 好帮手慕阿满 回复 提问者 慕尼黑3413982 #2

    同学你好,在这里,static静态表示在类加载时就加载并只加载一次。

    祝学习愉快~

    2021-01-18 19:24:47
  • 提问者 慕尼黑3413982 回复 好帮手慕阿满 #3

    老师,我还是不理解这里两处的staitc

    // 2.创建该类型的静态私有对象
    private static SingletonOne instance = new SingletonOne();
    // 3.创建公有静态方法返回静态实例对象
    public static SingletonOne getInstance() {
    return instance;


    2021-01-18 19:43:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师