继承—矩形

 1 package jicheng;
 2 
 3 public class Rect {
 4     /*
 5      * 25.按要求编写一个Java应用程序: (1)编写一个矩形类Rect,包含:
 6      * 两个protected属性:矩形的宽width;矩形的高height。 两个构造方法:
 7      * 1.一个带有两个参数的构造方法,用于将width和height属性初化;
 8      *  2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。 两个方法:
 9      * 求矩形面积的方法area() 求矩形周长的方法perimeter()
10      */
11     double width;
12     double height;
13     double area;
14     double perimeter;
15     public Rect(double width,double height)
16     {
17         this.width=width;
18         this.height=height;
19     }
20     public Rect()
21     {
22         double width=10;
23         double height=10;
24     }
25     public void area(double width,double height)
26     {
27         area=width*height;
28         System.out.println("矩形的面积为:"+area);
29     }
30     public void perimeter(double width,double height)
31     {
32         perimeter=(width+height)*2;
33         System.out.println("矩形的周长为:"+perimeter);
34     }
35 }
 1 package jicheng;
 2 
 3 public class PlainRect extends Rect {
 4     /*
 5      * (2)通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用 矩形的左上角坐标来标识,
 6      * 包含:添加两个属性:矩形左上角坐标startX和startY。 两个构造方法:
 7      * 带4个参数的构造方法,用于对startX、startY、width和height属性 初始化;
 8      * 不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0 的矩形; 添加一个方法: 判断某个点是否在矩形内部的方法isInside(double
 9      * x,double y)。如在矩 形内,返回true, 否则,返回false。 提示:点在矩形类是指满足条件:
10      * x>=startX&&x<=(startX+width)&&y<startY&&y>=(startY-height)
11      * (3)编写PlainRect类的测试程序 创建一个左上角坐标为(10,10),长为20,宽为10的矩形对象;
12      *  计算并打印输出矩形的面积和周长;
13      * 判断点(25.5,13)是否在矩形内,并打印输出相关信息。
14      */
15     private double startX;
16     private double startY;
17 
18     public double getStartX() {
19         return startX;
20     }
21     public void setStartX(double startX) {
22         this.startX = startX;
23     }
24     public double getStartY() {
25         return startY;
26     }
27     public void setStartY(double startY) {
28         this.startY = startY;
29     }
30     public PlainRect(double startX, double startY, double width, double height) {
31         this.startX = startX;
32         this.startY=startY;
33         this.width=width;
34         this.height=height;
35     }
36     public PlainRect()
37     {
38         startX=0;
39         startY=0;
40         width=0;
41         height=0;
42     }
43     public void isInside(double x,double y){
44         if(x>=startX&&x<=(startX+width)&&y<startY&&y>=(startY-height))
45         {
46             System.out.println(true);
47         }
48         else
49         {
50             System.out.println(false);
51         }
52     }
53     public static void main(String[] args) {
54         // TODO 自动生成的方法存根
55 
56         PlainRect pr=new PlainRect();
57         pr.setStartX(10);
58         pr.setStartY(10);
59         pr.width=20;
60         pr.height=10;
61         pr.area(20, 10);
62         pr.perimeter(20, 10);
63         pr.isInside(25.5, 13);
64     }
65 
66 }

原文地址:https://www.cnblogs.com/yg6405816/p/5521554.html