个人实验 github地址:https://github.com/quchengyu/cher
一、实践目的
1.掌握类的定义,对象的创建。
2.掌握实现封装、继承、多态的方法,掌握各种修饰符的使用。
3.掌握将对象数组作为方法的参数和返回值。
4.掌握抽象类与接口的概念及实现,理解动态绑定机制。
5.掌握通过组合与继承,实现代码可复用。
二、实践要求
综合使用封装、继承、多态、抽象类与接口、组合及继承等面向对象知识,给出所选项目的面向对象设计与实现。
三、项目需求
所选项目名称:矩形类
设计一个名为Rectangle的类表示矩形。这个类包括:
- 两个名为width和height的double型数据域,分别表示矩形的宽和高。默认值为1.
- 创建默认矩形的无参构造方法。
- 一个创建width和height为指定值的矩形的构造方法。
- 一个名为getArea()的方法,返回这个矩形的面积。
- 一个名为getPerimeter()的方法,返回这个矩形的周长。
画出该类的UML图。实现这个类。编写一个测试程序,创建两个Rectangle对象---一个矩形的宽为4而高为40,另一个矩形的宽为3.5而高为35.9。显示每个矩形的宽、高、面积和周长。
四、项目设计方案
首先,定义一个矩形类,并定义width和height。并在矩形类中定义getArea()和getPerimeter()方法。再定义一个display()返回方法。主类TestRectangle测试矩形类。
五、核心算法详细设计
1、创建Rectangle类
根据试验内容可知,此次做的是矩形类,包括名为width和height的double型数据域,一个名为getArea()的方法,返回这个矩形的面积。一个名为getPerimeter()的方法,返回这个矩形的周长。
class Rectangle//定义一个矩形类
{
double width, length;//定义两个整形变量width,length;
Rectangle(){width=1;length=1;}//无参的构造函数
Rectangle(double z,double w)//z、w表示矩形的长和宽
{
width=z;
length=w;//将z,w分别赋值给width,length
}
public double getArea()//创建getArea()方法
{
return width*length;
}
public double getPerimeter()//创建getPerimeter()方法
{
double p;
p=width*2+length*2;
return p;
}
2、矩形类的输出
另外需要一个方法,输出这些值。注意getArea()和getPerimeter()是方法,不能直接调用,方法中必须有返回值。
如,
void display()//矩形类的display()方法
{
System.out.println("矩形长="+width+"宽="+length+"面积="+this.getArea()+"周长="+p);//输出矩形上一个点的坐标,矩形的长和宽
}就错了。P是局部变量。
应该改为:
void display()//矩形类的display()方法
{
System.out.println("矩形长="+width+"宽="+length+"面积="+this.getArea()+"周长="+this.getPerimeter());//输出矩形上一个点的坐标,矩形的长和宽
}
3、功能测试
剩下的就开始对主函数main()的编写了。
public class TestRectangle {
public static void main(String args[])
{
Rectangle r1= new Rectangle(4,40);//为参数创建了一个矩形的对象,并赋值给引用
r1.display();//对象r1调用display()方法
Rectangle r2= new Rectangle(3.5,35.9);
r2.display();//对象r2调用display()方法
}
}//201303014044计科高职13-2曲承玉
六、完整源码
完整源码:给出完整的源代码。如:
class Rectangle//定义一个矩形类
{
double width, length;//定义两个整形变量width,length;
Rectangle(){width=1;length=1;}//无参的构造函数
Rectangle(double z,double w)//z、w表示矩形的长和宽
{
width=z;
length=w;//将z,w分别赋值给width,length
}
public double getArea()//创建getArea()方法
{
return width*length;
}
public double getPerimeter()//创建getPerimeter()方法
{
double p;
p=width*2+length*2;
return p;
}
void display()//矩形类的display()方法
{
System.out.println("矩形长="+width+"宽="+length+"面积="+this.getArea()+"周长="+this.getPerimeter());//输出矩形上一个点的坐标,矩形的长和宽
}
}
public class TestRectangle {
public static void main(String args[])
{
Rectangle r1= new Rectangle(4,40);//为参数创建了一个矩形的对象,并赋值给引用
r1.display();//对象r1调用display()方法
Rectangle r2= new Rectangle(3.5,35.9);
r2.display();//对象r2调用display()方法
}
}//201303014044计科高职13-2曲承玉
七、实践总结
本次试验,主演了解了方法的创建和调用。并明白局部变量不能直接调用。
个人实验 github地址:https://github.com/quchengyu/cher的更多相关文章
- 我的github地址 https://github.com/1010de/Test.git
构建之法老师叫交下任务学习github,经过一段时间的学习和了解,看介绍.看视频.看博客.初步认识到github的方便与好处. 自己试着去注册和使用github,已经慢慢学会了一些基本操作. ...
- 力奋github:https://github.com/birdstudiocn
我的github地址https://github.com/birdstudiocn
- (2016 年) githup 博客地址 : https://github.com/JMWY/MyBlog
githup 博客地址 : https://github.com/JMWY/MyBlog
- ESP-IDF版本更新说明(V2.1版)转自github(https://github.com/espressif/esp-idf/releases/)
ESP-IDF Release v2.1 igrr 发布了这个 on 29 Jul · 自此发布以来,我承诺要 承诺414 自v2.0以来的变化. 突破变化 版本v2.1旨在大大兼容为ESP-IDF ...
- django实战仿慕课网在线视频网站(完成了85%以上的功能已上传github:https://github.com/huwei86/mxonline):
1. 前台功能模块 基本模块:登录 注册 找回密码 / 全局搜索 / 个人中心, 课程功能:课程管理 / 讲师管理 / 授课机构管理 热门推荐 相关课程推荐 用户操作管理:用户收藏 / 课程评论 ...
- 我的GitHub:https://github.com/javaFesh?tab=repositories
https://github.com/javaFesh?tab=repositories
- 我的博客地址和github地址
博客地址 http://www.cnblogs.com/sjzsjzsjz/ github地址 https://github.com/sjzsjzsjz
- 云空调来自 GitHub 的冷气——GitHub 热点速览 v.21.20
作者:HelloGitHub-小鱼干 万物皆可上云,air-conditioner 是上周火爆小鱼干朋友圈和公众号信息流的云空调项目.第一眼的时候,你会觉得和这个云空调还挺别致的,第二眼,si~~感到 ...
- 上半年最中意的 GitHub 更新「GitHub 热点速览 v.22.21」
2022 年的热点速览加入 GitHub 产品动态之后,这次的图片显示是最得我意的,因为可以提升图片查看人的看片体验.而 GitHub 社区方面,GitHub 官方发布了部分开源项目的新版本.与此同时 ...
- android 很多牛叉布局github地址(转)
原文地址 http://blog.csdn.net/luo15309823081/article/details/41449929 点击可到达github-------https://github.c ...
随机推荐
- Linux 小知识翻译 - 「别名」
实际上,「别名」被用在多种场合下.比如「命令的别名」,「邮件地址的别名」等等. 所以,单独说「别名」的时候,根据不用的场合,代表的意思也不一样. 一般来说,「别名」是指意思差不多的东西. 「别名」的英 ...
- IntelliJ IDEA 项目结构旁边出现 0%classes,0% lines covered
不知道一不小心点到哪里,项目变成如下形式 使用ctrl + Alt + F6弹出如下框,取消勾选-->点击Show Selected就可以去掉了 官网解释
- NSObject
一.前言 该博客里面的方法均是看着苹果官方的API来解释的,一般都是常用的方法如有问题,请指出. 二.简介: 该类集成的是其本身,大家可以从任何一个类去向上追溯,都会发现最终的父类都是NSObject ...
- java 操作elasticsearch之搭建测试项目环境
在创建项目之前请确认maven是否安装好,在此我是以环境都搭建好的情况下进行示范,现在以eclipse开发工具为例,具体操作如下: 1.创建maven项目 File - new -other 2.在p ...
- UOJ 【UR #5】怎样跑得更快
[UOJ#62]怎样跑得更快 题面 这个题让人有高斯消元的冲动,但肯定是不行的. 这个题算是莫比乌斯反演的一个非常巧妙的应用(不看题解不会做). 套路1: 因为\(b(i)\)能表达成一系列\(x(i ...
- Django基础之urls
一 Django简介 二 视图层之应用系统 一 Django简介 Django: urls:路径与视图函数的映射关系 views:逻辑处理 models:与数据库相关的操作 t ...
- php 安装xdebug进行调试(phpstorm)
一.下载xdebug xdebug官网:https://xdebug.org/download.php 在选择下载哪个版本的xdebug的时候需要注意了,下面有两种方法,让你准确的下载自己环境对应的x ...
- python制作电脑定时关机办公神器,另含其它两种方式,无需编程!
小编本人目前就是在电脑面前工作,常常会工作到凌晨两三点还在为自己的梦想奋斗着.有时在办公椅上就稀里糊涂睡着了,我相信有很多朋友和我一样,这样是很不好的.第一对身体不好,第二对电脑不好. 对身体 ...
- CF915G Coprime Arrays 莫比乌斯反演、差分、前缀和
传送门 差分是真心人类智慧--完全不会 这么经典的式子肯定考虑莫比乌斯反演,不难得到\(b_k = \sum\limits_{i=1}^k \mu(i) \lfloor\frac{k}{i} \rfl ...
- LiveCharts文档-3开始-1安装
原文:LiveCharts文档-3开始-1安装 LiveCharts文档-3开始-1安装 我不会逐字逐句翻译,有些过于基本的地方语言上会所略 三个平台我只翻译WinForm,其他的WPF和UWP大部分 ...