定义一个抽象类和接口的区别shape

\定义一个抽象类Shape,它有两个抽象的方法area()和perimeter(),分别表示求面积和周长.
\定义一个抽象类Shape,它有两个抽象的方法area()和perimeter(),分别表示求面积和周长.
简单工厂模式?我之前做了个简易计算器的简单工厂模式,效果与你这个是一样的~~~~你的抽象类Shape里面的方法area()和perimeter(),可以参考的计算器的GetResult()都是虚方法(使用virtual 关键字),然后在计算面积、周长的子类中分别重写(override关键字)就是了~~~~~~~~~ 具体的你看我的 简易计算器工程模式 代码:C# 简单工厂之简易计算器总共三个类:Operation.cs OperationFactory.cs Program.csOperation.cs 两个操作数,一个运算的虚方法GetResult(),该方法得出运算结果 加减乘除 四个运算类,每个类继承于Operation.cs,每个类都有一个GetResult()方法,子类的GetResult()用于实现具体的加减乘除运算~~~~~~~~OperationFactory.cs 实例化 加减乘除 四个运算类~~~~~Program.cs 里面是main()调用运算类~~~~~Operation.csusing Susing System.Collections.Gusing System.Lusing System.Tnamespace FactoryPattern{ ///
/// 运算类 ///
public class Operation { #region 运算类,包含两个操作数,一个虚的运算方法 private double _numberA = 0; ///
/// 操作数A ///
public double NumberA { get { return _numberA; } set { _numberA = } } private double _numberB = 0; ///
/// 操作数B ///
public double NumberB { get { return _numberB; } set { _numberB = } } #region 虚方法,得到运算结果 public virtual double GetResult() { double result = 0; } #endregion #endregion } ///
/// 加法类:继承于运算类 ///
public class OperationAdd : Operation { public override double GetResult() { double result = 0; result = NumberA + NumberB; } } ///
/// 减法类:继承于运算类 ///
public class OperationSub : Operation { public override double GetResult() { double result = 0; result = NumberA - NumberB; } } ///
/// 乘法类:继承于运算类 ///
public class OperationMul : Operation { public override double GetResult() { double result = 0; result = NumberA * NumberB; } } ///
/// 除法类:继承于运算类 ///
public class OperationDiv : Operation { public override double GetResult() { double result = 0; if (NumberB==0) { throw new Exception("除数不能为零!");
} else { result = NumberA / NumberB; }
} } #region 简单工厂模式结论 /* 若要实现复杂的运算,比如开根号、自然对数、求正余弦等等, * 只需要: * (1)增加相应的运算子类 * (2)在工厂的switch子句中添加相应复杂运算的分支 * 就OK了 */ #endregion}OperationFactory.csusing Susing System.Collections.Gusing System.Lusing System.Tnamespace FactoryPattern{ public class OperationFactory { ///
/// 根据相应的运算符号,工厂就实例化出合适的运算对象 ///
/// 加减乘除等运算符号 ///
public static Operation createOperation(string operationType) { Operation operation = //分别实例化具体的 加减乘除 运算类~~~~~~~~~ switch (operationType) { case "+": operation = new OperationAdd(); case "-": operation = new OperationSub(); case "*": operation = new OperationMul(); case "/" : operation = new OperationDiv(); default: operation = new Operation(); } } }}Program.cs调用~~~~~using Susing System.Collections.Gusing System.Lusing System.Tnamespace FactoryPattern{ class Program { static void Main(string[] args) { double result = 0; string operationType = "+"; Operation oper = // 【传入运算符,工厂实例化创造一个相应的运算对象】 oper = OperationFactory.createOperation(operationType); oper.NumberA = 1; oper.NumberB = 5; // 【经过多态,返回父类的方式,实现计算结果】 result = oper.GetResult(); Console.WriteLine(result); operationType = "-"; oper = OperationFactory.createOperation(operationType); oper.NumberA = 1; oper.NumberB = 5; result = oper.GetResult(); Console.WriteLine(result); operationType = "*"; oper = OperationFactory.createOperation(operationType); oper.NumberA = 1; oper.NumberB = 5; result = oper.GetResult(); Console.WriteLine(result); operationType = "/"; oper = OperationFactory.createOperation(operationType); oper.NumberA = 1; oper.NumberB = 5; result = oper.GetResult(); Console.WriteLine(result); Console.ReadKey(); } }}
我有更好的回答:
剩余:2000字
与《\定义一个抽象类Shape,它有两个抽象的方法area()和perimeter(),分别表示求面积和周长.》相关的作业问题
我有个类似的,你看一下import java.awt.*;import java.applet.*;abstract class Shapes { protected int x,y,k;public Shapes(int x,int y,int k,double m){this
class Shape{public: virtual float area() const{return 0;}};class Circle{private:public: float area() const{return 3.14159*radius * radius};其他的依次类似
public abstract class A{ public abstract void print();}public class A1 extends A{ public void print(){ System.out.println("Hello"); }}public class A2 extends A{
abstract class A{ abstract void print();} class A1 extends A{ void print(){ System.out.println("A1's method"); }}class A2 extends A{ void print(){ System.out.pr
#includeconst double pi = 3.14;//Point类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area().template class Point{public:Point(){}Point(const T x,const
答案:D首先就是参数问题,由题意可知,可排除A,C,在B和D中,就得看函数的返回值类型了,B中的返回值类型没有写,故C语言中,默认的就是int类型了.所以,返回值类型必须写为double,不能省略;其次就是您的return 了.这个没有什么影响,加括号和不加括号都一样.但是加括号看起来理解更清晰,一目了然~
修改如下,调试无误:#include&&iostream&#include&&cmath&using&namespace&//实现POINT类class&POINT{protected://private:& &
#include "stdafx.h"#include #includeclass CShape{public:\x09virtual void Area()=0;\x09virtual void SetData()=0;};class CTriange:public CSha
dim TempValueTempValue = AA = B B = TempValue
一下代码全部手动输入,兵测试完毕.最近在学Java的设计模式,所以花了点功夫帮你把全部程序写出来了.事件源package com.ph.java.public class EventSource {\x05public EventSource(float real,float img) {\x05\x05t
看完你上面说的,大概了解你困惑的地方.首先跟你说明一下:电场强度通量,线通量都是不存在的,不是一种实物,是人们为了描述和理解电场这个东西来想象出来的一个模型.如果你明确这点下面说的就很好理解了.可以这样理解电场的意义:带电物体之间会存在一种相互的影响.这种影响会以力的作用体现出来.假设一个虚无的空间里,放进去了一颗带电
一个四边形,斜对的两个角是直角,他的四个角 不一定都是直角(长方形) 再问: 在矩形的定义中不是说 “有一个角是直角的平行四边形是矩形。(定义)”吗?那两个角不应该也是吗? 矩形不是长方形吗? 再答: 必须要有三个角是 直角才可以 确定是矩形 二个角 不够 你好好思考下就明白了
给个邮箱可以发给你 再问:
#include "stdafx.h"#include#includclass Circle{double r,Area,Cpublic:Circle(double a=0);Circle(Circle &);void SetR(double R);d
#include#define PI 3.14class Point{public:\x09Point() :m_x(0),m_y(0){}\x09Point(double x,double y) :m_x(x),m_y(y){}\x09~Point(){}protected:
整体算(a+b)²=a²+2ab+b²分体算4×ab/2+c²=2ab+c²因是同一个正方形的面积所以a²+2ab+b²=2ab+c²整理得a²+b²=c²即得到勾股定理的一种证明
当然不好呀,一般泡茶都是80度的开水,这样泡出来的茶就有塑料的味道,如果是绿茶的话汤色也不好,给人的感觉就不想喝,你可以选择好的透明的玻璃杯跑绿茶,很有亲和力的哟,喝茶也是一种享受哟.
设第一天是x号,则:&x+(x+1)+(x+7)+(x+8)+(x+14)+(x+15)=69&6x+45=69&6x=24&x=4&答:分别是4号、5号、11号、12号、18号、19号&
楼主,类的声明就不写了,我想你已经搞定了,我只贴出方法,这是我前几天刚写的CComplex::CComplex(){RealPart=0.0;ImaginPart=0.0;}CComplex::CComplex(double dblx,double dbly){RealPart=ImaginPart=dblyjava编程定义一个shape抽象类,具有求面积/求周长/显示输出功能._百度知道
java编程定义一个shape抽象类,具有求面积/求周长/显示输出功能.
我有更好的答案
楼主是不是想利用Java求shape文件中 面的面积,也就是polygon或者multipolygon的面积。实际上就是不规则多边形的面积,如果不用什么函数库(geotools)的话,还是有现成的公式的,非是通过定积分推倒了一个公式而已。需要注意的是:点要按照逆时针或者顺时针的顺序添加进listimport java.awt.Pimport java.util.ArrayLimport java.util.Limport org.opengis.feature.simple.SimpleFimport com.vividsolutions.jts.geom.Gpublic class GetArea{public static void main(String args[]){Point p1 = new Point(1,0);Point p2 = new Point(12,0);Point p3 = new Point(10,10);Point p4 = new Point(0,10);Point p5= new Point(3,3);List&Point& list = new ArrayList&Point&();//泛型list.add(p1);list.add(p2);list.add(p3);list.add(p4);list.add(p5);GetArea t = new GetArea();double area = t.getArea(list);System.out.println(area);}public double getArea(List&Point& list){//S = 0.5 * ( (x0*y1-x1*y0) + (x1*y2-x2*y1) + ... + (xn*y0-x0*yn) )double area = 0.00;for(int i = 0;i&list.size();i++){if(i&list.size()-1){Point p1 = list.get(i);//得到p1坐标对(x,y)Point p2 = list.get(i+1); //得到p2坐标对(x,y)area += p1.getX()*p2.getY() - p2.getX()*p1.getY();}else{Point pn = list.get(i);Point p0 = list.get(0);area += pn.getX()*p0.getY()- p0.getX()*pn.getY();}}area = area/2.00;}}原理如下:shapefile文件面文件也是由一个个坐标点构成的,无论是不规则凸多边形还凹多边形,都可以分成多个三角形,然后就是按一定顺序求解三角形面积了。我把网上的一个例子修改了下,加上了泛型(广泛的类型,类似int,double),点是五个,你可以在此基础上修改,读取shp文件,把坐标提取出来,然后再计算。至于求周长之类的就是把公式变成代码的过程,本人强烈建议还是用arcgis求面积比较好,
public&abstract&class&Shape{&&&&int&r=20;&&&&public&Shape(){&&&&}&&&&public&Shape(int&r){&&&&&&&&this.r=r;&&&&}&&&&public&void&length(){&&&&&&&&System.out.println(&Length:&+String.valueOf(Math.PI*r*2));&&&&}&&&&public&void&area(){&&&&&&&&System.out.println(&area:&+String.valueOf(Math.PI*r*r));&&&&}&&&&&&&&&//测试&&&&public&static&void&main(String[]&args)&{&&&&&&&&Shape&sh=new&Shape(){};&&&&&&&&sh.length();&&&&&&&&sh.area();&&&&&&&&&&&&&&&&System.out.println();&&&&&&&&&&&&&&&&Shape&sh2=new&Shape(25){};&&&&&&&&sh2.length();&&&&&&&&sh2.area();&&&&}}
为您推荐:
其他类似问题
抽象类的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。11.声明一个Shape抽象类,在此基础上派生出Rectangle和Circle类,二者都有GetArea( )函数计算对象的面积,_百度知道
11.声明一个Shape抽象类,在此基础上派生出Rectangle和Circle类,二者都有GetArea( )函数计算对象的面积,
我有更好的答案
------------ Shape.java -------------public abstract class Shape{
public abstract int getArea();}----------- Rectangle.java --------public class Rectangle extends Shape{
public Rectangle(int width, height){ this.width= this.height=}
public int getArea() { return width*}}----------- Circle.java -------------public class Circle extends Shape{ //半径 public Circle(int r){ this.r = }
public int getArea() { return Math.PI * r * }}------------- Test.java -------------public class Test{
public static void main(String[] args){
Shape rect = new Rectangle(20, 10);
System.out.println(&Rectangle(20,10) area is: & + rect.getArea());
Shape circle = new Circle(5);
System.out.println(&Circle(5) area is: & + circle.getArea());
}}满意请采纳!
我没学,有C++吗?
下次提问题时一定要注意。别人怎么知道你想要的是java的、C++的还是C#的呢?
为您推荐:
其他类似问题
抽象类的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。没有更多推荐了,
不良信息举报
举报内容:
定义一个Shape抽象类,在此基础上派生出Rectangle和Circle,二者都有GetArea()函数计算对象的面积,GetPerim()函数计算对象的周长
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有更多推荐了,
不良信息举报
举报内容:
已知一个抽象类Shapge,该类中有一个方法GetArea。 要求定义一个Rectangle类,继承Shape类,实现GetArea方法计算矩形面积。
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 final可以修饰属性吗 的文章

 

随机推荐