代码如下
public class Test
{
class A
{}
public static void main(String[] argv)
{Test test = new Test();}
}
public class Test
{
class A
{}
public static void main(String[] argv)
{ A a = new A();}
}为什么上面的代码能编译通过,而下面的代码不可以,谁能告诉我,谢谢大侠们!
public class Test
{
class A
{}
public static void main(String[] argv)
{Test test = new Test();}
}
public class Test
{
class A
{}
public static void main(String[] argv)
{ A a = new A();}
}为什么上面的代码能编译通过,而下面的代码不可以,谁能告诉我,谢谢大侠们!
解决方案 »
- 关于 httpUrlConnection 的 setDoOutput 与 setDoInput
- j2se程序,读取并下载一个网页,返回不是html,是乱码。怎么解决?
- Swing中使用什么组件/技术 可以给TextField增加类似google/百度 输入栏下的提示框
- 我有一些java的资料!!有兴趣的我可以发布出一些资源!!
- 关于Exception的问题
- 100分在线等待类引入问题
- 谁知道怎样改变一个java.lang.Long对象的值吗??谢谢了!!
- 怎么实现文件的保存?
- 请问JAVA在读库时,用state或PreparedStatement得到记录集的时候,总会出现不响应的停顿,请问这是怎么回事?如何解决?分不够再加谢谢!!!
- 怎样查找classpath中所有符合条件的properties文件?在线等待!!!!!!
- 求救!TextArea 中的文本控制问题
- Java中关于构造函数请教~~
{
class A
{}
public static void main(String[] argv)
{
Test t=new Test();
A a = t.new A();}
}要改成这样。
static class A {
} public static void main(String[] argv) {
// Test t = new Test();
// A a = t.new A();
A b = new A();
}
}
也可以改成这个样子,这个其实和内隐类没有太多关系。主要是main方法是静态的,而你构造对象a时用到的构造方法也应该为静态的否则不能访问。所以有两种解决方法,楼上的一种,我的算一种。呵呵
{
class A
{}
public static void main(String[] argv)
{
Test test = new Test();
Test.A a = test.new A(); //从外部类实力化内部类 Test.A aa= new Test.new A();//连续写
}
}
如果内部类没有与外部类直接关联,则无法存在!!!
------------
您把内部类变为顶级嵌套类了:
和常规类没有区别了!
public class Test {
static class A {
} public static void main(String[] argv) {
Test.A a = new Test.A();//注意和非静态的内部类少了一个new关键字呵呵
}
}