第六周课程总结&实验报告(四)
实验报告(四)
一.实验目的
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是一个"水仙花数" ...
随机推荐
- 编写 Bash 补全脚本
编写 Bash 补全脚本 对于Linuxer来说,自动补全是再熟悉不过的一个功能了.当你在命令行敲下部分的命令时,肯定会本能地按下Tab键补全完整的命令,当然除了命令补全之外,还有文件名补全. B ...
- Windows7/win10系统安装JDK的环境变量设置javac不是内部命令或外部命令
---恢复内容开始--- Windows7/win10系统安装JDK的环境变量设置 Windows7 X64安装“jdk-6u26-windows-x64.exe”后,按照网上的环境变量设置方法设置了 ...
- js变量的作用域、变量的提升、函数的提升
变量的作用域在函数之外声明的变量,叫做全局变量,因为它可被当前文档中的任何其他代码所访问.在函数内部声明的变量,叫做局部变量,因为它只能在当前函数的内部访问. ECMAScript 6 之前的 Jav ...
- MySQL5.5配置文件my.ini详解
[client]port = 3306 [mysqld]port = 3306 ##安装目录 basedir="C:/Program Files (x86)/MySQL/MySQL Serv ...
- ffmpeg3.3.2命令行参数笔记
组成: 1.libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能,包含demuxers和muxer库: 2.libavcodec:用 ...
- IT经理工作职责
IT经理工作职责: 1. 管理公司信息技术以及计算机系统. 2. 确保公司信息技术是可访问的并且配备了现有的可用的硬件和软件. 3. 监控并且维护公司信息技术并确保能够得到最大化的使用 ...
- Delphi 指针类型
- Codeforces 837E Vasya's Function 数论 找规律
题意:定义F(a,0) = 0,F(a,b) = 1 + F(a,b - GCD(a,b).给定 x 和 y (<=1e12)求F(x,y). 题解:a=A*GCD(a,b) b=B*GCD(a ...
- 关于join
- Apk反编译那些事
参考博客: https://blog.csdn.net/cbd_2012/article/details/91410119 https://mp.weixin.qq.com/s?__biz=MzI0N ...