栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

面向对象作业

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向对象作业

1.包cs2017.vo中包含如下内容:

父类point:包括描述点坐标的私有成员x和y;对成员的set/get方法;构造方法(有参和无参两种);显示点位置(坐标)的toString方法。

Point类的子类Circle:包括描述半径的私有成员radius;对成员radius的set/get方法;构造方法(无参、1个参数、3个参数三种);方法getArea()获得面积,方法toString()输出位置和半径信息(调用父类toString)。

Point类的子类Rectangle:包括描述长和宽的私有成员l和w;对成员l和w的set/get方法;构造方法(无参、2个参数、4个参数四种);方法getArea()获得面积,方法toString()输出位置和长宽信息(调用父类toString)。

Point类:

package cs2017.vo;

public class Point {
	private double x;
	private double y;
	
	public void setX(double x) {
		this.x=x;
	}
	
	public double getX() {
		return x;
	}
	
	public void setY(double y) {
		this.y=y;
	}
	
	public double getY() {
		return y;
	}
	
	public Point() {
		
	}
	
	public Point(double x,double y) {
		this.x=x;
		this.y=y;
	}

	@Override
	public String toString() {
		return "坐标(" + x + ", " + y + ")";
	}

}

Circle类:

package cs2017.vo;

public class Circle extends Point{
	private double radius;
	
	public void setRadius(double radius) {
		this.radius=radius;
	}
	
	public double getRadius() { 
		return radius;
	}
	
	public Circle() {
		
	}
	
	public Circle(double radius) {
		this.radius=radius;
	}
	
	public Circle(double x,double y,double radius) {
		super(x, y);
		this.radius=radius;
	}
	
	public double getArea() {
		return getRadius()*getRadius()*Math.PI;
	}

	public String toString() {
		return super.toString()+ "半径为:"+radius+",面积为:"+getArea();
	}
}

Rectangle类:

package cs2017.vo;

public class Rectangle extends Point{
	private double l;
	private double w;
	
	public Rectangle() {
		
	}
	
	public Rectangle(double l,double w) {
		this.l=l;
		this.w=w;
	}
	
	public Rectangle(double x,double y,double l,double w) {
		super(x,y);
		this.l=l;
		this.w=w;
	}
	
	public void setL(double l) {
		this.l=l;
	}
	
	public double getL() {
		return l;
	}
	
	public void setW(double w) {
		this.w=w;
	}
	
	public double getW() {
		return w;
	}
	
	public double getArea() {
		return getL()*getW();
	}
	
	public String toString() {
		return super.toString()+"长为:"+l+",宽为:"+w+",面积为:"+getArea();
	}
}

2.包cs2017.v1中包含如下内容 :

父类: Shape,其中Point类对象point为Shape类的私有属性成员;写出point的set/get方法;Shape类的构造方法;toString方法;子类:Rectangle、Circle继承了Shape类,写出其相应属性的set/get方法;类的构造方法;toString方法;getArea方法。

Shape类:

package cs2017.v1;

import cs2017.vo.Point;

public class Shape {
	private Point point;
	
	public void setPoint(Point point) {
		this.point=point;
	}
	
	public Point getPoint() {
		return point;
	}
	
	public Shape() {
		
	}
	
	public Shape(Point point) {
		this.point=point;
	}
	
	public String toString() {
		return "坐标("+point.getX()+","+point.getY()+")";
	}
	
}

Circl类:

package cs2017.v1;

import cs2017.vo.Point;

public class Circle extends Shape{
	private double radius;
	
	public Circle() {
		
	}
	
	public Circle(double radius) {
		this.radius=radius;
	}
	
	public Circle(double x,double y,double radius) {
		setPoint(new Point(x, y));
		this.radius=radius;
	}
	
	public void setRadius(double radius) {
		this.radius=radius;
	}
	
	public double getradius() {
		return radius;
	}
	
	public double getArea() {
		return getradius()*getradius()*Math.PI;
	}
	
