上一篇随笔Java静态方法和实例方法的区别以及this的用法,老师看了以后说我还是面向过程的编程,不是面向对象的编程,经过修改以后,整了一个面向对象的出来:

/**
* 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法;
* 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果.
*/ package mission3; /**
* 定义一个圆形类,以及圆形的私有成员属性
*/
public class Circular {
private double r; //圆的半径
private double PI; //圆周率
private double circularArea; //圆的面积 //自动生成getter和setter方法
public double getR() {
return r;
} public void setR(double r) {
this.r = r;
} public double getPI() {
return PI;
} public void setPI(double PI) {
this.PI = PI;
} public double getCircularArea() {
return circularArea;
} public void setCircularArea(double circularArea) {
this.circularArea = circularArea;
}
}
/**
* 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法;
* 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果.
*/ package mission3; /**
* 定义一个三角形类,以及三角形的私有成员属性
*/
public class Triangle {
private double base; //三角形的底边长
private double high; //三角形的高
private double triangleArea; //三角形的面积 //自动生成getter和setter方法
public double getBase() {
return base;
} public void setBase(double base) {
this.base = base;
} public double getHigh() {
return high;
} public void setHigh(double high) {
this.high = high;
} public double getTriangleArea() {
return triangleArea;
} public void setTriangleArea(double triangleArea) {
this.triangleArea = triangleArea;
}
}
/**
* 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法;
* 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果.
*/ package mission3; /**
* 定义一个梯形类,以及梯形的私有成员属性
*/
public class Trapezoid {
private double topLength; //梯形上底边长
private double baseLength; //梯形下底边长
private double high; //梯形的高
private double trapezoidArea; //梯形的面积 //自动创建setter和getter方法
public double getTopLength() {
return topLength;
} public void setTopLength(double topLength) {
this.topLength = topLength;
} public double getBaseLength() {
return baseLength;
} public void setBaseLength(double baseLength) {
this.baseLength = baseLength;
} public double getHigh() {
return high;
} public void setHigh(double high) {
this.high = high;
} public double getTrapezoidArea() {
return trapezoidArea;
} public void setTrapezoidArea(double trapezoidArea) {
this.trapezoidArea = trapezoidArea;
}
}
/**
* 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法;
* 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果.
*/ package mission3; import java.util.Scanner; /**
* 定义一个计算类,专门用来存计算方法供主类调用
*/
public class Calculator {
//计算圆面积的方法
public void calculateArea(Circular circular){
//获取圆的对象的属性,计算出圆的面积属性赋给圆这个对象
circular.setCircularArea(circular.getR()*circular.getR()*circular.getPI());
} //计算三角形面积的方法
public void calculateArea(Triangle triangle){
//获取三角形对象的属性,计算出三角形的面积赋值给三角形对象
triangle.setTriangleArea(triangle.getBase()*triangle.getHigh()/2);
} //计算梯形的面积的方法
public void calculateArea(Trapezoid trapezoid){
//获取梯形对象的属性,计算出梯形的面积赋值给梯形对象
trapezoid.setTrapezoidArea((trapezoid.getTopLength()+trapezoid.getBaseLength())*trapezoid.getHigh()/2);
} }
/**
* 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法;
* 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果.
*/ package mission3; public class Test {
public static void main(String[] args) {
//new一个圆的类
Circular cir = new Circular();
//给圆的属性赋值
cir.setR(50);
cir.setPI(Math.PI); //new一个计算类
Calculator cal = new Calculator();
//调用计算类进行计算
cal.calculateArea(cir);
//输出圆的属性
System.out.println("半径为"+cir.getR()+",圆周率为"+cir.getPI()+"情况下的圆的面积是:"+cir.getCircularArea()); //new一个三角形的类
Triangle tri = new Triangle();
//给三角形的属性赋值
tri.setBase(20);
tri.setHigh(30);
//调用计算类进行计算
cal.calculateArea(tri);
//输出三角形的属性
System.out.println("底边长为"+tri.getBase()+",高为"+tri.getHigh()+"的三角形面积是:"+tri.getTriangleArea()); //new一个梯形的类
Trapezoid tra = new Trapezoid();
//给梯形的属性赋值
tra.setBaseLength(20);
tra.setTopLength(30);
tra.setHigh(20);
//调用计算类进行计算
cal.calculateArea(tra);
//输出梯形的属性
System.out.println(
"上底边长为"+tra.getTopLength()
+",下底边长为"+tra.getBaseLength()
+",高为"+tra.getHigh()
+"的梯形面积是"+tra.getTrapezoidArea());
}
}

