我正在尝试从Head First Java中提出一个示例问题:
我在netbeans上输入了它。创建3个类作为classA,classB,classC和Main方法作为混合类。在课堂上我遇到一个错误,有人可以向我解释为什么会发生这种情况以及如何解决吗?
public class classA {
int ivar =7;
void m1(){
System.out.println("A's m1, ");
}
void m2(){
System.out.println("A's m2, "); }
void m3(){
System.out.println("A's m3, ");
}
}
public class classB extends classA {
void m1(){
System.out.println("B's m1, ");
}
}
public class classC extends classB {
void m3(){
System.out.println("C's m3, "+(ivar + 6));}
}
public class Mixed2 {
public static void main(String[] args) {
a=new A();
//Error Cant find symbol,Symbol:Variable a location:class mixed 2
b=new B(); //Same error above and below
c=new C();
a2=new C();
}
}
答案 0 :(得分:0)
是的,您可以在一堂课中全部输入。 请看下面的代码。由于您仍在学习最好的代码,因此可以直接输入它,而不必尝试不同的操作,以后您可以熟练掌握该语言。学习愉快!
public class mixedsample {
public static void main(String[] args) {
A a=new A();
B b=new B();
C c=new C();
A a2=new C();
/* b.m1();
c.m2();
a.m3();
Answer=B's,m1 ,A's,m2 ,A's,m3*/
/* c.m1();
c.m2();
c.m3();
A's,m1 ,A's,m2 ,A's,m3 */
/* a.m1();
b.m2();
c.m3();
A's,m1 ,A's,m2 ,A's,m3 */
/* a2.m1();
a2.m2();
a2.m3();
A's,m1A's,m2 ,A's,m3 */
}
}
class A{
int ivar=7;
void m1(){
System.out.println("A's,m1 ");
}
void m2(){
System.out.println("A's,m2 ");
}
void m3(){
System.out.println("A's,m3 ");
}
}
class B extends A {
void m1(){
System.out.println("B's,m1 ");
}
}
class C extends B{
void m1(){
System.out.println("A's,m1 ");
}
}
答案 1 :(得分:0)
当您说a=new A();
时,表示已经声明了引用变量a
,现在您要为其分配新的'A'对象。要声明变量,您需要为其指定类型和名称。
//you can declare the variable and assign it a reference later like this
A a;
a = new A();
//or you could initialize it all in one line
A a = new A();