Java_接口练习题

news/2024/7/20 2:15:16 标签: 小程序, 前端, java

 

 设有图形,矩形,立方体,圆,圆柱,根据自己的理解,给出它们之间的关系。

要求:

1、每种图形都有计算面积、周长、显示信息、获取图形名称的方法。

2、设计一个主方法,其功能是求n个图形(是表中图形个数的任意组合)的面积之和,运行界面如图

3、设计程序时,可以设计接口,抽象类,子类,等有关的内容,并要体现使用抽象类或者接口有什么优点?

ICalculate:

java">package ch11_03;

public interface ICalculate {
	
	
	public double getArea();
	public void javaOut();

}

ChangFangTi:

java">package ch11_03_02;

import ch11_03.ICalculate;

public class ChangFangTi implements ICalculate {
	
	private double c;//长
	private double k;//宽
	private double g;//高
	
	

	public ChangFangTi(double c, double k, double g) {
		this.c = c;
		this.k = k;
		this.g = g;
	}
	

	@Override
	public double getArea() {
		return (c*k+k*g+g+c)*2;
	}

	@Override
	public void javaOut() {
		System.out.println("长方体信息:长="+c+"  宽="+k+"  高="+g+"  面积="+getArea());

	}

}

JvXing:

java">package ch11_03_02;

import ch11_03.ICalculate;

public class JvXing implements ICalculate {
	
	private double c;//长
	private double k;//宽	
	
	

	public JvXing(double c, double k) {
	
		this.c = c;
		this.k = k;

	}

	@Override
	public double getArea() {
		return c*k;
	}

	@Override
	public void javaOut() {
		System.out.println("矩形信息:长="+c+"  宽="+k+"  面积="+getArea());

	}

}

Test:

java">package ch11_03_02;

import java.util.Scanner;

//import ch11_03.ICalculate;

public class Test {
	
	public static void show() {
		System.out.println("1.创建一个圆");
		System.out.println("2.创建一个矩形");
		System.out.println("3.创建一个长方体");
		System.out.println("4.创建一个圆柱体");
		System.out.println("5.显示已经创建的图形");
		System.out.println("6.求各图形的面积之和");
		System.out.println("7.退出系统");
		
	}
	
	public static void main(String[] args) {
		System.out.println("***图形类对象的管理***");
		System.out.println("-----------------");
		System.out.println("1.创建一个圆");
		System.out.println("2.创建一个矩形");
		System.out.println("3.创建一个长方体");
		System.out.println("4.创建一个圆柱体");
		System.out.println("5.显示已经创建的图形");
		System.out.println("6.求各图形的面积之和");
		System.out.println("7.退出系统");
		Scanner cin = new Scanner(System.in);
		double sum = 0;
		int m1=0;
		int a = 0;
		int b = 0;
		int d = 0;
		int p = 0;
		while(m1!=7) {
			m1=cin.nextInt();
			switch(m1) {
			case 1:
				double r;				
				System.out.println("请输入半径:");
				r=cin.nextDouble();
				Yuan y = new Yuan(r);
				sum += y.getArea();
				y.javaOut();
				a += 1;
				show();
				break;
			case 2:
				double c,k;
				System.out.println("请分别输入长和宽:");
				c = cin.nextDouble();
				k = cin.nextDouble();
				JvXing jx = new JvXing(c, k);
				sum += jx.getArea();
				jx.javaOut();
				b += 1;
				show();
				break;
			case 3: 
				double c1,k1,g1;
				System.out.println("请分别输入长宽高:");
				c1 = cin.nextDouble();
				k1 = cin.nextDouble();
				g1 = cin.nextDouble();
				ChangFangTi cft = new ChangFangTi(c1, k1, g1);
				sum += cft.getArea();
				cft.javaOut();
				d += 1;
				show();
				break;
			case 4: 
				double r1,h1;				
				System.out.println("请分别输入半径和高:");
				r1 = cin.nextDouble();
				h1 = cin.nextDouble();
				YuanZhuTi yzt = new YuanZhuTi(r1, h1);
				sum += yzt.getArea();
				yzt.javaOut();
				p += 1;
				show();
				break;
			case 5: 
				System.out.println("创建了"+a+"个圆形");
				System.out.println("创建了"+b+"个矩形");
				System.out.println("创建了"+d+"个长方体");
				System.out.println("创建了"+p+"个圆柱体");
				show();
				break;
			case 6:
				System.out.println("各图形面积之和="+sum);
				show();
				break;
			case 7:
				break;
			
			}
		}cin.close();
	}

	
}

