第六周课程总结&实验报告(四)
实验报告(四)
一.实验目的
1.掌握类的继承
2.变量的继承和覆盖,方法的继承,重载和覆盖的实现
二.实验的内容
1.根据下面的要求实现圆类Circle。
- 圆类Circle的成员变量:radius表示圆的半径。
圆类Circle的方法成员:
Circle():构造方法,将半径置0 Circle(double r):构造方法,创建Circle对象时将半径初始化为r double getRadius():获得圆的半径值 double getPerimeter():获得圆的周长 void disp():将圆的半径和圆的周长,圆的面积输出到屏幕
实验代码:
圆类Circle
package 测试;
public class Circle {
double radius;
public void Circle() {
this.radius = 0;
}
public void Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getPerimeter() {
double perimeter;
perimeter=2*radius*Math.PI;
return perimeter;
}
public double getArea() {
double area;
area=radius*radius*Math.PI;
return area;
}
public void disp() {
System.out.println("圆的半径:"+getRadius());
System.out.println("圆的周长:"+getPerimeter());
System.out.println("圆的面积:"+getArea());
}
}
2.继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:
- 圆柱体类Cylinder的成员变量:height表示圆柱体的高。
圆柱体类Cylinder的成员方法:
Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。 double getHeight():获得圆柱体的高 double getVol():获得圆柱体的体积 void dispVol():将圆柱体的体积输出到屏幕
- 按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积
实验代码:
圆柱体类Cylinder
package 测试;
public class Cylinder extends Circle {
double height;
public void Cylinder(double radius,double height) {
this.height=height;
this.radius=radius;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getVol() {
double vol;
vol=radius*radius*height*Math.PI;
return vol;
}
public void dispVol() {
System.out.println("圆柱的体积:"+getVol());
}
}
实验运行
package 测试;
import java.util.Scanner;
public class 测试0 {
public static void main(String[] args) {
Scanner num=new Scanner(System.in);
System.out.println("请输入圆的半径:");
double radius=num.nextDouble();
System.out.println("请输入圆柱体的高:");
double height=num.nextDouble();
Cylinder cyl=new Cylinder();
cyl.Cylinder(radius,height);
cyl.disp();
cyl.dispVol();
}
}
实验运行结果截图:

实验大致思路:
先创造父类Circle,构建其中的方法成员,再创建子类Cylinder继承父类Circle,再构建其中的方法成员,最后再构建一个用于接收键盘输入数据的类,引用类Cylinder进行计算及输出数据.
实验中遇到的问题:
题目不是很复杂,就是让我们了解继承的使用,在编写的时候,Eclipse提醒我此方法具有构造函数名,虽然好像不是错误,但是我想知道会不会有什么影响,特地会将这个标出来.还有就是我想在父类加一个public static void main(String[] args)函数进行调试,输入没问题,但是调用方法的时候提示我不能对非静态方法进行静态引用虽然在前面的构造函数前加上static就没问题了,但是觉得可能不符合题目要求,就在调试完了之后就把代码改回去了,对于这个"不能对非静态方法进行静态引用"还是不是很明白,
第六周课程总结
因为国庆假期的缘故,这周只上了一节课,老师没有讲太多的东西,就是进一步的学习了有关继承的知识
这周学习的内容:
1.接口
接口是java中最重要的概念之一,接口可以理解为一种特殊的类,里面全部是由全局变量和公共的抽象方法所组成.
接口的定义格式
interface 接口名称{
全局常量;
抽象方法;
}
需要注意的是在接口中的抽象方法必须定义成public访问权限,这是绝对不可改变的.
实现接口格式
class 子类 implements 接口A,接口B,...{
}
继承抽象类实现接口格式
class 子类 extends 抽象类 implements 接口A,接口B,...{
}
接口的继承格式
interface 子接口 extends 父接口A,父接口B,....{
}
2.对象的多态性
(1).向上转型:子类对象->父类对象
(2).向下转型:父类对象->子类对象
对于向上转型,程序会自动完成,而对于向下转型时,一定要明确的指明要转型的子类类型.向下转型前要进行一次向上转型.如下格式:
对象向上转型:父类 父类对象 = 子类实例;
对象向下转型:子类 子类对象 = (子类)父类实例;
3.instanceof关键字:
在java中可以使用instanceof关键字判断一个对象到底是不是哪个类的实例,如下格式:
对象 instanceof 类 → 返回boolean类型
第六周课程总结&实验报告(四)的更多相关文章
- 第六周学习总结&实验报告四
一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...
- 第六周课程总结&实验报告
一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...
- 第八周课程总结&实验报告(六)
第八周课程总结 启动多线程售票(上课老师说要加入作业的部分) public class TestDemo { public static void main(StringD args) throws ...
- 第八周课程总结 & 实验报告(六)
第八周课程总结 一.包装类 介绍 装箱与拆箱 应用 二.异常 基本概念 基本格式 异常类的继承结构 throws关键字 throw关键字 Exception类和RuntimeException类 自定 ...
- 第五周课程总结&实验报告(四)
第五周课程总结 本周主要学习了 1.抽象类 抽象类的定义格式 abstract class抽象类名称{ 属性; 访问权限返回值类型方法名称(参数){ //普通方法 [return返回值]; } 访问权 ...
- 第三周课程总结&实验报告
课程总结 在这周对Java进行了更深层次的学习,Java的学习也变得越来越困难而有趣,加入了一些新的构造新的方法,还学习了一些简化代码的方式. 面向对象的基本概念 对于面向对象的程序设计有三个主要特征 ...
- 第九周课程总结 & 实验报告(七)
第九周课程总结 一.多线程 1.线程的状态 2.线程操作的相关方法 二.Java IO 1.操作文件的类---File ()基本介绍 ()使用File类操作文件 .RandomAccessFile类 ...
- 第七周课程总结 & 实验报告(五)
第七周课程总结 一.抽象类与接口的应用 1.实例化 2.实际应用 ---模板设计(抽象类) ---制定标准(接口) 3.设计模式 ---工厂设计 ---代理设计 ---适配器设计 二.抽象类与接口之间 ...
- 第三周课程总结&实验报告(一)
实验报告(一) 1.打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数" ...
随机推荐
- 阿里云服务器配置https
第一步 在阿里云控制台找到申请ssl证书的地址(我申请的是阿里云免费的证书,申请完要等申请通过,可能要等待一两天) 第二步下载ssl nginx版本的证书 第三步上传证书(包含.key, .pem这两 ...
- JS定时器的用法及示例
JS定时器的用法及示例 目录 js 定时器的四个方法 示例一 示例二 示例三 js 定时器的四个方法 setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式.方法会不停地调用函 ...
- Spring Boot【快速入门】简单案例
Spring Boot[快速入门] Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point ...
- idea安装完成后要做的几件事(设置字体、编码、行号)
1.设置字体大小和样式 打开设置:File-->Settings 看到如下界面,输入font,点击Editor目录下的Font设置字体大小和样式: Font:字体样式 size:字体大小 Fal ...
- django优化--ORM优缺点
谈Django绕不开ORM ORM : ORM概念,ORM特点,ORM 的优点,ORM 的缺点 orm : 对象关系映射 (Object Relational Mapping) ,用于实现面向对象编程 ...
- Linux SUID SGID SBIT 简介和权限设定
SUID :Set UID 1 SUID 权限仅对二进制程序(binary program)有效 2 执行者对于该程序需要具有x的可执行权限 3 本权限仅在执行该程序的过程中有效(run-time) ...
- Python内部执行过程
一.编译过程概述 当我们执行Python代码的时候,在Python解释器用四个过程“拆解”我们的代码,最终被CPU执行返回给用户. 首先当用户键入代码交给Python处理的时候会先进行词法分析,例如用 ...
- 牛客练习赛47 DongDong数颜色 (莫队算法)
链接:https://ac.nowcoder.com/acm/contest/904/E 来源:牛客网 DongDong数颜色 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 5242 ...
- java web 域对象
四大域对象 pagecontext 表示的是当前页面的域对象Request表示的是请求域中的对象session 表示的是一次会话中的对象application表示的是在一次tc启动到一次关闭的时候 ...
- CH5104 I-country[线性DP+分类讨论]
http://contest-hunter.org:83/contest/0x50%E3%80%8C%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E3%80%8D%E4%B ...