java程序运行图形_java编程 要用到继承的方法图形计算器项目: 实现一个图形计算器,程序运行后显示界面:请选择图形: 1 圆 2 矩形...
共回答了12个问题采纳率:91.7%
代码如下。输入参数和计算结果都为整数。具体类型请自行修改。import java.util.Scanner;
public class Test {
public static void main(String [] args){
while(true){
Shape shape = showMenu();
System.out.println("所选图形的周长为:"+shape.getRound());
System.out.println("所选图形的面积为:"+shape.getArea());
shape = null;
}
}
public static Shape showMenu(){
Shape shape = null;
System.out.println("请选择图形:");
System.out.println("1 圆2 矩形3 三角形9 退出");
int option = Shape.getInput();
switch (option) {
case 1:
shape = new Circle();
break;
case 2:
shape = new Rectangle();
break;
case 3:
shape = new Triangle();
break;
case 9:
System.out.println("系统退出!");
System.exit(0);
break;
default:
System.out.println("选项不存在");
shape = showMenu();
break;
}
return shape;
}
}
abstract class Shape{
/**
* 给图形的参数赋值。
* @param sc
*/
abstract void getParam();
/**
* 获取周长
* @return
*/
abstract int getRound();
/**
* 获取面积
* @return
*/
abstract int getArea();
/**
* 获取输入的参数
* @param sc
* @return
*/
public static int getInput(){
int x = Integer.MIN_VALUE;
try{
x = new Scanner(System.in).nextInt();
if(x < 0){
throw new Exception();
}
} catch (Exception e){
System.out.println("输入错误,请重新输入");
x = getInput();
}
return x;
}
}
//矩形
class Rectangle extends Shape{
private int side1;
private int side2;
public Rectangle(){
getParam();
}
void getParam(){
System.out.println("第一条边:");
this.side1 =getInput();
System.out.println("第二条边:");
this.side2 =getInput();
};
int getRound(){
return 2*(side1+side2);
}
int getArea(){
return side1*side2;
}
}
//圆形
class Circle extends Shape{
private int r;
public Circle(){
getParam();
}
void getParam(){
System.out.println("请输入半径:");
this .r = getInput();
}
int getRound(){
return (int) (2*Math.PI*r);
}
int getArea(){
return (int) (Math.PI*r*r);
}
}
//三角形
class Triangle extends Shape{
private int side1;
private int side2;
private int side3;
public Triangle(){
getParam();
}
void getParam(){
System.out.println("第一条边:");
this.side1 = getInput();
System.out.println("第二条边:");
this.side2 = getInput();
System.out.println("第三条边:");
this.side3 = getInput();
if(!isTriangle()){
System.out.println("无法构成三角形,请重新输入");
getParam();
}
}
int getRound(){
return side1+side2+side3;
}
int getArea(){
System.out.println("三角形面积计算稍显复杂,请自行写代码。");
return 0;
}
private boolean isTriangle(){ //根据两边之和大于第三边判断是否能构成三角形
return side1+side2>side3&&side1+side3>side2&&side2+side3>side1;
}
}
1年前
8
java程序运行图形_java编程 要用到继承的方法图形计算器项目: 实现一个图形计算器,程序运行后显示界面:请选择图形: 1 圆 2 矩形...相关推荐
- java 运行异常处理_Java编程异常处理和I/O流
重点: 1.在编写程序时,要正确地使用捕获例外和声明抛出异常的两种例外处理的方法. 2.遇到实际问题时,要根据需要正确使用各种输入/输出流,特别是对中文使用适当的字符输入流. 3.正确使用对象串行化的 ...
- java 为什么违例差错控制_JAVA编程思想学习 — 第九章 (违例差错控制)
1.违例自变量 和 Java 的其他任何对象一样, 需要用 new 在内存堆里创建违例,并需调用一个构建器.在所有标准违例中,存在着两个构建器: 第一个是默认构建器,第二个则需使用一个字串自变量,使我 ...
- java标签组件命名_java编程规范之java命名规范
想要成为一个优秀的程序员,首先要培养良好的编程习惯,为了提高代码的可读性,必须有好的命名规范. 这篇文章是小编结合网上的很多资料整理出来的,若有不当或错误的地方,欢迎大家指正 在文章开始前,为方便阅读 ...
- java 延时发送邮件_java编程实现邮件定时发送的方法
本文实例讲述了java编程实现邮件定时发送的方法.分享给大家供大家参考,具体如下: 最近做项目时客户提出了一个需求:系统定时发送E-mail到其客户,达到通知的效果.先将实例分享给大家,如果确实有一些 ...
- java猜字母游戏_JAVA编程题-用java编写猜字母游戏
原标题:JAVA编程题-用java编写猜字母游戏 问题: 猜字母游戏,其游戏规则为: 程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统 ...
- java编程获取屏幕分辨率_Java编程获取当前屏幕分辨率的方法示例
本文实例讲述了Java编程获取当前屏幕分辨率的方法.分享给大家供大家参考,具体如下: /** * This class implements the functionality of fetching ...
- 圆周率 java编程_Java编程中实现计算圆周率的方法
想在JAVA编程中实现计算圆周率其实挺简单的,下面我们就来介绍2种Java编程中实现计算圆周率的方法,一起来了解下其中的详情吧. 方法一:割圆法 计算公式为: π≈3*2^n*y_n 其中,n代表割圆 ...
- java 网络通讯_JAVA编程实现TCP网络通讯的方法示例
本文实例讲述了JAVA编程实现TCP网络通讯的方法.分享给大家供大家参考,具体如下: TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字 ...
- java 抽象封装多态_java面向对象(封装,继承,多态,抽象,接口的定义和实现)...
1.封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定 ...
最新文章
- R语言因子分析FA(factor analysis)步骤实战
- 创建Cocos2d-x 3.x项目以及项目结构简要说明
- linux 命令篇 -- 新建用户
- m_Orchestrate learning system---九、在无法保证是否有图片的情况下,如何保证页面格式...
- ERP选型技巧之“三不要一要”
- ffplay.c学习-6-⾳视频同步基础
- 腾讯云黑石TStack一体机柜斩获2019数博会领先科技成果双重“优秀项目奖”
- 【Vegas2010】cnblogs(博客园)排名原来是这样算的~
- 在Windows下不使用密码远程登陆Linux
- PG13用pg_rman进行备份恢复
- NuGet学习笔记001---了解使用NuGet给net快速获取引用
- python listbox排序_Python3.3.2 tkinter ttk TreeView percolumn排序只按最后一列排序?
- java最长同值路径_力扣——最长同值路径
- 2005开启服务器文件夹,vss2005图文教你如何安装与配置?
- 【光学】基于matlab模拟单缝夫琅禾费衍射
- 高等数学——变限积分求导
- 揭秘沃尔玛、腾讯、京东、浙商银行的供应链管理方案
- 667. 优美的排列 II
- android baseview,Android BaseAdapter:在getView()重新输入时conver...
- 如何安装Mac 下的markman破解版
热门文章
- 基于虹软使用Java实现人脸识别、人脸比对、活性检测等
- Tortoise SVN异常处理
- 在Linux操作系统下的PPPoE拨号上网
- 儿童生日快乐相册PPT模板
- 小米电视微信投屏出现服务器出错,小米盒子电视投屏显示101020错误是怎么回事...
- 【安全牛学习笔记】w3af-身份认证
- 机器学习中的数学——距离定义(十六):豪斯多夫距离(Hausdorff Distance)
- C语言,C++ “xxxx” is ambiguous 的可能错因
- 用Apipost校验响应结果实例
- 远程监督、弱监督、有监督、半监督到底怎么区分