小弟最近刚接触JAVA,按照教材的要求做了一个小练习,如下,但是经过编译之后会出现两个错误:无法从静态上下文中引用非静态变量 this,哪位大侠能够帮我解释下吗?非常感谢!代码如下:public class Zoo2
{
class Animal
{
public int legs;
public void eat()
{
System.out.println("Eating.");
}
public void move()
{
System.out.println("Moving.");
}
}
public static void main(String args[])
{
Animal animal1=new Animal();
Animal animal2;
animal2=new Animal();
animal1.legs=4;
System.out.println("animal1 has "+animal1.legs+" legs.");
System.out.println("animal2 has "+animal2.legs+" legs.");
animal1.eat();
animal2.move();
}
}
{
class Animal
{
public int legs;
public void eat()
{
System.out.println("Eating.");
}
public void move()
{
System.out.println("Moving.");
}
}
public static void main(String args[])
{
Animal animal1=new Animal();
Animal animal2;
animal2=new Animal();
animal1.legs=4;
System.out.println("animal1 has "+animal1.legs+" legs.");
System.out.println("animal2 has "+animal2.legs+" legs.");
animal1.eat();
animal2.move();
}
}
代码如下。public class Zoo2 {
class Animal {
public int legs; public void eat() {
System.out.println("Eating.");
} public void move() {
System.out.println("Moving.");
} } public static void main(String args[]) {
Zoo2 zoo2 = new Zoo2();
Animal animal1 = zoo2.new Animal();
Animal animal2;
animal2 = zoo2.new Animal(); animal1.legs = 4; System.out.println("animal1 has " + animal1.legs + " legs.");
System.out.println("animal2 has " + animal2.legs + " legs."); animal1.eat();
animal2.move();
}
}
package com.CSDN;public class Zoo2 {
class Animal {
public int legs;
public void eat() {
System.out.println("Eating.");
}
public void move() {
System.out.println("Moving.");
}
}
public static void main(String args[]) {
Zoo2 zoo2=new Zoo2();
Zoo2.Animal animal1 = zoo2.new Animal();
Zoo2.Animal animal2 = zoo2.new Animal();
animal1.legs = 4;
System.out.println("animal1 has " + animal1.legs + " legs.");//4
System.out.println("animal2 has " + animal2.legs + " legs.");//0 legs默认值为0
animal1.eat();//Eating
animal2.move();//Moving
}
}
Animal animal1=new Animal()声名了。
你申明的animal类中有非静态变量 legs