计算长方形的周长和面积(类和对象java)

本文介绍了一个简单的Java程序,通过定义长方形类Rect来计算并输出长方形的周长和面积。支持输入正方形边长及长方形的长和宽,并能处理负数输入的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算长方形的周长和面积(类和对象)

Time Limit: 1000MS  Memory Limit: 65536KB
Problem Description
设计一个长方形类Rect,计算长方形的周长与面积。
成员变量:整型、私有的数据成员length(长)、width(宽);
构造方法如下:
(1)Rect(int length) —— 1个整数表示正方形的边长
(2)Rect(int length, int width)——2个整数分别表示长方形长和宽
成员方法:包含求面积和周长。(可适当添加其他方法)
要求:编写主函数,对Rect类进行测试,输出每个长方形的长、宽、周长和面积。
Input
 输入多组数据;
一行中若有1个整数,表示正方形的边长;
一行中若有2个整数(中间用空格间隔),表示长方形的长度、宽度。
若输入数据中有负数,则不表示任何图形,长、宽均为0。
Output
 每行测试数据对应一行输出,格式为:(数据之间有1个空格)
长度 宽度 周长 面积
Example Input
1
2 3
4 5
2
-2
-2 -3
Example Output
1 1 4 1
2 3 10 6
4 5 18 20
2 2 8 4
0 0 0 0
0 0 0 0
Hint
 用java写的一个很简单类,用作练手
import java.util.*;
import java.lang.*;

public class Main {
	private static Scanner in;

	public static void main(String[] args) {
		in = new Scanner(System.in);
		while(true){
			String s = in.nextLine();
			String[] a = s.split(" ");
			int b[] = new int [2];
			for(int i=0; i<a.length; ++i){
				b[i] = Integer.parseInt(a[i]);
			}
			if(a.length == 1){
				Rect R1 = new Rect(b[0]);
				System.out.println(R1.getlength() + " " + R1.getwidth() + " " + R1.sslen() + " " + R1.sarea());
			}
			else{
				Rect R2 = new Rect(b[0], b[1]);
				System.out.println(R2.getlength() + " " + R2.getwidth() + " " + R2.sslen() + " " + R2.sarea());
			}
		}
	}
}

class Rect{
	private int length, width;
	public Rect(int length){
		if(length < 0)
			this.length = 0;
		else
			this.length = length;
		this.width = this.length;
	}
	public Rect(int length, int width){
		if(length < 0 || width < 0){
			this.length = 0;
			this.width = 0;
			return;
		}
		this.length = length;
		this.width = width;
	}
	public int sarea(){
		if(width == 0)
			return length * length;
		return width * length;
	}
	public int sslen(){
		if(width == 0)
			return 4 * length;
		return 2 * (length + width);
	}
	public int getlength(){
		return length;
	}
	public int getwidth(){
		return width;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西杭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值