为什么我的程序老是在main方法里出错main(String[] args)就是这里,哪位高人帮我看看,谢谢了。
答案:4 悬赏:30
解决时间 2021-03-07 14:52
- 提问者网友:绫月
- 2021-03-06 20:15
为什么我的程序老是在main方法里出错main(String[] args)就是这里,哪位高人帮我看看,谢谢了。
最佳答案
- 二级知识专家网友:撞了怀
- 2021-03-06 21:25
给你改了一下 不过建议不要把几个类放在一个java文件里
RecteTest.java
public class RecteTest {
public static void main(String[] args) {
Recter ry = new Recter(10.5f, 5.5f, 6.5f);
System.out.println(ry);
}
}
class Recte {
private float length;
private float width;
public Recte() {
}
public Recte(float length, float width) {
this.length = length;
this.width = width;
}
public float getLength() {
return length;
}
public void setLength(float length) {
this.length = length;
}
public float getWidth() {
return width;
}
public void setWidth(float width) {
this.width = width;
}
@Override
public String toString() {
String s = "长度:" + length + ",宽度:" + width;
return s;
}
public float getPerimeter() {
float perimeter = length * 2 + width * 2;
return perimeter;
}
public float getArea() {
float area = length * width;
return area;
}
}
class Recter extends Recte{
private float height;
public Recter() {
super();
}
public Recter(float length, float width, float height) {
super(length, width);
this.height = height;
}
public float getHeight() {
return height;
}
public void setHeight(float height) {
this.height = height;
}
public float getVolume() {
float volume = getArea() * height;
return volume;
}
@Override
public String toString() {
String s = "矩形长度:" + getLength() + ",矩形宽度:" + getWidth() + ",长方体的高度:"
+ height + ",矩形底面积:" + getArea() + ",长方体体积:" + getVolume();
return s;
}
}
RecteTest.java
public class RecteTest {
public static void main(String[] args) {
Recter ry = new Recter(10.5f, 5.5f, 6.5f);
System.out.println(ry);
}
}
class Recte {
private float length;
private float width;
public Recte() {
}
public Recte(float length, float width) {
this.length = length;
this.width = width;
}
public float getLength() {
return length;
}
public void setLength(float length) {
this.length = length;
}
public float getWidth() {
return width;
}
public void setWidth(float width) {
this.width = width;
}
@Override
public String toString() {
String s = "长度:" + length + ",宽度:" + width;
return s;
}
public float getPerimeter() {
float perimeter = length * 2 + width * 2;
return perimeter;
}
public float getArea() {
float area = length * width;
return area;
}
}
class Recter extends Recte{
private float height;
public Recter() {
super();
}
public Recter(float length, float width, float height) {
super(length, width);
this.height = height;
}
public float getHeight() {
return height;
}
public void setHeight(float height) {
this.height = height;
}
public float getVolume() {
float volume = getArea() * height;
return volume;
}
@Override
public String toString() {
String s = "矩形长度:" + getLength() + ",矩形宽度:" + getWidth() + ",长方体的高度:"
+ height + ",矩形底面积:" + getArea() + ",长方体体积:" + getVolume();
return s;
}
}
全部回答
- 1楼网友:人類模型
- 2021-03-06 22:38
这是说你的主函数 main是 静态类型static 。静态里是不不能输出 动态的东西的。
1>--你把 Recter 改成 静态的就行了。
2>---- 写另外一个函数 输出。然后主函数 main 调用这个函数 就能输出了
追问:试过了,还是不行不行。您能帮我改下吗?
追答:class RecteTest {
public static void main(String[] args) {
rec();
}
rec(){
Recter ry = new Recter(10.5f, 5.5f, 6.5f);
System.out.println(ry);
}
1>--你把 Recter 改成 静态的就行了。
2>---- 写另外一个函数 输出。然后主函数 main 调用这个函数 就能输出了
追问:试过了,还是不行不行。您能帮我改下吗?
追答:class RecteTest {
public static void main(String[] args) {
rec();
}
rec(){
Recter ry = new Recter(10.5f, 5.5f, 6.5f);
System.out.println(ry);
}
- 2楼网友:几近狂妄
- 2021-03-06 22:20
静态方法里面不能掉用非静态的方法,要么你把Recter这个构造方法也写成静态的
要么你把class RecteTest {}这个单独写成一个类,不要写在Recter这个类里面当成内部类,不然就会报现在这个错。
要么你把class RecteTest {}这个单独写成一个类,不要写在Recter这个类里面当成内部类,不然就会报现在这个错。
- 3楼网友:一袍清酒付
- 2021-03-06 21:56
public class Recte {
---〉public去掉
class RecteTest {
---〉加上public,
然后文件名保存为RecteTest.java就可以了
---〉public去掉
class RecteTest {
---〉加上public,
然后文件名保存为RecteTest.java就可以了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