首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

本人初学者求高手解释啊这程序哪里出错了?小弟我很费解啊

2012-02-04 
本人菜鸟求高手解释啊?这程序哪里出错了??我很费解啊!!package javabasicinterface EqualDiagonal{public

本人菜鸟求高手解释啊?这程序哪里出错了??我很费解啊!!
package javabasic;



interface EqualDiagonal{
public void getDiagonal();

}


class Rectangle implements EqualDiagonal{
  int a;
int b;
public Rectangle(int a,int b){
this.a=a;
this.b=b;
  }
public Rectangle(int a){
this.a=a;
this.b=a;
}
public int getchang(){
  return a;
  }
  public int getkuan(){
  return b ;
  }
public int getzhouchang(){
  return (a+b)*2 ;
  }

public int getmianji(){
  return a*b ; 
  }
public void getDiagonal(){
double s=Math.sqrt((double)(a*a+b*b));
System.out.println(s);
}

}



class Square extends Rectangle implements EqualDiagonal {
public Square(int a){
super(a);
}  
public void getDiagonal(){
double s=Math.sqrt((double)(a*a+b*b));
System.out.println(s);
}
}



public class Text{
public static void main(String[] args){
Rectangle m=new Rectangle(3,4);
Square n= new Square(5);
  m.getDiagonal();
n.getDiagonal();


}
}


[解决办法]

Java code
interface EqualDiagonal { 
public void getDiagonal();

}

class Rectangle implements EqualDiagonal {
int a;
int b;

public Rectangle(int a, int b) {
this.a = a;
this.b = b;
}

public Rectangle(int a) {
this.a = a;
this.b = a;
}

public int getchang() {
return a;
}

public int getkuan() {
return b;
}

public int getzhouchang() {
return (a + b) * 2;
}

public int getmianji() {
return a * b;
}

public void getDiagonal() {
double s = Math.sqrt((double) (a * a + b * b));
System.out.println(s);
}

}

class Square extends Rectangle implements EqualDiagonal {
public Square(int a) {
super(a);
}

public void getDiagonal() {
double s = Math.sqrt((double) (a * a + b * b));
System.out.println(s);
}
}

public class Main {
public static void main(String[] args) {
Rectangle m = new Rectangle(3, 4);
Square n = new Square(5);
m.getDiagonal();
n.getDiagonal();

}
}

//result:
//5.0
//7.0710678118654755

[解决办法]
Java code
interface EqualDiagonal{    /**     * 求对角线长度     */    public void getDiagonal();}/** * 长方形 */class Rectangle implements EqualDiagonal{    int a;    int b;    public Rectangle(int a, int b)    {        this.a = a;        this.b = b;    }    public int getchang()    {        return a;    }    public int getkuan()    {        return b;    }    public int getzhouchang()    {        return (a + b) * 2;    }    public int getmianji()    {        return a * b;    }    public void getDiagonal()    {        double s = Math.sqrt((double) (a * a + b * b));        System.out.println(s);    }}/** * 正方形 */class Square extends Rectangle{    public Square(int a)    {        super(a, a);    }    public void getDiagonal()    {        double s = Math.sqrt((double) (a * a + b * b));        System.out.println(s);    }}public class Text{    public static void main(String[] args)    {        Rectangle m = new Rectangle(3, 4);        Square n = new Square(5);        m.getDiagonal();        n.getDiagonal();    }} 


[解决办法]
mkdir classes
javac -d classes Text.java
java -cp classes javabasic.Text

有包和没包有区别。
[解决办法]
楼上的huntor说明了问题所在,你的代码中开头处添加了包名,而运行时,根本就没有这个包,所以导致了错误。如果你把包名去掉或者是你编译好之后把他放到javabasic下面运行,也不会错。

热点排行