	public String toString() {
		return super.toString()+"半径为:"+radius+",面积为:"+getArea();
	}
}

Rectangle类:

package cs2017.v1;

import cs2017.vo.Point;

public class Rectangle extends Shape{
	private double l;
	private double w;
	
	public Rectangle() {
		
	}
	
	public Rectangle(double l,double w) {
		this.l=l;
		this.w=w;
	}
	
	public Rectangle(double x,double y,double l,double w) {
		setPoint(new Point(x,y));
		this.l=l;
		this.w=w;
	}
	
	public void setL(double l) {
		this.l=l;
	}
	
	public double getL() {
		return l;
	}
	
	public void setW(double w) {
		this.w=w;
	}
	
	public double getW() {
		return w;
	}
	
	public double getArea() {
		return l*w;
	}
	
	public String toString() {
		return super.toString()+"长:"+l+",宽:"+w+",面积:"+getArea();
	}
}

3.包cs2017.v2中包含如下内容:

抽象类Shape,其中Point类对象为Shape类的属性成员,方法getAera()为抽象方法,

子类:Rectangle、Circle类继承了Shape类,在子类中,重写了getAera()方法。

Shape类:

package cs2017.v2;

import cs2017.vo.Point;

public abstract class Shape {
	private Point point;
	
	public Shape() {
		
	}
	
	public Shape(Point point) {
		this.point=point;
	}
	
	public void setPoint(Point point) {
		this.point=point;
	}
	
	public Point getPoint() {
		return point;
	}
	
	public abstract double getArea();
	
	public String toString() {
		return "坐标("+point.getX()+","+point.getY()+")";
	}
}

Circle类:

package cs2017.v2;

import cs2017.vo.Point;

public class Circle extends Shape{
	private double radius;
	
	public Circle() {
		
	}
	
	public Circle(double radius) {
		this.radius=radius;
	}
	
	public Circle(double x,double y,double radius) {
		setPoint(new Point(x,y));
		this.radius=radius;
	}
	
	public void setRadius(double radius) {
		this.radius=radius;
	}
	
	public double getRadius() {
		return radius;
	}
	
	public double getArea() {
		return Math.PI*radius*radius;
	}
	
	public String toString() {
		return super.toString()+"半径为:"+radius+"面积为:"+getArea();
	}
	
}

Rectangle类:

package cs2017.v2;

import cs2017.vo.Point;

public class Rectangle extends Shape{
	private double l;
	private double w;
	
	public Rectangle() {
		
	}
	
	public Rectangle(double l,double w) {
		this.l=l;
		this.w=w;
	}
	
	public Rectangle(double x,double y,double l,double w) {
		setPoint(new Point(x,y));
		this.l=l;
		this.w=w;
	}
	
	public void setL(double l) {
		this.l=l;
	}
	
	public double getL() {
		return l;
	}
	public void setW(double w) {
		this.w=w;
	}
	
	public double getW() {
		return w;
	}
	
	public double getArea() {
		return l*w;
	}
	
	public String toString() {
		return super.toString()+"长为:"+l+",宽为:"+w;
	}
}

4.包2017.v3中包含如下内容:

接口:  Shape,接口中有getAera()和getC()两个抽象方法。

接口的实现类:  Rectangle、Circle类实现了Shape接口中的getAera()和getC()方法,Point类对象为它们的属性成员。

Shape接口:

package cs2017.v3;

public interface Shape {
	public double getArea();
	
	public double getC();
}

Circle类:

package cs2017.v3;

import cs2017.vo.Point;

public class Circle implements Shape{
	private Point point;
	private double radius;
	
	public Circle() {
		
	}
	
	public Circle(double radius) {
		this.radius=radius;
	}
	
	public Circle(double x,double y,double radius) {
		point=new Point(x,y);
	}
	
	public void setPoint(Point point) {
		this.point=point;
	}
	
	public Point getPoint() {
		return point;
	}
	
