JAVA代码面向对象程序设计.docx
- 文档编号:11423138
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:65
- 大小:30.58KB
JAVA代码面向对象程序设计.docx
《JAVA代码面向对象程序设计.docx》由会员分享,可在线阅读,更多相关《JAVA代码面向对象程序设计.docx(65页珍藏版)》请在冰豆网上搜索。
JAVA代码面向对象程序设计
JAVA代码
1.一元二次方程
定义方法:
classEquationA{
doublea,b,c;
doubledelta;
EquationA(doublex,doubley,doublez){
a=x;
this.b=y;
c=z;
getDela();
}
privatevoidgetDela(){
delta=b*b-4*a*c;
}
doublegetRoot1()
{
doubler1=0;
r1=(-b+Math.sqrt(delta))/(2*a);
returnr1;
}
doublegetRoot2()
{
doubler1=0;
r1=(-b-Math.sqrt(delta))/(2*a);
returnr1;
}
publicStringtoString(){
Stringstr=a+"x*x"+"+"+b+"x"+"+"+c+"=0";
returnstr;
}
}
测试类:
publicclasstestE{
publicstaticvoidmain(String[]args){
EquationAe1=null;
doubler1=0,r2=0;
e1=newEquationA(1,-14,-3);
System.out.println(e1.toString());
if(e1.delta>0){
System.out.println("两个根");
r1=e1.getRoot1();
r2=e1.getRoot2();
System.out.println(r1);
System.out.println(r2);
}elseif(e1.delta==0){
System.out.println("相同根");
System.out.println(e1.getRoot2());
}else
System.out.println("无根");
EquationAe2=newEquationA(11,114,3);
System.out.println(e2);
}
}
2.矩形、圆形
(一)
Circle(圆类):
publicclassCircle
{
doublex,y,r;
publicCircle(doublex,doubley,doubler)
{
this.x=x;
this.y=y;
this.r=r;
}
publicdoubleGetPerimeter()
{
doubleperimeter=0;
perimeter=2*r*3.14;
returnperimeter;
}
publicdoubleGetArea()
{
doublearea=0;
area=3.14*r*r;
returnarea;
}
publicbooleanInside(doublex1,doubley1)
{
booleanb;
doubled;
d=(x1-this.x)*(x1-this.x)+(y1-this.y)*(y1-this.y);
b=(d>r*r)?
false:
true;
returnb;
}
publicvoidCompareCirclesArea(Circleo2)
{
doubles1,s2;
s1=this.GetArea();
s2=o2.GetArea();
if(s1>s2)
{
System.out.println("圆形1面积更大");
}
elseif(s2>s1)
{
System.out.println("圆形2面积更大");
}
else
{
System.out.println("两个圆形面积一样大");
}
}
publicvoidCompareCirclesPeri(Circleo2)
{
doubles1,s2;
s1=this.GetPerimeter();
s2=o2.GetPerimeter();
if(s1>s2)
{
System.out.println("圆形1周长更大");
}
elseif(s2>s1)
{
System.out.println("圆形2周长更大");
}
else
{
System.out.println("两个圆形周长一样大");}}}
Rect(矩形):
//defineaclassforRectangles
publicclassRect{
doublex1,y1,x2,y2;//leftlowerangleandrightupperanglepointdefinethelocation
doublewidth,length;
publicRect(doublex1,doubley1,doublex2,doubley2)
{
this.x1=x1;
this.y1=y1;
this.x2=x2;
this.y2=y2;
length=this.x2-this.x1;
width=this.y2-this.y1;//没有分情况讨论,默认右上角点坐标大于左下角坐标
}
publicdoubleGetPerimeter()
{
doubleperimeter=0;
perimeter=(length+width)*2;
returnperimeter;
}
publicdoubleGetArea()
{
doublearea=0;
area=length*width;
returnarea;
}
publicRectMergeRect(Rectr1)
{
doubleu1,v1,u2,v2;
u1=(r1.x1 r1.x1: this.x1; v1=(r1.y1 r1.y1: this.y1; u2=(r1.x2>this.x2)? r1.x2: this.x2; v2=(r1.y2>this.y2)? r1.y2: this.y2; Rectr2=newRect(u1,v1,u2,v2); returnr2; } publicbooleanInside(doublex1,doubley1) { booleanb=(x1>=this.x1)&&(x1<=this.x2)&&(y1>=this.y1)&&(y1<=this.y2); returnb; } publicvoidCompareRectsArea(Rectr2) { doubles1,s2; s1=this.GetArea(); s2=r2.GetArea(); if(s1>s2) { System.out.println("矩形1面积更大"); } elseif(s2>s1) { System.out.println("矩形2面积更大"); } else { System.out.println("两个矩形面积一样大"); } } publicvoidCompareRectsPeri(Rectr2) { doubles1,s2; s1=this.GetPerimeter(); s2=r2.GetPerimeter(); if(s1>s2) { System.out.println("矩形1周长更大"); } elseif(s2>s1) { System.out.println("矩形2周长更大"); } else { System.out.println("两个矩形周长一样大"); } } publicvoidCompareRectCircleArea(Circleo1) { if(o1.GetArea()>this.GetArea()) { System.out.println("圆形面积大"); } elseif(o1.GetArea() { System.out.println("矩形面积大"); } else { System.out.println("矩形和圆面积一样大"); } } publicvoidCompareRectCirclePeri(Circleo1) { if(o1.GetPerimeter()>this.GetPerimeter()) { System.out.println("圆形周长大"); } elseif(o1.GetPerimeter() { System.out.println("矩形周长大"); } else { System.out.println("矩形和圆周长一样大"); } } } Test(测试): publicclassRectCircleTest{ publicstaticvoidmain(String[]args) { doublec1,c2,c3,c4,s1,s2,s3,s4;//其中3,4角标为圆的信息 Rectr1=null,r2=null; Circleo1=null,o2=null; //调用构造函数先创建两个矩形和两个圆形对象 r1=newRect(1,1,10,10); r2=newRect(5,5,20,20); o1=newCircle(3,3,1); o2=newCircle(5,5,2); // (1)求矩形的周长、面积,求圆形的周长、面积 c1=r1.GetPerimeter(); c2=r2.GetPerimeter(); s1=r1.GetArea(); s2=r2.GetArea(); System.out.println("矩形1的周长为: "+c1); System.out.println("矩形2的周长为: "+c2); System.out.println("矩形1的面积为: "+s1); System.out.println("矩形2的面积为: "+s2); c3=o1.GetPerimeter(); c4=o2.GetPerimeter(); s3=o1.GetArea(); s4=o2.GetArea(); System.out.println("圆形1的周长为: "+c3); System.out.println("圆形2的周长为: "+c4); System.out.println("圆形1的面积为: "+s3); System.out.println("圆形2的面积为: "+s4); // (2)判断两个矩形的面积大小 r1.CompareRectsArea(r2); //(3)判断两个圆形的面积大小 o1.CompareCirclesArea(o2); //(4)判断矩形与圆形的面积大小 r1.CompareRectCircleArea(o1); r2.CompareRectCircleArea(o2); //(5)判断两个矩形的周长大小 r1.CompareRectsPeri(r2); //(6)判断两个圆形的周长大小 o1.CompareCirclesPeri(o2); //(7)判断矩形与圆形的周长大小 r1.CompareRectCirclePeri(o1); r2.CompareRectCirclePeri(o2); //(8)合并两个矩形 Recta=null; a=r1.MergeRect(r2); System.out.println("合并后矩形的坐标: "+"("+a.x1+","+a.y1+"),("+a.x2+","+a.y2+")"); //(9)判断一个点是否在矩形内部 System.out.println("点(1,1)是否在矩形1的内部? "+r1.Inside(1,1)); System.out.println("点(5,6)是否在矩形1的内部? "+r1.Inside(5,6)); System.out.println("点(10,19)是否在矩形2的内部? "+r2.Inside(10,19)); //(10)判断一个点是否在圆形内部 System.out.println("点(3,4)是否在圆形1的内部? "+o1.Inside(3,4)); System.out.println("点(6,8)是否在圆形2的内部? "+o2.Inside(6,8)); } } 3.矩形、圆形 (二) Circle((圆类): abstractclassShape{ abstractpublicdoubleGetArea(); abstractpublicdoubleGetPerimeter(); abstractpublicbooleanInside(doublex1,doubley1); publicintcompareArea(Shapeano){ if(this.GetArea()>ano.GetArea()) return1; elseif(this.GetArea()==ano.GetArea()) return0; else return-1; } publicintcomparePeri(Shapeano){ if(this.GetPerimeter()>ano.GetPerimeter()) return1; elseif(this.GetPerimeter()==ano.GetPerimeter()) return0; else return-1; } } publicclassCircleextendsShape{ doublex,y,r; publicCircle(doublex,doubley,doubler){ this.x=x; this.y=y; this.r=r; } publicdoubleGetPerimeter(){ doubleperimeter=0; perimeter=2*r*3.14; returnperimeter; } publicdoubleGetArea(){ doublearea=0; area=3.14*r*r; returnarea; } publicbooleanInside(doublex1,doubley1){ booleanb; doubled; d=(x1-this.x)*(x1-this.x)+(y1-this.y)*(y1-this.y); b=(d>r*r)? false: true; returnb; } } Rect(矩形): //defineaclassforRectangles publicclassRectextendsShape{ doublex1,y1,x2,y2;//leftlowerangleandrightupperanglepointdefinethelocation doublewidth,length; publicRect(doublex1,doubley1,doublex2,doubley2) { this.x1=x1; this.y1=y1; this.x2=x2; this.y2=y2; length=this.x2-this.x1; width=this.y2-this.y1;//没有分情况讨论,默认右上角的点的坐标大于左下角的坐标 } publicdoubleGetPerimeter() { doubleperimeter=0; perimeter=(length+width)*2; returnperimeter; } publicdoubleGetArea() { doublearea=0; area=length*width; returnarea; } publicRectMergeRect(Rectr1) { doubleu1,v1,u2,v2; u1=(r1.x1 r1.x1: this.x1; v1=(r1.y1 r1.y1: this.y1; u2=(r1.x2>this.x2)? r1.x2: this.x2; v2=(r1.y2>this.y2)? r1.y2: this.y2; Rectr2=newRect(u1,v1,u2,v2); returnr2; } publicbooleanInside(doublex1,doubley1) { booleanb=(x1>=this.x1)&&(x1<=this.x2)&&(y1>=this.y1)&&(y1<=this.y2); returnb; } } Test(测试类): publicclassRectCircleTest { publicstaticvoidmain(String[]args) { Rectr1=null,r2=null; Circleo1=null,o2=null; //调用构造函数先创建两个矩形和两个圆形对象 r1=newRect(1,1,10,10); r2=newRect(5,5,20,20); o1=newCircle(3,3,1); o2=newCircle(5,5,2); intend=pareArea(r2); end=pareArea(o1); end=parePeri(r1); }} 4.订单 Goods(商品类): publicclassGoods{ Stringnum; Stringname; floatprice; Goods(Stringnum,Stringname,floatprice){ this.num=num; this.name=name; this.price=price; } publicStringtoString(){ Strings; s=num+""+name+"单价: "+price+"元"; returns; } } 订单类(Order): publicclassOrder{ //Stringno; doubleTotalPrice; OrderItemitem1,item2,item3; Order(OrderItemitem1,OrderItemitem2,OrderItemitem3){ this.item1=item1; this.item2=item2; this.item3=item3; TotalPrice(); } privatedoubleTotalPrice(){ TotalPrice=item1.price+item2.price+item3.price; returnTotalPrice; } voidshow(){ Strings=""; s=item1.toString()+"\n"+item2.toString()+"\n"+item3.toString()+"\n"+"总价格为: "+TotalPrice()+"元"; System.out.println(s); } } 订单项类(OrderItem): publicclassOrderItem{ Goodsg; intnum; doubleprice; OrderItem(Goodsg,intnum){ this.g=g; this.num=num; price(); } privatedoubleprice(){ price=g.price*num; if(price>=100) price-=20; returnprice; } publicStringtoString(){ Strings; s=g.toString()+"共"+num+"件"+""+"总价为: "+price+"元"; returns; } } 用户类(User): publicclassUser{ Stringname; Ordero; User(Stringname,Ordero) { this.name=name; this.o=o
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 代码 面向 对象 程序设计