头一页Java第192页(混合消息)
我正在尝试一个来自Head First Java的示例问题: 我在netbeans上输入了它。创建3个类,分别为classA、classB、classC,并将Main方法创建为混合类。在课堂上,我发现了一个错误,有人能解释一下为什么会发生这种情况以及如何解决它吗头一页Java第192页(混合消息),java,Java,我正在尝试一个来自Head First Java的示例问题: 我在netbeans上输入了它。创建3个类,分别为classA、classB、classC,并将Main方法创建为混合类。在课堂上,我发现了一个错误,有人能解释一下为什么会发生这种情况以及如何解决它吗 public class classA { int ivar =7; void m1(){ System.out.println("A's
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();
}
}
是的,你可以在一个类中键入所有内容。 请看一看下面的代码。由于您仍在学习最好的代码,您可以按原样键入代码,而无需尝试其他方法,这些方法可以在您掌握该语言后进行。学习愉快
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 ");
}
}
当你说a=newa()代码>这意味着引用变量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();
最有可能的是A类
应该是A类
和A=new A()
应该是A=new A()代码>如果有疑问,请复制问题中的代码。没有必要有创造性地写一些非常不同的东西,因为这只会在你学习时引入错误。你不仅应该写相同的代码,我建议你尝试使用相同的格式,即空格,使代码更可读,更容易检查它是否相同。@PeterLawrey非常感谢你的耐心和时间!