将类firstClass声明在另一个类Test内部声明,编绎时报错:non-static variable this cannot be referenced from a static contex
是呀,现在还没有Text类的实例,当然就不能声明它的子类对象了,
你应该在main中这样:Test t=new Test();
然后把初始化的东西尽量放到Test的构造器中,或者在Test中加一个init()
方法,生成Test实例后调用之;
另外,建议你类名的首字母大写,这是习惯和约定
你应该在main中这样:Test t=new Test();
然后把初始化的东西尽量放到Test的构造器中,或者在Test中加一个init()
方法,生成Test实例后调用之;
另外,建议你类名的首字母大写,这是习惯和约定
Test()
{
c = new firstClass();
}
public static void main(String agrs[])
{
Test t = new Test() ;
System.out.println("Hello,World") ;
System.out.println(c.info());
}
}
public class Test
{
class firstClass
{
int age ;
String name ;
firstClass()
{
age=24;
name="jcc" ;
}
String info()
{
return String.valueOf(age)+name ;
}
}
firstClass c ;
Test()
{
c = new firstClass();
}
public static void main(String agrs[])
{
Test t = new Test() ;
System.out.println("Hello,World") ;
System.out.println(c.info());
}
}
import java.io.* ;
public class Test
{
class firstClass
{
int age ;
String name ; firstClass()
{
age=24;
name="jcc" ;
} String info()
{
return String.valueOf(age)+name ;
}
} public static void main(String agrs[])
{
System.out.println("Hello,World") ;
Test a = new Test(); Test.firstClass c = a. new firstClass();
System.out.println(c.info());
try {
System.in.read();
}catch(Exception e) {}
}
}
{
Test t = new Test() ;
System.out.println("Hello,World") ;
System.out.println(c.info());
}
你的函数中根本就没有声明c这个变量。你想用c的话要么利用t来调用它要么就象
kenees(飞跃巅峰) 那样 Test.firstClass c = t. new firstClass();来实例化一个c
学习了两种方法: 在类的构造函数中实例化嵌套类,实例中实例化嵌套类1.类的构造函数中实例化嵌套类
import java.io.* ;
public class Test
{
class firstClass
{
int age ;
String name ;
firstClass()
{
age=24;
name="jcc" ;
}
String info()
{
return String.valueOf(age)+name ;
}
}
firstClass c ;
Test()
{
c = new firstClass();
}
public static void main(String agrs[])
{
Test t = new Test() ;
//t. new firstClass()
//这是一种格式了,是为了表明内嵌类和外部类的强有力
//的关系,要不然,你所创建的内嵌类很容易被垃圾回收器
//回收的
//Test.firstClass c =t. new firstClass() ;
System.out.println("Hello,World") ;
System.out.println(t.c.info());
}
}二,实例中实例化嵌套类 import java.io.* ;
public class Test
{
class firstClass
{
int age ;
String name ;
firstClass()
{
age=24;
name="jcc" ;
}
String info()
{
return String.valueOf(age)+name ;
}
}
firstClass c ;
//Test()
//{
// c = new firstClass();
//}
public static void main(String agrs[])
{
Test t = new Test() ;
//t. new firstClass()
//这是一种格式了,是为了表明内嵌类和外部类的强有力
//的关系,要不然,你所创建的内嵌类很容易被垃圾回收器
//回收的
Test.firstClass c =t. new firstClass() ;
System.out.println("Hello,World") ;
System.out.println(c.info());
}
}