定义一个矩形和点的位置,判断点是否在矩形里面

25.按要求编写一个Java应用程序:

(1)编写一个矩形类Rect,包含:

两个属性:矩形的宽width;矩形的高height。

两个构造方法:

1.一个带有两个参数的构造方法,用于将width和height属性初化;

2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。

两个方法:

求矩形面积的方法area()

求矩形周长的方法perimeter()

(2)通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用

矩形的左上角坐标来标识,包含:

添加两个属性:矩形左上角坐标startX和startY。

两个构造方法:

带4个参数的构造方法,用于对startX、startY、width和height属性

初始化;

不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0

的矩形;

添加一个方法:

判断某个点是否在矩形内部的方法isInside(double x,double y)。如在矩

形内,返回true, 否则,返回false。

提示:点在矩形类是指满足条件:

x>=startX&&x<=(startX+width)&&y<startY&&y>=(startY-height)

(3)编写PlainRect类的测试程序

创建一个左上角坐标为(10,10),长为20,宽为10的矩形对象;

计算并打印输出矩形的面积和周长;

判断点(25.5,13)是否在矩形内,并打印输出相关信息。

package zuoye;

public class Rect {
	//属性
	double width;
	double height;

	//有参的构造方法
	public  Rect(double width,double height)
	{
		this.width=width;
		this.height=height;
	}
	public Rect()
	{
		this.width=10;
		this.height=10;
	}

	//自定义成员方法      面积
    public double area(){
        double area;
        area=width*height;
        return area;
    }
    //周长
    public double perimeter(){
        double perimeter;
        perimeter=(width+height)*2;
        return perimeter;
    }

    //通过属性生成的get,set成员方法
	public double getWidth() {
		return width;
	}
	public void setWidth(double width) {
		this.width = width;
	}
	public double getHeight() {
		return height;
	}
	public void setHeight(double height) {
		this.height = height;
	}

}

  

package zuoye;

public class PlainRect extends Rect {

	private int startX;
	private int startY;

	//有参的构造方法
	public PlainRect(int startX,int startY,double width,double height)
	{
		this.startX=startX;
		this.startY=startY;
		this.width=width;
		this.height=height;
	}
	public PlainRect(double startX,double startY)
	{

		System.out.println("这个点的坐标是x="+startX+"y="+startY);
	}
	//无参的构造方法
	public PlainRect()
	{
		this.startX=0;
		this.startY=0;
		this.width=0;
		this.height=0;
	}
	//成员方法

	//判断是否在矩形内部
	public boolean isInside(double x,double y)
	{
		if(x>=startX&&x<=(startX+width)&&y<startY&&y>=(startY-height))
		{
			return true;
		}
		else
		{
			return false;
		}
	}

}

  

package zuoye;

public class Ceshi_PlainRect {

	public static void main(String[] args) {
		//通过PlainRect中有参的构造方法创建矩形
		PlainRect pr=new PlainRect(10,10,10,20);
		//调用父类中的面积方法
		System.out.println("10x20的矩形面积="+pr.area());
		//周长
		System.out.println("10x20的矩形周长="+pr.perimeter());

		//定义一个点的的坐标
		PlainRect pr1=new PlainRect(25.5,13);

		//判断点的坐标
		if(pr.isInside(25.5, 13)==true)
		{
			System.out.println("这个点在矩形内");
		}

		else
		{
			System.out.println("不在矩形内");
		}

	}

}

  

时间: 2024-12-21 17:19:34

定义一个矩形和点的位置,判断点是否在矩形里面的相关文章

定义一个函数,输入字符串,判断是否是IP地址,输出布尔值。以及测试用例编写。

1.需求:输入字符串,如果是IP地址,输出True,如果不是,则输出False.定义一个函数,及编写测试这个函数的测试用例. 2.思路: 1)先确认IP的格式:(0~255).(0~255).(0~255).(0~255) 2) import redef judge_legal_ip(input): p = re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$') if re.match(p

定义一个由整数组成的数组,然后输入一个整数X,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j

//定义一个由整数组成的数组,然后输入一个整数x,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j: //若X在此数组中,则返回数组中这个数的位置. 源代码: #include<iostream> using namespace std; void main() { int array[]={1,2,3,4,5,6,7,89,45,32,56,78,12,43,90,19};//16个数字 int x; int max=array[0]; int min=array[0]

#定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型。其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数)。

1 #定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型.其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数). 2 def get_num(num): 3 if type(num)!= list: 4 return '您传入的不是列表!' 5 else: 6 for i in num: 7 if not isinstance(i,int): 8 return '请全部传入整数!' 9 return list(filter(lambda x:x

JavaSE8基础 成员内部类 在成员位置定义一个内部类

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: //内部类 就是在一个类的内部在定义一个类 //外部类 class TestOuter { //在成员位置定义一个内部类,即成员内部类 private class TestInner { public void showInner() { System.out.println("hello world&quo

在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

//在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’:输出这个数组中的所有元素. char [][]y=new char [10][10]; for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { if(i==j||i+j==9) { y[i][j]='*'; } else { y[i][j]='#'; } } } for(int i =0;i<10;i++) { for(int k

黑马基础阶段测试题:定义一个int类型的数组,数组中元素为{5,7,3,9,4}。求出数组中的最小值,并判断最小值是否为偶数,如果是偶数则输出“最小值为偶数”,如果不是偶数则输出“最小值为奇数”。打印如下:

package com.swift; import java.util.Arrays; public class ArrayTest { public static void main(String[] args) { /* * 定义一个int类型的数组,数组中元素为{5,7,3,9,4}. * 求出数组中的最小值,并判断最小值是否为偶数,如果是偶数则输出"最小值为偶数",如果不是偶数则输出"最小值为奇数".打印如下 */ int arr[]= {5,7,3,9,4

1.16创建矩形类,长和宽作为类的属性,在构造方法中初始化,定义一个成员方法求矩形的面积。

1 public class JuXing { 2 //属性 成员变量 3 4 double Chang; 5 6 double Kuan; 7 8 9 //方法 10 11 double MianJi(){ 12 13 14 return Chang*Kuan; 15 16 } 17 18 19 JuXing(double a,double b){ 20 21 Chang = a; 22 Kuan = b; 23 } 24 25 public static void main(String[]

《Python cookbook》 “定义一个属性可由用户修改的装饰器” 笔记

看<Python cookbook>的时候,第9.5部分,"定义一个属性可由用户修改的装饰器",有个装饰器理解起来花了一些时间,做个笔记免得二刷这本书的时候忘了 完整代码:https://github.com/blackmatrix7/python-learning/blob/master/python_cookbook/chapter_9/section_5/attach_wrapper.py 书中的装饰器(书中称之为访问器函数) def attach_wrapper(o

如何用python的装饰器定义一个像C++一样的强类型函数

Python作为一个动态的脚本语言,其函数在定义时是不需要指出参数的类型,也不需要指出函数是否有返回值.本文将介绍如何使用python的装饰器来定义一个像C++那样的强类型函数.接下去,先介绍python3中关于函数的定义. 0. python3中的函数定义 举个例子来说吧,比如如下的函数定义: 1 def fun(a:int, b=1, *c, d, e=2, **f) -> str: 2 pass 这里主要是说几点与python2中不同的点. 1)分号后面表示参数的annotation,这个