黑马程序员技术交流社区
标题:
请问是什么问题呢?
[打印本页]
作者:
姚伟涛
时间:
2012-4-14 21:36
标题:
请问是什么问题呢?
public interface Printx {
public void printMyWay();
}
public class Squre implements Printx{
double height,wide;
double area,length;
Squre(double height,double wide){
this.height=height;
this.wide=wide;
}
Squre(double height){
this.height=height;
}
public void printMyWay(){
area=height*wide;
length=2*(height+wide);
};
}
public class Squreson extends Squre {
double diagonal;
Squreson(double height){
this.height=height;
}
public void printMyWay(){
area=height*height;
length=4*height;
diagonal=sqrt(2*height*height);
}
}
}
public class Print {
public static void main(String[] args) {
Squre squre;
Squreson squreson;
squre=new Squre(4,5);
squre.printMyWay();
squreson=new Squreson(4);
squreson.printMyWay();
}
}
复制代码
上面的编译出现了3个错误:
符号: 构造函数 Squreson(int)
位置: 类 接口.Squreson
squreson=new Squreson(4);
符号: 构造函数 Squre()
位置: 类 接口.Squre
public class Squreson extends Squre {
符号: 方法 sqrt(double)
位置: 类 接口.Squreson
diagonal=sqrt(2*height*height);
请问是什么问题呢?
作者:
王永旺
时间:
2012-4-14 21:48
本帖最后由 王永旺 于 2012-4-14 21:56 编辑
类名 只有一个类可以加public啊,这么多public不行的。
另外 方法sqrt()你似乎没定义过吧。
作者:
刘基军
时间:
2012-4-14 21:54
1.一个.java文件里最多只能有一个类是public的;
2.Squreson(double height){
//这边默认是会调用父类的无参构造函数: super() ,而你的Squre类并没有无参构造函数
this.height=height;
}
先修改
作者:
黑马-王建雨
时间:
2012-4-14 22:15
04.public class Squre implements Printx{
05. double height,wide;
06. double area,length;
07. Squre(double height,double wide){
08. this.height=height;
09. this.wide=wide;
10. }
11. Squre(double height){
12. this.height=height;
13. }
14. public void printMyWay(){
15. area=height*wide;
16. length=2*(height+wide);
17. };
怎么又两个构造函数,你让主程序运行哪个?
作者:
高铭
时间:
2012-4-14 22:38
21,22行 改成这吧 Squreson(double height){super(height);}
27行的方法在哪啊 兄弟 没有定义啊
作者:
曾虓
时间:
2012-4-14 23:27
一:一个java文件只有一个public的类,不过我猜测你是把所有代码复制到一起,每个public应该是单独的java文件。
二:21,22行
请修改为
Squreson(double height) {
super(height);
}
三:sqrt()方法没有定义,猜测你应该是调用Math类的Math.sqrt()这个方法,请修正。
作者:
韩新凯
时间:
2012-4-14 23:47
1.如果这些文件都是放在一起的话,那么只能有一个public,interface也不能是public的。class也只能主类是public的。
此外,sqrt()方法前面需要加上Math.sqrt()。
2.30行的}去掉。
3.在04.public class Squre implements Printx{代码里面加上Squre() {}就行。
4. 在14,24的public void printMyWay()方法的最后面加上System.out.println("area :"+area+"------"+"length: "+length);输出结果。
现在应该就可以了。
作者:
韩新凯
时间:
2012-4-15 08:48
啷个里个郞 发表于 2012-4-14 22:15
04.public class Squre implements Printx{
05. double height,wide;
调用哪个运行哪个呗?谁说必须只能一个构造函数啊?构造函数也是可以重载的。
作者:
黑马老兵
时间:
2012-4-15 10:18
一个.java文件里最多只能有一个类是public的这个必须注意啊 。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2