	public void setRadius(double radius) {
		this.radius=radius;
	}
	
	public double getRadius() {
		return radius;
	}
	
	public double getArea() {
		return Math.PI*getRadius()*getRadius();
	}
	
	public double getC() {
		return 2*Math.PI*getArea();
	}
	
	public String toString() {
		return "坐标("+point.getX()+","+point.getY()+")"+"半径为:"+getRadius();
	}
}

Rectangle类:

package cs2017.v3;

import cs2017.vo.Point;

public class Rectangle implements Shape{
	private Point point;
	private double l;
	private double w;
	
	public Rectangle() {
		
	}
	
	public Rectangle(double l,double w) {
		this.l=l;
		this.w=w;
	}
	
	public Rectangle(double x,double y,double l,double w) {
		point =new Point(x,y);
		this.l=l;
		this.w=w;
	}
	
	public void setPoint(Point point) {
		this.point=point;
	}
	
	public Point getPoint() {
		return point;
	}
	
	public void setL(double l) {
		this.l=l;
	}
	
	public double getL() {
		return l;
	}
	
	public void setW(double w) {
		this.w=w;
	}
	
	public double getW() {
		return w;
	}
	
	public double getArea() {
		return l*w;
	}
	
	public double getC() {
		return 2*(l+w);
	}
	
	public String toString() {
		return "坐标("+point.getX()+","+point.getY()+")"+"长为:"+l+",宽为:"+w;
	}
}

5.包 cs2017.factor中包含如下内容

    测试类:

    Test.java

    TestV1.java

    TestV2.java

    TestV3.java

分别是上述包中的类的测试示例,并使用向上转型的方法,将子类转换为父类(或接口)的对象,通过父类(或接口)对象,引用父类(或接口)定义且被重写的相关的方法。

Test类:

package cs2017.factor;

import cs2017.vo.Circle;
import cs2017.vo.Point;
import cs2017.vo.Rectangle;

public class Test {
	public static void main(String[] args) {
		Point p=new Point(2.5, 4.0);
		System.out.println(p.toString());
		
		p=new Circle(1.2, 3.5, 8);
		System.out.println(p.toString());
		
		p=new Rectangle(1.5, 2.0, 9.6, 4.2);
		System.out.println(p.toString());
	}

}

TestV1类:

package cs2017.factor;

import cs2017.v1.Circle;
import cs2017.v1.Rectangle;
import cs2017.v1.Shape;
import cs2017.vo.Point;

public class TestV1 {
	public static void main(String[] args) {
		Point p=new Point(4.5, 6.2);
		Shape s=new Shape(p);
		System.out.println(s.toString());
		
		s=new Circle(2.5, 6.0, 5);
		System.out.println(s.toString());
		
		s=new Rectangle(1.6, 5.0, 9.6, 6);
		System.out.println(s.toString());
		
		p=s.getPoint();
		System.out.println(p.toString());
	}
}

TestV2类:

package cs2017.factor;

import cs2017.v2.Shape;
import cs2017.v2.Circle;
import cs2017.v2.Rectangle;

public class TestV2 {
	public static void main(String[] args) {
		Shape s=new Circle(3.0, 4.5, 6);
		System.out.println(s.toString()+",面积为:"+s.getArea());
		s=new Rectangle(3.8, 2, 12, 4);
		System.out.println(s.toString()+",面积为:"+s.getArea());
	}
}

TestV3类:

package cs2017.factor;

import cs2017.v3.Rectangle;
import cs2017.v3.Circle;
import cs2017.v3.Shape;

public class TestV3 {
	public static void main(String[] args) {
		Shape s=new Circle(5, 8, 9);
		System.out.println(s.toString()+",面积为:"+s.getArea()+",周长为:"+s.getC());
		s=new Rectangle(3, 6, 20, 11);
		System.out.println(s.toString()+",面积为:"+s.getArea()+",周长为:"+s.getC());
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000178.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号