上一篇随笔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. [CTF]Rabbit加密

    [CTF]Rabbit加密 ---------------------  作者:adversity`  来源:CSDN  原文:https://blog.csdn.net/qq_40836553/ar ...

  2. 【Git】2. Git常用命令详解、版本切换原理

    一.新增文件 1.设置用户签名 签名的作用就是为了区分不同的人,方便查看版本的时候知道操作的人是谁.首次安装好git之后必须设置一下签名,否则无法提交代码. 另外,这里设置的签名跟你登录到远程仓的账号 ...

  3. Day009 冒泡排序

    冒泡排序 冒泡排序无疑是最为出名的排序算法之一,总共有八大排序! 冒泡排序的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知. 我们看到嵌套循环,应该立马就可以得出这个算法的 ...

  4. 源码简析XXL-JOB的注册和执行过程

    一,前言 XXL-JOB是一个优秀的国产开源分布式任务调度平台,他有着自己的一套调度注册中心,提供了丰富的调度和阻塞策略等,这些都是可视化的操作,使用起来十分方便. 由于是国产的,所以上手还是比较快的 ...

  5. 逆向工程初步160个crackme-------3

    这个Crackme3 涉及到浮点指令以及浮点数的存储与运算,我没学习过浮点指令,不得不从网上恶补了1个小时,一边看汇编指令一边百度其指令含义. 回头得好好补补这方面的知识了,太菜了! 我大致了解了一下 ...

  6. 03.21 ICPC训练联盟周赛:UCF Local Programming Contest 2018正式赛

    B Breaking Branches 题意:两个人比赛折枝,谁剩下最后1,无法折出整数即为输 思路:树枝长n,若是奇数,则Bob胜出,若是偶数,则Alice胜出,且需要输出1: 1 #include ...

  7. 关于Annotation注解的理解

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

  8. 在Linux系统中部署NodeJS项目

    在Linux系统中部署NodeJS项目 安装NodeJS 首先进入 Node 官网,下载对应的 Node包 下载下来后是一个后缀为 xz 的压缩包,我们把这个包上传到 Linux 系统中的 /usr/ ...

  9. VS·调试过程中某个操作导致调试突然退出之解决方案

    阅文时长 | 0.11分钟 字数统计 | 232字符 主要内容 | 1.引言&背景 2.声明与参考资料 『VS·调试过程中某个操作导致调试突然退出之解决方案』 编写人 | SCscHero 编 ...

  10. zimbra安装三方颁发的证书

    步骤1:取得SSL凭证 证书需要取的从根证书每一级的证书 步骤2:合成SSL证书 将中级.根证书合成为一个证书 顺序:按照从后到前合成为一个证书  如,三级 ==>二级 ==> 根 合成后 ...