这个内部类错在哪了?

a987399699 2009-12-27 10:45:00
package Admin;

public class Neibulei {

String name="张三";

class neibu {

public void diaoyong() {
System.out.println("我被调用了。");
System.out.println(name);
}

}

}

package Admin;

public class Neibulei2 {
public static void main(String[] args) {
Neibulei n1=new Neibulei();
Neibulei.neibu=n1.new neibu();

}

}


//不能New出对象,不知道什么原因、。高手看看,什么原因?


...全文
66 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lixinhhxxttxs 2009-12-27
  • 打赏
  • 举报
回复
内部类调用外围局部变量 要把name 置为final
a987399699 2009-12-27
  • 打赏
  • 举报
回复
搞了半天,原来少了个对象名!
a987399699 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 still_rain 的回复:]
引用楼主 a987399699 的回复:
package Admin;

public class Neibulei {

      String name="张三";

class neibu {

public void diaoyong() {
System.out.println("我被调用了。");
System.out.println(name);
}

}

}

package Admin;

public class Neibulei2 {
public static void main(String[] args) {
Neibulei n1=new Neibulei();
Neibulei.neibutemp=n1.new neibu();

}

}


  //不能New出对象,不知道什么原因、。高手看看,什么原因?



[/Quote]

哥们你太帅了,这都被你发现了呵呵。我才发现。粗心滴很哪、
hugogoo 2009-12-27
  • 打赏
  • 举报
回复

package Admin;

public class Neibulei {

String name="张三";

class neibu {

public void diaoyong() {
System.out.println("我被调用了。");
System.out.println(name);
}

}

}

package Admin;

public class Neibulei2 {
public static void main(String[] args) {
Neibulei n1=new Neibulei();
Neibulei.neibu neibu=n1.new neibu();
neibu.diaoyong();
}

}


这样才对
hugogoo 2009-12-27
  • 打赏
  • 举报
回复


package Admin;

public class Neibulei {

String name="张三";

class neibu {

public void diaoyong() {
System.out.println("我被调用了。");
System.out.println(name);
}

}

}

package Admin;

public class Neibulei2 {
public static void main(String[] args) {
Neibulei n1=new Neibulei();
Neibulei.neibu neibu=n1.new neibu();
neibu.diaoyong();
}

}


这样就可以输出
爱摸鱼de老邪 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cangyingzhijia 的回复:]
package Admin;

import geometry.Neibulei;

public class Neibulei2 {
public static void main(String[] args) {
Neibulei n1=new Neibulei();
Neibulei.neibu neibu=n1.new neibu();

}

}

package geometry;

public class Neibulei {

    String name="张三";

public class neibu {

public void diaoyong() {
System.out.println("我被调用了。");
System.out.println(name);
}

}

}

首先把内部类的可见性改成public ,其次声明的时候要指明变量名
[/Quote]
包内可见,不需要将可见性改成public,只需要声明变量名即可。
苍蝇①号 2009-12-27
  • 打赏
  • 举报
回复
package Admin;

import geometry.Neibulei;

public class Neibulei2 {
public static void main(String[] args) {
Neibulei n1=new Neibulei();
Neibulei.neibu neibu=n1.new neibu();

}

}

package geometry;

public class Neibulei {

String name="张三";

public class neibu {

public void diaoyong() {
System.out.println("我被调用了。");
System.out.println(name);
}

}

}

首先把内部类的可见性改成public ,其次声明的时候要指明变量名
爱摸鱼de老邪 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 a987399699 的回复:]
package Admin;

public class Neibulei {

      String name="张三";

class neibu {

public void diaoyong() {
System.out.println("我被调用了。");
System.out.println(name);
}

}

}

package Admin;

public class Neibulei2 {
public static void main(String[] args) {
Neibulei n1=new Neibulei();
Neibulei.neibu temp=n1.new neibu();

}

}


//不能New出对象,不知道什么原因、。高手看看,什么原因?



[/Quote]
filemon 2009-12-27
  • 打赏
  • 举报
回复
内部类是在类的方法内调用的。如果要在外面使用new 创建另一个类中的内部类的话,内部类就没有意义了。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