黑马程序员技术交流社区

标题: 包的一个问题,折磨死我了,就几句简单的代码,就是报错 [打印本页]

作者: 马州州    时间: 2012-7-23 14:52
标题: 包的一个问题,折磨死我了,就几句简单的代码,就是报错
本帖最后由 马州州 于 2012-7-23 20:01 编辑

今天刚看到包的视频,三个包,代码很简单,就是一直报错,不知道为什么,代码看了一遍又一遍就是找不到错误
第一个
package packa;
public class DemoA extends packb.DemoB  //就是这里出问题,我继承了DemoB,系统提示错误
{
  public void show()
{
  System.out.println("show run");
  method();
}
}
第二个
package packb;
public class DemoB
{
public void method()
{
  System.out.println("method run");
}
}
第三个
package pack;
class PackageDemo
{
public static void main(String[] args)
{
  packa.DemoA d = new packa.DemoA();
  d.show();
}
}
上面红色部分,DemoA继承DemoB,就这里报错,不知道为什么,大家帮我看一下吧,错误提示如下

不是啊,我完全按照毕老师的来的
path也设置好了
就是不行



作者: 郭凯敏    时间: 2012-7-23 15:42
可以运行的.......
不过还是建议先导包,后使用
作者: rslheima    时间: 2012-7-23 15:53
先编译DemoB没问题
再把 packb这个文件夹拷贝到源文件所在位置,在编译DemoA就没问题了
我猜在编译DemoA时,他是在当前文件夹中寻找 packb.DemoB  吧。

作者: 韩爽    时间: 2012-7-23 17:05
以后在遇到这样的情况,你可以尝试先把他们都写到一个类里面,然后相互调用,看看是否可以通过,如果可以,那就证明代码本身是没有问题的。
然后你在按照你的办法分开,如果出现问题了,第一个要注意是否导入你调用类所在的包,一般myeclipse是会有提示的。

作者: 韩爽    时间: 2012-7-23 17:08
  1. package packa;

  2. public class DemoA extends DemoB //就是这里出问题,继承了DemoB,应该写DemoB
  3. {
  4. public void show()
  5. {
  6. System.out.println("show run");
  7. method();
  8. }
  9. }
复制代码

1.png (10.9 KB, 下载次数: 28)

1.png

2.png (10.22 KB, 下载次数: 31)

2.png

3.png (9.47 KB, 下载次数: 36)

3.png

4.png (3.92 KB, 下载次数: 24)

4.png

作者: 韩爽    时间: 2012-7-23 17:15
韩爽 发表于 2012-7-23 17:08
  1. package packa;

  2. public class DemoA extends DemoB /*这句话的意思是,创建DemoA类,继承DemoB类 你那那个正常情况下是正确的,但是前提是你要继承的类跟你所在的类不在同一个包下packb.DemoB 的意思是,***包下的***类,报错的原因是因为你本身所有的类别都是建立在同一个包下的,你看你的错误提示不是提示你没有找到包packb么.*/
  3. {
  4. public void show()
  5. {
  6. System.out.println("show run");
  7. method();
  8. }
  9. }
复制代码

作者: 张頔    时间: 2012-7-23 17:30
lz的程序在eclipse中运行正确,在cmd中运行不正确
之所以在eclipse中运行正确是因为eclipse的导包机制和cmd运行不一样

修改后 在cmd中运行结果就正确了
第一个包packa和packb位置放错了位置如图1,因为在cmd中他是在当前目如下即PackageDemo目如下找packb
而且PackageDemo应该这样写
class PackageDemo
{
public static void main(String[] args)
{
  packa.DemoA d = new packa.DemoA();
  d.show();
}
}


这样结果就正确了

1.jpg (14.2 KB, 下载次数: 27)

1.jpg

U25WO(D(KUBTS@%%D__1%NT.jpg (22.98 KB, 下载次数: 29)

U25WO(D(KUBTS@%%D__1%NT.jpg

作者: 芦曦    时间: 2012-7-23 18:27
本帖最后由 芦曦 于 2012-7-23 18:30 编辑

楼主的错误是packb包不存在。
是因为packb包不在当前目录下,,请好好检查下哦。
设置下classpath。
代码是没错的。能运行出结果。

QQ截图20120723182328.png (1.77 KB, 下载次数: 28)

QQ截图20120723182328.png

QQ截图1.png (1.08 KB, 下载次数: 28)

QQ截图1.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2