问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java编写三角形面积代码如下:1

发布网友 发布时间:2023-10-27 11:26

我来回答

3个回答

热心网友 时间:2024-11-03 12:41

第一个问题,若把 public abstract double getArea() 这句去掉的话,代表了父类里面没有了这个方法!换言之,你的main方法里面,不能用父类的对象去调用这个方法!也就是说,你要这样建立类:SanJiao sanjiao=new SanJiao(2.0,3.0); 把Shape 换成 SanJiao

第二个问题你问的不太清楚,一般写法是 this.x = _x; this.y = _y;
因为我们有时候是这样写的
public SanJiao(double x,double y)
{ this.x=x; this.y=y;
}
两个都是用 x和y,那么,类里面的元素就要用 this来区分开了!因为 this 指的就是当前对象!

热心网友 时间:2024-11-03 12:41

class SanJiao{
private double a;
private double b;
public SanJiao(double a,double b){
setA(a);
setB(b);
}
public void setA(double a)
{
if(a>0)
this.a=a;
}
public void setB(double b){
if(a>0)
this.b=b;
}

public double getA()
{
return this.a;
}
public double getB()
{
return this.b;
}
public double getArea()
{
return a*b/2;
}
}
public class Oo22demo{
public static void main(String[] args){
SanJiao sanjiao=new SanJiao(2.0,3.0);
System.out.println(sanjiao.getArea());
}

}

热心网友 时间:2024-11-03 12:42

去掉Shape里面的抽象方法getArea()后.SanJiao类继承Shape写了getArea()方法,因为Shape里面是没有getArea()方法的(因为去掉了嘛).所以getArea()方法是SanJiao这个类自己的方法.所以想使用getArea()方法必须使用SanJiao这个类的引用,而不能用抽象类Shape的引用了.因此,只需要将One类里面的"Shape sanjiao=new SanJiao(2.0,3.0);"改为"SanJiao sanjiao = new SanJiao(2.0,3.0);"就可以了.
关于第二个问题.既然你是新手,就讲的详细点吧.
java中有个关键字是this.this关键字总是指向调用该方法的对象.就以你写的例子为例:
abstract class Shape {
public double area;
public abstract double getArea();
}
class SanJiao extends Shape {
private double x, y;
public SanJiao(double x, double y) {
this.x = x;
this.y = y;
}

public double getArea() {
area = x * y / 2;
return area;
}
}

public class One {
public static void main(String[] args) {
Shape sanjiao = new SanJiao(2.0, 3.0);
System.out.println(sanjiao.getArea());
}
}

修改后SanJiao类的构造器SanJiao()需要两个double类型的参数,两个参数分别为x,y,但是这两个参数跟SanJiao里面的两个double类型的实例变量xy重了,根据就近原则,构造器SanJiao()里面的xy始终指向他的参数xy,想在构造器SanJiao()中使用类SanJiao的实例变量xy就要使用this关键字来指代了.当年我学习java的时候"this关键字总是指向调用该方法的对象."这句话把我纠结了好长时间.现在我给你具体分析一下.这个例子中类One中,mian()方法new 了一个SanJiao类的对象指向了引用sanjiao.因为SanJiao类只有带2个double参数的构造器,所以必须在new出来的时候使用两个double类型的参数.本例中使用的是2.0,3.0.现在,这两个参数传达到了构造器SanJiao()中,SanJiao()进行了赋值操作,想将这两个参数值赋值给了类SanJiao中的实例变量xy.但是现在不能直接使用xy,因为直接使用xy表示的是SanJiao()中的两个参数.this表示的是调用该方法的对象.现在调用构造器SanJiao()的谁?不就是SanJiao类吗.所以现在this.x的意思不就是SanJiao类里面的那个x嘛.SanJiao()中的this.x=x 就是将x的值给实例变量x了.看到这里,我想你也应该明白.在SanJiao类的getArea()方法中的x,y.也可以使用this.x和this.y代替.不过因为这个方法里面的xy没有和别的xy冲突.所以可以省略不写..
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
云南经济管理学院正规吗 云南经济管理学院有转公立的可能吗 云南经济管理学院是民办大学还是公办大学 云南经济学院是公办还是民办 如果抚养费纠纷如何处理 婚内出轨协议书怎么写? 婚内出轨协议书(甄选7篇) 朗姆酒提子蛋糕做法大全 酒香提子戚风小诀窍 提子戚风蛋糕做法 下载一个码怎么下载呢?6 周末可以去人民银行查询征信记录吗574 怎么修改?已经修改过一次了 想再修改一次。 电脑正常关机后,外接电源适配器也移除了,但是电源指示灯还亮着,怎么... 两个手机号可以在同一手机上开通两个吗,怎么设置呢? M4M5哪个最常用螺栓1 卫生间百合叶柳丁型号 如图的图标为___的标志,它提醒我们要注意食品__ 求祁连山photoshop cs6视频教程最新修正更新完整版...61 可以注销吗?怎么注销呢?10 英国、加拿大、新加坡、澳大利亚的天气状况用英语句子表达出来. ...叫鸣人去卖(括号)身养他?鸣人会是什么反应?为什么 唐僧扮演者徐少华景区卖唱,哪些过气明星的现状惨淡?4 我是一名大三学生,将满21岁,还能考舞蹈方面的证书么(等级、...7 如何防止社交媒体网络欺诈? 这个视频播放器的这个按键不灵了 是里面轻触开关坏了吗?轻触开... 怎样识别社交媒体上的诈骗信息? 听说31abc少儿英语的教材是选用《美国国家地理》教材,这款教材好不好... 我想下载一个怎么下载915 我想下载个怎么下载566 腹膜后髂血管旁属于肾以下 外六角螺丝m4m5有什么不同4 为什么自动会被注销?45 为什么会被注销? 五年级上册人教版关于面积的一题多解题6 ...1)如图1,是未完成的上海大众汽车的标志图案.该 很相信自己的女朋友,谈了两年,可是她却跟别的男人好上了,是异地恋,被... 环球的总裁会籍有多少项特权? 一年内第二次修改技巧 我想下载个怎么下载566 内服劫痰平喘,但不可做酒剂服的是( )。 四合礼都有什么?1 什么是泡沫仿真花?3 环球的优先会籍有多少项特权?3 开一个外贸童装特价店大概需要多少钱?2 wm系统真的玩不了微信嘛 多普达s900 为什么微信和米聊都没有退出WM版本的? 英雄联盟怎样设置成快捷释放技能,又可以用鼠标点击技能图标也能...15 还记得曾经因少给5元的片酬一声不响辞演唐僧,今现状如何? 我是一名工厂员工,因不小心漏装一个东西,组长让我写有谁帮我写...2