日期:2014-05-20 浏览次数:21074 次
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!!!!");
}
}