设计模式之方法被调用的方式

 

其实刚学习java对方法被调用来调用去的思想有些模糊,调用一多了,就有点迷糊了,所以看完视频后,今天准备对方法被调用的方式做一些解释,可能话语没有那么专业化,但是还是为了学习。希望各位大侠多多指点。(结合代码和图看)

 

 class Single

{

     private Single(){}

     private static Single s = new Single(); 

     public static Single getInstance()  
    {
       return s;
    }

}

class SheJiMoShi
{
     public static void main(String[] args)
    {
       Single ss = Single.getInstance();

    }

 

/**

方法被调用有两种方式:对象和类名;

在没有对象条件下,如果用类名调用,则方法必须为静态,静态方法再访问类中的成员;

类中的成员变量一般进行私有化(通过方法访问);

如果在类中只有1个对象,则只需要用get方法就可以了,不需要再去用set方法;

上面代码中:Single ss = Single.getInstance();这是静态方法调用,类名调用getInstance()静态方法,它返回的是一个类类型ss的引用

 

在上面代码中程序执行的顺序是先读取主函数中的代码:Single ss = Single.getInstance();,他们的含义是:

(1)先加载Single类,Single类一加载后,在方法区只中就有了Single类的方法空间(见图),然后有一个静态的S变量,还有一个getSingle方法,当调用了方法后,就返回了一个S,S有一个值就是 new Single(),把new Single()赋给了变量S,而这个new Single()它在堆中是一个内存地址值,它是一个对象,即它必须在对内存中(见图)

(2)在调用getInstance()方法的时候,它返回 了一个S,将这个S赋给了SS(将getInstance里面的值s赋给了SS)(见图)

注意:

对象全在堆里面。

对象一建立就必须分配内存空间。

方法区中的S只是指向对象,引用了这个对象。

*/

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值