初学JAVA,关于执行程序的问题
想问为什么Test.class能执行,TestDuotai.class不能执行(源代码在TestDuotai.java里面)这是源代码程序代码:
class Animal{
String name;
Animal(String name){
this.name=name;
}
public void run(){
System.out.println("是动物在跑....");
}
}
class Dog extends Animal{
Dog(String n){
super(n);
}
public void run(){
System.out.println("名字叫"+this.name+",是狗狗在跑....");
}
}
class Cat extends Animal{
Cat(String n){
super(n);
}
public void run(){
System.out.println("名字叫"+this.name+",是猫猫在跑....");
}
}
class Man{
private String name;
private Animal pet;
Man(String name,Animal pet){
this.name=name;
this.pet=pet;
}
public void myPetRun(){
this.pet.run();
}
}
class Test{
public static void main(String args[]){
Man m1=new Man("wo",new Dog("汪汪"));
Man m2=new Man("wo",new Cat("咪咪"));
m1.myPetRun();
m2.myPetRun();
}
}
[ 本帖最后由 gujunpu 于 2013-3-28 08:51 编辑 ]
----------------解决方案--------------------------------------------------------
同学,你的Cat和Dog还有Man的类不能在Animal类中的应该分开:
package com.chinasoft.ti;
class Animal{
String name;
Animal(String name){
this.name=name;
}
public void run(){
System.out.println("是动物在跑....");
}
}
class Dog extends Animal{
Dog(String n){
super(n);
}
public void run(){
System.out.println("名字叫"+this.name+",是狗狗在跑....");
}
}
class Cat extends Animal{
Cat(String n){
super(n);
}
public void run(){
System.out.println("名字叫"+this.name+",是猫猫在跑....");
}
}
class Man{
private String name;
private Animal pet;
Man(String name,Animal pet){
this.name=name;
this.pet=pet;
}
public void myPetRun(){
this.pet.run();
}
}
public class MU{
public static void main(String args[]){
Man m1=new Man("wo",new Dog("汪汪"));
Man m2=new Man("wo",new Cat("咪咪"));
m1.myPetRun();
m2.myPetRun();
}
}
结果如下:
名字叫汪汪,是狗狗在跑....
名字叫咪咪,是猫猫在跑....
----------------解决方案--------------------------------------------------------
回复 2楼 Kingbox_tang
"你的Cat和Dog还有Man的类不能在Animal类中的应该分开",不好意思,读了半天也不明白这句话的意思 ----------------解决方案--------------------------------------------------------
TestDuotai类没有main函数 接收不到控制台指令,所以不能够执行,和是不是在一个文件里没什么关系。
----------------解决方案--------------------------------------------------------
抱歉,是我完全没注意,因为根本没有编译出一个TestDuotai.class。
----------------解决方案--------------------------------------------------------
昨晚我试了一下,还是将类分成不同的文件比较好使,你这种方法是内部类的结构。
----------------解决方案--------------------------------------------------------
初学者别养成这样的编码风格,这样以后会吃大亏的,java是面向对象的编程好好体会一下,以后学会把自己的代码封装起来,开发中尝试着使用MVC架构,希望这些建议可以帮到你!
----------------解决方案--------------------------------------------------------