//此程序写出三个类,triangle,lader,circle;其中triangle类具有类型为double的a,b,c边以及周长,面积属性,
//具有周长,面积以及修改三边的功能,还有判断能否构成三角形的boolean类。
//lader类具有类型为double的上底下底和高,面积属性,具有返回面积的功能
//circlle 类具有类型为double的半径,周长和面积。具有返回周长面积的功能
//Lader类
class Lader {
double shangDi; //上底
double xiaDi; //下底
double heigth; //高
double area; //面积 //下面是构造方法
public Lader(double shangDi,double xiaDi,double heigth){
this.shangDi=shangDi;
this.xiaDi=xiaDi;
this.heigth=heigth;
}
//下面是求面积
public double getArea(){
return (shangDi+xiaDi)*heigth/2;
}
}
//Circle类
class Circle{
double r; //半径
double l; //周长
double area; //面积
public static final double PI=3.1415926; //下面是构造方法
public Circle(double r){
this.r=r;
}
//得到周长
public double getL(){
return 2*PI*r;
}
//得到面积
public double getArea(){
return 2*PI*r*r;
} }
public class Triangle
{
//size1,size2,size3分别是三角形的三条边
private double size1;
private double size2;
private double size3;
private boolean isTriangle;
//下面构造方法
public Triangle(double size1, double size2, double size3) {
this.size1 = size1;
this.size2 = size2;
this.size3 = size3;
isTriangle=triangle();
}
//判断是否能构造三角形
private boolean triangle()
{
if((size1+size2>size3)&&
(size1+size3>size2)&&
(size2+size3>size1)&&
(size1-size2<size3)&&
(size1-size3<size2)&&
size2-size3<size1)
return true;
return false;
}
//下面是得到三边长
public double getSize1() {
return size1;
} public void setSize1(double size1) {
this.size1 = size1;
} public double getSize2() {
return size2;
} public void setSize2(double size2) {
this.size2 = size2;
} public double getSize3() {
return size3;
} public void setSize3(double size3) {
this.size3 = size3;
} public boolean isTriangle() {
return isTriangle;
} public void setTriangle(boolean isTriangle) {
this.isTriangle = isTriangle;
}
//得到面积
public double getArea() {
if(isTriangle)
{
double c=getPermie()/2;
return Math.sqrt(c*(c-size1)*(c-size2)*(c-size3));
}
throw new IllegalArgumentException("三边不能构成上三角形!");
}
//得到周长
public double getPermie() {
if(isTriangle)
return size1+size2+size3;
throw new IllegalArgumentException("三边不能构成上三角行!");
} public static void main(String[] args)
{
Triangle triangle=new Triangle(3, 4, 5);
Lader lader = new Lader(2.00,3.00,2.00); //三个参数分别是上底 下底 高
Circle circle = new Circle(3.00); //参数是圆的半径
System.out.println("面积是"+lader.getArea());
System.out.println("圆形周长是"+circle.getL());
System.out.println("圆形面积是"+circle.getArea());
System.out.println("三角形的周长:"+triangle.getPermie());
System.out.println("三角形的面积:"+triangle.getArea());
}
}

运行结果如下:

面积是5.0
圆形周长是18.849555600000002
圆形面积是56.54866680000001
三角形的周长:12.0
三角形的面积:6.0

设计一个程序,程序中有三个类,Triangle,Lader,Circle。的更多相关文章

  1. 设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。

    设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入 ABC,则没有抛出异常.(只有 ...

  2. RobotFramework中加载自定义python包中的library(一个py文件中有多个类)

    结构如下: appsdk\ appsdk.py(这里面有多个类,包括appsdk,appsdksync等类) __init__.py ... ① 有个appsdk的文件夹(符合python包的定义) ...

  3. 设计一个用于人事管理的People(人员)类

    #include <iostream> #include <string> using namespace std; class Date //日期类 { private: i ...

  4. 一个java文件中有几个类,编译后有几个class文件?

    在一个源文件中用class关键字定义了几个类,编译的时候就会产生几个字节码文件

  5. 字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串

    关于字符串的研究,目前已经有两篇. 原理篇:字符串混淆技术在.NET程序保护中的应用及如何解密被混淆的字符串  实践篇:字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略 今天来 ...

  6. shell脚本,通过一个shell程序计算n的阶乘。

    [root@localhost ~]# cat jiechen.sh #!/bin/bash #设计一个shell程序计算n的阶乘,要求: #.从命令行接收参数n; #.在程序开始后立即判断n的合法性 ...

  7. Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

    #29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...

  8. Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。

    题目2:编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计.之后,可根据显示的内容进行某条记录的删除(以id为条 ...

  9. 设计一个程序能够将某一个目录下面的所有文件名打印出来---File类的使用

    ,设计一个程序能够将某一个目录下面的所有文件名打印出来 运用到的方法有:返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录:list()           测试此抽象路径名表示的 ...

随机推荐

  1. PAT A 1018. Public Bike Management (30)【最短路径】

    https://www.patest.cn/contests/pat-a-practise/1018 先用Dijkstra算出最短路,然后二分答案来验证,顺便求出剩余最小,然后再从终点dfs回去求出路 ...

  2. Android ImageView的scaleType属性与adjustViewBounds属性(转)

    ImageView的scaleType的属性有好几种,分别是matrix(默认).center.centerCrop.centerInside.fitCenter.fitEnd.fitStart.fi ...

  3. AngularJs2 学习之路-笔记1-Atscript Ts ES6包含关系

    Atscript 这门新的语言是由谷歌的Angular团队弄出来的 就是为了编写ng2.0 ng2是个极具前瞻性的尝试 这种激进的革新在于对未来标准的迎合 ng2的标准包括了如下:1 module 2 ...

  4. life_motto

    simple,dedicated,healthy life style,love those u love...

  5. BZOJ4078 : [Wf2014]Metal Processing Plant

    设$D(A)\leq D(B)$,从小到大枚举$D(A)$,双指针从大到小枚举$D(B)$. 那么对于权值不超过$D(A)$的边,可以忽略. 对于权值介于$(D(A),D(B)]$之间的边,需要满足那 ...

  6. PHP-Redis扩展使用手册(一)

    //初始化redis实例 $redis = new Redis(); /* connect . open 链接redis * @param string host redis服务器地址 * @para ...

  7. 如何更好地学习dubbo源代码(转)

    很荣幸,作为这样一款业界使用率和好评率出众的RPC框架的维护者,今天这个文章主要是想帮助那些热爱开源的同学,更好的来研究dubbo的源代码. 一.Dubbo整体架构 1.Dubbo与Spring的整合 ...

  8. View基础知识

    一.View基础知识 View 是Android中所有控件的基类,是一种界面层的控件的一种抽象,代表了一个控件 1.View的位置参数 View的四个属性:top(左上角纵坐标)     left(左 ...

  9. <一>获取数据库连接

    一.JDBC_通过Driver接口获取数据库连接 1. Driver是一个接口:数据库厂商必须提供实现的接口,可以从其中 获取数据库连接. 2.JDBC URL由三部分组成,各部分用冒号隔开,格式:j ...

  10. npm link 安装本地模块,将本地模块cli化

    第三方学习地址 http://mp.weixin.qq.com/s?__biz=MzAxMTU0NTc4Nw==&mid=2661157390&idx=1&sn=6d96e54 ...