简单的Java面向对象程序
上一篇随笔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面向对象程序的更多相关文章
- 简单的java采集程序二
继[简单的java采集程序],这里将完成对整个网站的号码段的采集任务. [使用预编译+批处理采集网页内容至数据库表中] 在之前我们用statement类来创建sql语句的执行对象,以 ...
- 【Java】一个简单的Java应用程序
简单记录,Java 核心技术卷I 基础知识(原书第10 版) 一个简单的Java应用程序"Hello, World!" Hello, World! Goodbye,World! 一 ...
- 一个简单的Java应用程序
目录 一个简单的Java应用程序 首次运行结果 程序示例 运行结果 修改大小写之后的运行结果 程序示例 运行结果 关键字public 关键字class 类名及其命名规则 类名必须以字母开头 不能使用J ...
- 3.1 一个简单的Java应用程序
如下一个最简单的应用程序,它将只发送一条消息到控制台窗口中: package myjavapp; public class FirstSample { public stati ...
- Java:一个简单的Java应用程序
/** * 这是文档注释 * @version * @author */ /* 这之间的内容也是注释 */ //这是行注释 public class FirstSample { public st ...
- 2015.11.27初识java一集简单的java小程序
JAVA配置环境变量方法: 1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME变量值:D:\Java\jdk1.7.0_ ...
- 第一章开发简单的Java应用程序
1.什么是程序? 程序一词来源于生活,通俗点讲就是把生活的的事用程序编写出来 并执行. 2.为什么要学习Java呢? Java是Sun Microsystems于1995年推出的高级编程语言 Java ...
- 使用spring框架创建最简单的java web程序(IDEA商业版)
项目目录如下(IDEA社区版好像无法识别webapp目录?原因见https://www.cnblogs.com/bityinjd/p/9284378.html): 工具: IDEA 1.首先使用ma ...
- 编写一个简单的java服务器程序
import java.net.*;import java.io.*; public class server{ ); //监听在80端口 Socket sock = server.accept(); ...
随机推荐
- mimikatz的使用
mimikatz mimikatz是法国人Gentil Kiwi编写的一款Windows平台下的神器,它具备很多功能,其中最主要的功能是直接从 lsass.exe 进程里获取处于active状态账号的 ...
- Windows核心编程 第四章 进程(中)
4.2 CreateProcess函数 可以用C r e a t e P r o c e s s函数创建一个进程: BOOL CreateProcessW( _In_opt_ LPCWSTR lpAp ...
- 前端小白的学习之路html与css的较量【一】
html和css的较量 web结构的组成 html标签规则 快速生成一个html html的基本结构 标签的关系 标签 标题标签 段落 图片 超链接 a 属性 a标签里面的值 字符实体 新增的标签 1 ...
- 一个或多个筛选器或者Listeners启动失败 的问题探索以及解决方案
2020年10月9日更新 经过本人对SSM框架理解的加深和对IDEA工具使用的熟悉,现提出一种新的解决办法,以前的解决办法可能存在问题 1. 问题描述: 使用IDEA作为开发工具,使用Maven作为项 ...
- 23.Quick QML-简单且好看的图片浏览器-支持多个图片浏览、缩放、旋转、滑轮切换图片
之前我们已经学习了Image.Layout布局.MouseArea.Button.GroupBox.FileDialog等控件. 所以本章综合之前的每章的知识点,来做一个图片浏览器,使用的Qt版本为Q ...
- Spring MVC工作原理及源码解析(四) ViewResolver实现原理及源码解析
0.ViewResolver原理介绍 根据视图的名称将其解析为 View 类型的视图,如通过 ModelAndView 中的视图名称将其解析成 View,View 是用来渲染页面的,也就是将 Mode ...
- 改善c++程序的150个建议(读后总结)-------10-11
10. 优化结构体中元素的布局 结构体变量所占空间大小并不是其所含类型所占字节数之和,其所占内存字节数涉及到字节对齐. 字节对齐 :变量在内存中储存都是以字节数为单位,每一个字节都有自己的地址,逻辑上 ...
- 腾讯云原生混合云-第三方集群弹EKS应对突发流量的利器
作者 何鹏飞,腾讯云专家产品经理,曾作为容器私有云.TKEStack的产品经理兼架构师,参与腾讯云内部业务.外部客户容器化改造方案设计,目前负责云原生混合云产品方案设计工作. 胡晓亮,腾讯云专家工程师 ...
- 使用 vue3 的自定义指令给 element-plus 的 el-dialog 增加拖拽功能
element-plus 提供的 el-dialog 对话框功能非常强大,只是美中不足不能通过拖拽的方式改变位置,有点小遗憾,那么怎么办呢?我们可以通过 vue 的自定义指令来实现一个可以拖拽的对话框 ...
- canal 环境搭建 canal 与kafka通信(三)
canal 占用了生产者 .net core端 使用消费者获取canal 消息 安装 Confluent.Kafka demo使用 1.3.0 public static void Consumer ...