上一篇随笔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. windows-CODE注入(远程线程注入)

    远程线程注入(先简单说,下面会详细说)今天整理下代码注入(远程线程注入),所谓代码注入,可以简单的理解为是在指定内进程里申请一块内存,然后把我们自己的执行代码和一些变量拷贝进去(通常是以启线程的方式) ...

  2. PhpStorm 配置本地文件自动上传至服务器

    目的:本地文件夹下的文件实时同步至指定服务器的文件夹,减少代码移植的成本和风险 添加一个SFTP连接 Tools - Deployment - Browse Remote Host 配置连接参数 Co ...

  3. tp 创建文件并写入数据

    代码:1.$url = Env::get('root_path').'application/admin/test.txt'; //定义创建路径 $file = fopen($url,"w& ...

  4. 【小技巧】修改eclipse中Java注释中的作者日期等信息

  5. SQL必知必会 —— 性能优化篇

    数据库调优概述 数据库中的存储结构是怎样的 在数据库中,不论读一行,还是读多行,都是将这些行所在的页进行加载.也就是说,数据库管理存储空间的基本单位是页(Page). 一个页中可以存储多个行记录(Ro ...

  6. PageHelper简单使用

    PageHelper的简单使用 先引入对应的依赖 <dependency> <groupId>com.github.pagehelper</groupId> < ...

  7. python爬虫——拉钩网python岗位信息

    之前爬取的网页都是采用"GET"方法,这次爬取"拉勾网"是采取了"POST"的方法.其中,"GET"和"POS ...

  8. 技术博客:Azure 认知服务

    Azure 认知服务 1.概述 ​ 微软认知服务(Microsoft Cognitive Services)集合了多种智能API以及知识API,使每个开发人员无需具备机器学习的专业知识就能接触到 AI ...

  9. debian系统搭建telnet服务器以及telnet远程登陆--加油

    1.安装软件 sudo apt-get install telnet* 2.创建telnet文件 vim /etc/xinetd.d/telnet telnet内容 1 service telnet ...

  10. 【海通国际】Joe Lowry(Mr. Lithium)谈全球电池原材料供应危机

    [海通国际]Joe Lowry(Mr. Lithium)谈全球电池原材料供应危机 环球锂业公司(Global Lithium)总裁Joe Lowry日前接受了欧洲锰业Euro Manganese的邀请 ...