日期:2014-05-20 浏览次数:20850 次
public class SpeakDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Dog dog= new Dog(); Cat cat= new Cat(); Duck duck= new Duck(); dog.dospeak(); cat.dospeak(); duck.dospeak(); } public static class Dog{ public void dospeak(){ System.out.println("Wang Wang!!!!"); } } public static class Cat{ public void dospeak(){ System.out.println("Miao Miao!!!!"); } } public static class Duck{ public void dospeak(){ System.out.println("Ga Ga!!!!"); } } }
------解决方案--------------------
修改方式1:修改main方法
public static void main(String[] args) { /* * 你这种定义类的方式,是非静态内部类,它的存在依靠外部类来定义 * 关于它的声明,是不能使用new关键字的,需要使用“外部类对象.new 内部类()”的方式 * 关于更多内部类的知识,你可以自行查看资料 */ // Dog dog= new Dog(); // Cat cat= new Cat(); // Duck duck= new Duck(); // 提供给你一种解决的方法 SpeakDemo sd = new SpeakDemo(); Dog dog = sd.new Dog(); Cat cat = sd.new Cat(); Duck duck = sd.new Duck(); dog.dospeak(); cat.dospeak(); duck.dospeak(); } public class Dog { public void dospeak() { System.out.println("Wang Wang!!!!"); } } public class Cat { public void dospeak() { System.out.println("Miao Miao!!!!"); } } public class Duck { public void dospeak() { System.out.println("Ga Ga!!!!"); } }
------解决方案--------------------
修改内部类的声明:
public static void main(String[] args) { Dog dog= new Dog(); Cat cat= new Cat(); Duck duck= new Duck(); dog.dospeak(); cat.dospeak(); duck.dospeak(); } /* * 将所有的内部类定义为静态内部类 * 使它们不依靠对象存在,而属于这个类 */ static public class Dog { public void dospeak() { System.out.println("Wang Wang!!!!"); } } static public class Cat { public void dospeak() { System.out.println("Miao Miao!!!!"); } } static public class Duck { public void dospeak() { System.out.println("Ga Ga!!!!"); } }