哥们看看这个解释,
package com.heima.changjiajie;
public class Test13 {
public static void main(String args[])
{
System.out.println(data.getVersion());//这儿也能证明返回的是7
//System.out.println(data.getInstance());
System.out.println(data.getInstance().getmx());//data.getInstance().getmx()这个方法
//先是执行了getInstance,再就是getmx()了,没实例化对象所以没掉用构造函数,就没执行private data(),getversion()等,所以return的是mx的初始值...
}
}
class data
{
private static final data mInstance = new data();
private static int mx = 0;
private data()
{
System.out.println("mx=" + mx);
mx = getVersion();
//System.out.println(mx);//这儿打印的也是7
}
public static data getInstance()
{
return mInstance;
}
public static int getVersion()//加个static用来证明是不是返回的是多少,主函数里调用这个方法..
{
int v = 0;
if (v == 0)
{
v = 7;
}
// System.out.println(v);//这儿打印的是7,也就证明返回的也就是7了,
return v;
}
public int getmx()
{
return mx;
}
}
|