Yuan:

java">package ch11_03_02;

import ch11_03.ICalculate;

public class Yuan implements ICalculate {
	
	private double r;
	public Yuan(double r) {
		this.r =r;
	}

	@Override
	public double getArea() {
		return Math.PI*r*r;
	}

	@Override
	public void javaOut() {
		System.out.println("圆信息:半径="+r+"  面积="+getArea());

	}

}

YuanZhuTi: 

java">package ch11_03_02;

import ch11_03.ICalculate;

public class YuanZhuTi implements ICalculate {
	
	private double r;//半径
	private double h;//高
	
	

	public YuanZhuTi(double r, double h) {
		this.r = r;
		this.h = h;
	}

	@Override
	public double getArea() {
		return Math.PI*r*r*2+2*Math.PI*h;
	}

	@Override
	public void javaOut() {
		System.out.println("圆柱体信息:半径="+r+"  高="+h+"  面积="+getArea());

	}

}


http://www.niftyadmin.cn/n/946908.html

相关文章

package、folder和source folder的区别

前言:我使用的是Eclipse,因此示例都是以这个IDE进行演示,其他IDE应该是类同的。package、folder和source folder本质都是文件夹,只不过是处理方式不同的文件夹。 首先我们说明一下最简单的folder,通过名字我们也可以理…

ToDesk远程控制

实现远程控制有多简单? https://www.todesk.com/download.htmlhttps://www.todesk.com/download.htmlhttps://www.todesk.com/download.html 电脑浏览器打开 ToDesk远程软件 下载 - Windows 精简版 - 打开 - 复制或拍照《 设备代码、连接密码 》 发给控制人员 …

Maven学习笔记之仓库

一、简介 在Maven世界中,任何依赖、插件或者项目的构建的输出,都可以称为构件。任何一个构件都有一组坐标进行唯一标识。由于Maven的坐标机制,任何Maven项目使用任何一个构件的方式都是完全相同的。在此基础上,Maven可以在某个位置…

Java_抽象类练习题

设有图形,矩形,立方体,圆,圆柱,根据自己的理解,给出它们之间的关系。 要求: 1、每种图形都有计算面积、周长、显示信息、获取图形名称的方法。 2、设计一个主方法,其功能是求n个图…

离散数学_图论

开篇: 图论是一门很有实用价值的学科,它在自然科学、社会科学等各领域均有很多应用。自上世纪中叶以来,它受计算机科学蓬勃发展的刺激,发展极其迅速,应用范围不断拓广,已渗透到诸如语言学、逻辑学、物理学…

Maven学习笔记之生命周期和插件

前言:在有关Maven的日期使用中,命令行的输入往往就对应了生命周期。Maven的生命周期是抽象的,其实际行动都由插件来完成。 一、简介 Maven的声明周期就是为了对所有的构建过程进行抽象和统一。Maven从大量项目和构建工具中学习和反思&#x…

Java_三种注释方法

1.单行注释 // 2.多行注释 /* */ 3.文档注释 /** */ 《Clean Code》这本书明确指出 代码的注释不是越详细越好。实际上好的代码本身就是注释,我们要尽量规范和美化自己的代码来减少不必要的注释。 若编程语言足够有表达力,就…

全局、局部、静态 和 实例 变量的区别

一、预备知识 虚拟机的存储机制: 栈:用来存放基本类型的变量数据和对象的引用,这部分是虚拟机自动分配和管理的。堆:存放所有new出来的对象。栈中存放对象的引用,堆中存放对象。常量池:存放字符串常量和基…