日期:2014-05-20  浏览次数:20690 次

关于调用一个类的方法生成对象的问题??
Calendar a=Calendar.getInstance();这一句首先通过抽象类Calendar调用它的方法来生成一个Calendar的子类,然后把这个子类赋值给父类的引用。我想自己编写一个来运行一下,下面是我已经编写的,但不知道下面这个方法应该怎么写,关于Calendar的API文档也没看懂,求高手,帮我写一下!!!!  


package com.wan;

abstract class wan{

  private int a;
private static wan wan=null;
  public abstract void hh();
public static wan getA(){
...//这里应该怎么写
return wan;
}
public int getSum(int t,int h){
a=t+h;
return a;
}
}
public class VideoText{
public static void main(String[] args){
wan a=wan.getA();
System.out.println(a.getSum(2, 3));

}
}

------解决方案--------------------
Calendar类的getInstance() 代码:
Java code

  public static Calendar getInstance()
    {
        Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault(Locale.Category.FORMAT));
        cal.sharedZone = true;
        return cal;
    }


  public static Calendar getInstance(TimeZone zone,
                                       Locale aLocale)
    {
        return createCalendar(zone, aLocale);
    }

    public static Calendar getInstance(TimeZone zone)
    {
        return createCalendar(zone, Locale.getDefault(Locale.Category.FORMAT));
    }

    public static Calendar getInstance(Locale aLocale)
    {
        Calendar cal = createCalendar(TimeZone.getDefaultRef(), aLocale);
        cal.sharedZone = true;
        return cal;
    }



    private static Calendar createCalendar(TimeZone zone,
                                           Locale aLocale)
    {
        Calendar cal = null;

        String caltype = aLocale.getUnicodeLocaleType("ca");
        if (caltype == null) {
            // Calendar type is not specified.
            // If the specified locale is a Thai locale,
            // returns a BuddhistCalendar instance.
            if ("th".equals(aLocale.getLanguage())
                    && ("TH".equals(aLocale.getCountry()))) {
                cal = new BuddhistCalendar(zone, aLocale);
            } else {
                cal = new GregorianCalendar(zone, aLocale);
            }
        } else if (caltype.equals("japanese")) {
            cal = new JapaneseImperialCalendar(zone, aLocale);
        } else if (caltype.equals("buddhist")) {
            cal = new BuddhistCalendar(zone, aLocale);
        } else {
            // Unsupported calendar type.
            // Use Gregorian calendar as a fallback.
            cal = new GregorianCalendar(zone, aLocale);
        }

        return cal;
    }

------解决方案--------------------
class A{
private static A a=null; //创建本对象的引用,私有,不可以直接调用
private A(){} //创建私有的构造方法,不可以直接调用初始化类
public static A getA(){ //初始化类的方法
if(a==null){ //如果a还没有初始化,就初始化该类
a=new A();
}
return a;

}