Java创建Shape类

要求

  1. 定义基类Shape:

变量:name,静态变量:fatherName = “Shape”

方法: get(),set()方法;构造方法。

输出当前对象详细信息的方法printInfo();

静态方法:getFatherName(),setFatherName()

2.定义圆形类Circle,继承基类Shape:

变量:半径radius

常量:圆周率PI

方法:求周长perimeter(),求面积area();构造方法。

重写基类方法printInfo(),使之输出圆对象信息。

3.定义矩形类Rectangle,继承基类Shape:

变量:长length,宽width

方法:求周长perimeter(),求面积area();构造方法。

当对象是正方形的时候,perimeter(),area()进行方法重载

重写基类方法printInfo(),使之输出矩形对象信息。

4.创建测试类ShapeTester, 在main方法中:

(1)创建Circle类对象,

调用printInfo()输出详细信息;

调用getFatherName()输出信息;

调用setFatherName()方法,更改fatherName值为“newShape”。

(2)创建Rectangle类对象:长方形

调用printInfo()输出详细信息;

调用其父类的printInfo()输出详细信息;

调用getFatherName()输出信息,在结果中分析输出值的变化原因。

(3)创建Rectangle类对象:正方形

 调用printInfo()输出详细信息。

建立的Shape包

package Shape;

public abstract class Shape { 
	//基类Shape的定义
	public String name;//变量name
	public static String fatherName = "shape" ;//静态变量fatherName = “Shape”
	final static double PI =3.14;//终结变量
	
	public static String getFatherName() {
		return fatherName;
	}
	
	public  void printInfo() {
		System.out.println("\n这是父类的printINfo");
		}
	
	public void setFatherName(String FatherName) {
		fatherName = FatherName;
	}
	
}
package Shape;

public class Circle extends Shape {
	
	private static double radius ;	
	
	//圆形方法
	public Circle(double initRadius) {
		radius = initRadius;
	}
	
	public static double getRadius() {
		return radius;
	}
	
	public static  void setRadius(double newRadius) {
		radius = newRadius;
	}
			
	//圆形周长方法
	public static double perimeter() {
		return (2*PI*radius);
	}
	
	//圆形面积方法
	public static double area() {
		return (PI*radius*radius);
	}
	
	//圆形printInfo()方法
	public  void printInfo() {
		System.out.printf("圆形周长是"+perimeter()+
    			"圆形面积是"+"%.2f",area());
	}
	
}
package Shape;

public class Rectangle extends Shape {
	private static float length;
	private static float width;
	public Rectangle() {//默认无参方法
		this(0,0);
	}
	
	//长方形方法,参数有2,为长和宽
	public Rectangle(float initLength, float initWidth) {
		length = initLength;
		width  = initWidth;
	}
	
	//正方形方法,参数有1,为边长
	public Rectangle(float initLength2) {
		length = initLength2;
	}
			

	public double getLength() {
		return length;
	}
	
	public  static void setLength(float newLength) {
		length = newLength;
	}
	
	public double getWidth() {
		return length;
	}
	
	public  static void setWidth(float newWidth) {
		width = newWidth;
	}
	
	//长方形的周长方法
	public static double perimeter() {
		return (2*length+2*width);
	}
	
	//长方形的面积方法
	public static double area() {
		return (length*width);
	}
	
	//正方形边长方法
	public static double perimeter(float initLength2) {
		return (4* initLength2);
	}
	
	//正方形面积方法
	public static double area(float initLength2) {
		return ( initLength2* initLength2);
	}

	//长方形printInfo()方法
	public void printInfo() {
		System.out.printf("长方形的周长是"+perimeter()+
    			"长方形面积是"+area());
		super.printInfo();
	}
	
	//正方形printInfo()方法
	public static void printInfo(float initLength2) {
		System.out.println("正方形的周长是"+perimeter( initLength2)+
    			"正方形面积是"+area(initLength2));
			
	}
	
}
package Shape;

//scanner方法需要的头文件
import java.util.Scanner;

public class ShapeTester {
	
	@SuppressWarnings({ "resource", "unused", "static-access" })
	public static void main(String[] args) {	

		while(true) {
	        //创建键盘录入对象
	        Scanner in=new Scanner(System.in);
	        System.out.println("欢迎使用Shape系统!\n"
	        		        + "------\n"
	        		        + "1.圆形\n"
	        		        + "2.长方形\n"
	        		        + "3.正方形\n"
	        		        + "4.退出\n"
	        		        + "------\n"
	        		        + "请选择服务:");
	        
	        //读取int类型值,进入Switch Case语句;
			int number=in.nextInt();
			switch(number) {
			    case 1:
			    	try {
			    	//从键盘输入圆的半径
			    	System.out.print("请输入圆形半径:");
			    	double newRadius = in.nextDouble();
			    		
			    	//创建Circle对象;
			    	Circle c =new Circle (newRadius);
			    	//通过调用printInfo()输出详细信息;
			    	c.printInfo();
			    	
			    	//调用getFatherName()输出信息;
			    	System.out.println("\n这是一个"+c.fatherName);
			    	
			    	//以键盘输入的方式更改fatherName值为“newShape”。
			    	System.out.println("请输入要改的父类名:");
			    	String initname = in.next();
			    	//调用setFatherName()方法,为fatherName赋值;
			    	c.setFatherName(initname);
			    	System.out.println("这是一个"+c.fatherName);
			    	}catch (java.util.InputMismatchException e) {
						System.out.println("输入错误,请重新输入");
					}
			    	break;
			    	
			    case 2:
			    	try {
			    	//从键盘输入长方形的长;
			    	System.out.print("请输入长方形长:");
			    	float newLength = in.nextFloat();
			    	//从键盘输入长方形的宽;
			    	System.out.print("请输入长方形宽:");
			    	float newWidth = in.nextFloat();
			    	//创建Rectangle类对象:长方形;
			    	Rectangle rec = new Rectangle(newLength,newWidth);
			    	//通过调用printInfo()输出详细信息;
			    	rec.printInfo();
			    	}catch (java.util.InputMismatchException e) {
						System.out.println("输入错误,请重新输入");
					}
			    	break;  
			    	
			    case 3:
			    	try {
			    	//从键盘输入正方形的边长;
			    	System.out.print("请输入正方形边长:");
			    	float newLength2 = in.nextFloat();
			    	//创建Rectangle类对象:正方形
			    	Rectangle squ = new Rectangle(newLength2);
			    	//调用printInfo()输出详细信息。
			    	Rectangle.printInfo(newLength2);
			        }catch (java.util.InputMismatchException e) {
				    System.out.println("输入错误,请重新输入");
			        }
			    	break;
			    	
			    case 4:
			    	System.out.print("已退出");
			    	System.exit(0);
			}
	    }
	}
}

 

 

 

初写java,请各位指正。

  • 12
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值