JAVA面向对象程序设计实验

实验2面向对象程序设计(6学时)
实验目的与要求:掌握类的封装方法,学会基本的面向对象程序设计方法,掌握继承和多态、抽象类和接口等重要技术。
实验内容:利用面向对象的程序设计方法,设计一个图形面积“计算器”,希望计算器可以计算许多图形的面积。要求如下:
(1)编写抽象类Shape
Shape抽象类有2个抽象方法getArea()和getShapeName(),即要求各种具体的图形给出自己的面积和名称。
(2)编写计算器类CalculatedArea
该类有一个showArea(Shape  shape)方法,该方法的参数是Shape类型。即参数shape可以调用Shape的子类重写的getArea()方法计算具体图形的面积、调用子类重写的getShapelName()方法显示图形的名称。
(3)编写Shape类的子类:Rect,Triangle等类。
(4)编写检测类,验证程序的功能。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

import java.util.Scanner;

public class Test {
	public static void main1(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("注册一个账户 请首先设置你的账户名");
		String a = sc.next();
		a = a.trim();
		System.out.println("请注册一个长度7到16位的密码");
		int xunhuan = 3;
		String p="";
		while (xunhuan >= 0) {
			p = sc.next(); // 想调用这个输入的数据 到循环外
			int changdu = p.length();// 获取密码的长度
			if (changdu >= 7 && changdu <= 16) {
				System.out.println("正确复合规范");
				break;
			} else {
				System.out.println("密码不符合规范");
				if (xunhuan == 0) {
					System.out.println("终止");
					return;
				}
				System.out.println("你还有" + xunhuan + "重新输入的机会");
				xunhuan--;
			}

		}
		System.out.println("请输入你之前注册账户名");
		String c = sc.next();
		if (a.equals(c)) {
			System.out.println("查询有此账户名" + "\t");
			System.out.print("请输入密码");
		} else {
			System.out.println("无此账户");
			return;
		}
		String d = sc.next();
		if (p.equals(d)) { // 在编译的软件报错 无法调用

		}

	}

	public static void main(String[] args) {

		Shape circle = new Circle(5.6);
		System.out.println("圆的面积:" + circle.getArea());
		System.out.println("圆的周长:" + circle.getPerimeter());
		
		Shape rect = new Rectangle(6.1,6.3);
		System.out.println("矩形的面积:" + rect.getArea());
		System.out.println("矩形的周长:" + rect.getPerimeter());
	}

}
interface Shape{
	double getArea();
	double getPerimeter();
}

class Circle implements Shape{

	double radius; //半径
	public Circle() {}
	public Circle(double radius) {
		this.radius = radius;
	}
	@Override
	public double getArea() {
		return 3.14*radius*radius;
	}

	@Override
	public double getPerimeter() {
		return 2*radius*3.14;
	}
}
class Rectangle implements Shape{

	private double height;
	private double width;
	public Rectangle() {}
	public Rectangle(double height,double width) {
		this.height = height;
		this.width = width;
	}
	@Override
	public double getArea() {
		return width*height;
	}

	@Override
	public double getPerimeter() {
		return 2*height*width;
	}
	
}