黑马程序员技术交流社区
标题:
到底错哪了?好烦啊
[打印本页]
作者:
虫虫同学
时间:
2015-8-28 08:02
标题:
到底错哪了?好烦啊
public class DuoTaiDemo5 {
interface PCI{
public void open();
public void close();
}
class NetCard implements PCI{
public void open(){
System.out.println("网卡运行");
}
public void close(){
System.out.println("网卡关闭");
}
}
class SoundCard implements PCI{
public void open(){
System.out.println("声卡运行");
}
public void close(){
System.out.println("声卡关闭");
}
}
class MainBoard{
public void run(){
System.out.println("主板运行");
}
public void usePCI(PCI p){
if(p != null)
{
p.open();
p.close();
}
}
}
public static void main(String[] args) {
MainBoard mb = new MainBoard();
mb.run();
mb.usePCI(new NetCard());
mb.usePCI(new SoundCard());
}
}
复制代码
大家帮看一下,MainBoard mb = new MainBoard(); 这句话为什么一直报错呢?
作者:
齐伟超
时间:
2015-8-28 08:31
应为main 方法是静态的 而你写的内部类不是静态的静态调用非静态当然报错 解决 讲内部内 MainBoard
SoundCard NetCard 前面都加static
作者:
血马雄风
时间:
2015-8-28 09:35
main不是DuoTaiDemo5类的一部分,并且你的内部类不是嵌套类,所以就会报错
作者:
虫虫同学
时间:
2015-8-28 10:37
齐伟超 发表于 2015-8-28 08:31
应为main 方法是静态的 而你写的内部类不是静态的静态调用非静态当然报错 解决 讲内部内 MainBoard ...
对,解决了,谢了
作者:
wrnlksblk
时间:
2015-8-28 12:49
不是静态不静态的问题,静态的方法内谁说不能通过创建对象再调用非静态方法,是楼主你外部类调用内部类的时候出现了问题,外部类调用内部类要这样写,DuoTaiDemo5.MainBoard mb = new DuoTaiDemo5().new MainBoard();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2