有一个题目,小鸟百思不得其解,特请教高手,谢谢指教!
    要求在A包中定义一个子包B,并在其中定义一个方法C,内容为显示“这是子包中的方法”这一句话。然后用一个程序去调用。可是我在后面一个程序里面定义的时候,怎么也不成功,而且错误很离奇。下面是我的代码。
    /*以下是定义B包的语句*/
C.javapackage a.b;
class C{
   public void disp(String args []){
        System.out.println("这是子包中的方法");
   }
}    /*以下是调用程序的内容*/
d.javaimport a.b.*;
class d{
   public static void main(String args[]){
      disp dsp = new disp();
   }
}如果是这样写,则必然报错,无法access"disp"方法。
但是如果import a.b.disp;或者是在前面加一句package a.b;
就没问题。请问是为什么?

解决方案 »

  1.   

    disp dsp = new disp();?
    应该是new C吧,没明白
      

  2.   

    你太强了,disp是什么?是方法啊,方法还能new出来?
      

  3.   

    不好意思,写错了,应该是new C
      

  4.   

    狂汗
    首先,你没搞懂什么是类的实例化,disp dsp = new disp();这句的意思是实例化一个类名叫disp的类,但是你写的代码里哪里有disp这个类了?改成 C c = new C(); 还差不多其次,你也没弄明白怎么通过实例调用方法,在JAVA中除了静态方法外,都只能通过 实例.方法名来调用。在实例了一个c之后,可以通过c.disp(String args [])来打印出那一句话还有,既然只需要打印出写死的一句话,就没有必要传递一组字符串数组进去,可以把disp这个方法改成disp(),即无参无返回的一个方法
      

  5.   

    唉,楼主太有材了,怀疑你有没有仔细看过java基础书,你出错的原因smvcn()已经说了。
    class d{
    public static void main(String args[]){
    C c = new C();
    c.disp();
    }
    }