//此程序写出三个类,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. C++ 定义全局数组

    数组怎么用,全局数组就怎么用,只是他的作用域不一样才叫全局数组... 在A.h 或 A.cpp中定义char buf[10]; 如果在B.cpp要用,就在其开头中写成 extern char buf[ ...

  2. HDU 3015 Disharmony Trees(树状数组)

    题意:给你n棵树,每棵树上有两个权值X H 对于X离散化 :3 7 1 5 3 6 -> 2 6 1 4 2 5,对于H一样 然后F = abs(X1-X2)   S=min(H1,H2) 求出 ...

  3. 【CentOS】学习Bash

    一.特性 命令历史  history , !! , !$ , !字符 , !n (n为第几条命令) Tab可以补全文件路径或者命令 alias a="b",  unalias a ...

  4. jqGrid配置属性说明

    Property Type Description Default1) ajaxGridOptions object This option allows to set global ajax set ...

  5. R 语言编码风格指南

    R 语言是一门主要用于统计计算和绘图的高级编程语言.这份 R 语言编码风格指南旨在让我们的 R代码更容易阅读.分享和检查.以下规则系与 Google 的 R 用户群体协同设计而成. 概要: R编码风格 ...

  6. python中获取指定目录下所有文件名列表的程序

    http://blog.csdn.net/rumswell/article/details/9818001 # -*- coding: utf-8 -*-#~ #------------------- ...

  7. 【BZOJ1688】[Usaco2005 Open]Disease Manangement 疾病管理 状压DP

    [BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) ...

  8. centos使用yum安装软件的时候出现了undefined symbol: CRYPTO_set_locking_callback

    1.问题 在CentOS下使用yum安装软件,结果出现了下面的错误提示: # yum installThere was a problem importing one of the Python mo ...

  9. java分享第八天-01(线程)

     创建线程:1 可以实现Runnable接口.2 可以扩展Thread类本身. 通过实现Runnable创建线程:创建一个线程,最简单的方法是创建一个实现Runnable接口的类.为了实现Runnab ...

  10. Deepin -Android Studio-Genymotion 之旅

    Deepin -Android Studio-Genymotion 之旅 暑假无聊中在deepin系统下配置好了android的开发环境,并使用了比较好的一款模拟器–Genymotion;下面是我配置 ...