简单的Java面向对象程序的更多相关文章

  1. 简单的java采集程序二

    继[简单的java采集程序],这里将完成对整个网站的号码段的采集任务. [使用预编译+批处理采集网页内容至数据库表中]          在之前我们用statement类来创建sql语句的执行对象,以 ...

  2. 【Java】一个简单的Java应用程序

    简单记录,Java 核心技术卷I 基础知识(原书第10 版) 一个简单的Java应用程序"Hello, World!" Hello, World! Goodbye,World! 一 ...

  3. 一个简单的Java应用程序

    目录 一个简单的Java应用程序 首次运行结果 程序示例 运行结果 修改大小写之后的运行结果 程序示例 运行结果 关键字public 关键字class 类名及其命名规则 类名必须以字母开头 不能使用J ...

  4. 3.1 一个简单的Java应用程序

        如下一个最简单的应用程序,它将只发送一条消息到控制台窗口中: package myjavapp;   public class FirstSample {       public stati ...

  5. Java:一个简单的Java应用程序

    /** * 这是文档注释 * @version  * @author  */ /* 这之间的内容也是注释 */ //这是行注释 public class FirstSample { public st ...

  6. 2015.11.27初识java一集简单的java小程序

    JAVA配置环境变量方法: 1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME变量值:D:\Java\jdk1.7.0_ ...

  7. 第一章开发简单的Java应用程序

    1.什么是程序? 程序一词来源于生活,通俗点讲就是把生活的的事用程序编写出来 并执行. 2.为什么要学习Java呢? Java是Sun Microsystems于1995年推出的高级编程语言 Java ...

  8. 使用spring框架创建最简单的java web程序(IDEA商业版)

    项目目录如下(IDEA社区版好像无法识别webapp目录?原因见https://www.cnblogs.com/bityinjd/p/9284378.html): 工具:  IDEA 1.首先使用ma ...

  9. 编写一个简单的java服务器程序

    import java.net.*;import java.io.*; public class server{ ); //监听在80端口 Socket sock = server.accept(); ...

随机推荐

  1. UVA11427玩纸牌(全概率+递推)

    题意:       一个人玩纸牌游戏,他每天最多玩n局,枚举获胜的概率是a/b,每天玩牌只要获胜概率达到p,那么他今天就不玩了,明天接着玩,如果有一天他的概率没有达到p,(没有达到p的话他今天一定是玩 ...

  2. 【python】Leetcode每日一题-矩阵置零

    [python]Leetcode每日一题-矩阵置零 [题目描述] 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 .请使用 原地 算法. 进阶: 一个直观的解 ...

  3. .NET Core-全局性能诊断工具

    前言: 现在.NET Core 上线后,不可避免的会出现各种问题,如内存泄漏.CPU占用高.接口处理耗时较长等问题.这个时候就需要快速准确的定位问题,并解决. 这时候就可以使用.NET Core 为开 ...

  4. JavaScript 包管理器 -Yarn

    Fast, reliable, and secure dependency management. 官网地址 Github 特性 离线模式:如果您之前下载了软件包,则可以在没有任何互联网连接的情况下安 ...

  5. python之xlwt

    python写excel----xlwt 写excel的拿点不在构造一个workbook的本身,二是填充的数据,不过这不在范围内,在写excel的操作中也有棘手的问题, 比如写入合并的单元格就是比较麻 ...

  6. Power BI官方客户案例2021

    微软商业应用峰会Power BI客户案例,今年的客户案例相比前2年不同,主要是大客户,基本都是行业Top公司. 选取零售,医药制造,教育,医疗IT等行业龙头.沃尔玛,拜耳,滑铁卢大学的分享内容非常棒, ...

  7. Docker安装教程(超详细)

    Docker安装教程(超详细) 欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章, 关注回复「资源」, 免费领取全网最热的Java架构师学习PDF, 转载请注明出处 http:// ...

  8. Jenkins+Git的搭建和自动部署

    前言 Jenkins在工作中都使用过,之前都是运维去搭建部署,弄好了之后给我一个网址去构建项目就可以了,所以也都是一直没了解过安装过程. 今天在自己的服务器上搭建了一遍,中间有遇到很多坑,特在此归纳总 ...

  9. Elasticsearch入门,看这一篇就够了

    目录 前言 可视化工具 kibana kibana 的安装 kibana 配置 kibana 的启动 Elasticsearch 入门操作 操作 index 创建 index 索引别名有什么用 删除索 ...

  10. 关于Annotation注解的理解

    在编Java程序的时候,我们经常会碰到annotation.比如:@Override 我们在子类继承父类的时候,会经常用到这个annotation.它告诉编译器这个方法是override父类的方法的. ...