第六周课程总结&试验报告(四)
一.实验目的
(1)掌握类的继承方法
(2)变量的继承和覆盖,方法的继承,重载和覆盖实现
二.实验内容

三.实验过程
1. 实验源码
package test;
import java.util.Scanner;
class Circle{
private double radius;//定义半径
public double getRadius() {//取得Radius属性
return radius;
}
public void setRadius(double radius) {//设置Radius属性
this.radius = radius;
}
public Circle() {//声明第一个构造方法设置Radius为0
setRadius(0);
}
public Circle(double r) {//声明第二个构造方法设置Radius为传递的参数值r
setRadius(r);
}
public double getPerimeter() {//取得周长
return 2*Math.PI*getRadius();
}
public void disp() {//输出
System.out.println("圆的半径为:"+getRadius());
System.out.println("圆的周长为:"+getPerimeter());
System.out.println("面积为:"+Math.pow(getRadius(),2)*Math.PI);
}
}
public class 实验四1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
Circle pr=new Circle();
pr.disp();
System.out.println("请输入半径:");
double r=sc.nextDouble();
pr.setRadius(r);
pr.disp();
}
}
实验结果

2.实验源码
package test;
import java.util.Scanner;
class Cylinder extends Circle {//Cylinder是Circle的子类
private double height;
public double getHeight() {//取得圆柱体的高
return height;
}
public void setHeight(double height) {//设置圆柱体的高
this.height = height;
}
public Cylinder(double r,double h) {//定义对象后设置圆柱体的半径和高
setRadius(r);//调用父类的方法
setHeight(h);
}
public double getVol() {//取得圆柱体的体积
return Math.pow(getRadius(),2)*Math.PI*getHeight();
}
public void dispVol() {//输出
System.out.println("圆柱体的体积为:"+getVol());
}
}
public class 实验四2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入圆的半径:");
double r=sc.nextDouble();
System.out.println("请输入圆的高:");
double h=sc.nextDouble();
Cylinder pr=new Cylinder(r,h);//调用子类构造方法,传递参数r,h
pr.disp();
pr.dispVol();
}
}
实验结果

3.
在2.中已实现
结论
我感觉本次实验主要是考察继承的简单应用,实验内容1不难,主要是写一个类,实验内容2写一个子类,并对父类进行扩展。
在同一个包中,子类可以直接在另一个class文件中写,而不需要把父类再写一遍。在定义子类对象时,若子类中有构造方法,
则要直接调用构造方法,这个我发现后,还没搞懂,其余的还好。
课程总结
接口
接口可以理解为一种特殊的类
1.接口的定义
interface 接口名称{
全局常量;
抽象方法;
}
在接口中如果不写public,则也是public访问权限,接口中的方法永远是public。
2.接口实现
接口的使用要通过子类,子类通过implements关键字实现接口
class 子类 implements 接口A,接口B,····{//一个子类可以同时实现多个接口
}
对象的多态性
对象的多态性主要分两种类型:
(1)向上转型:子类对象->父类对象
(2)向下转型:父类对象->子类对象
对象转型
对象向上转型:父类 父类对象=子类实例 //向上转型,程序会自动完成
对象向下转型:子类 子类对象=(子类)父类实例
如果对象发生了向上转型关系,所调用的方法一定是被子类覆写过的方法,若一种方法只在子类中定义,
而没有在父类中定义,如果要想调用子类定义的其他方法,肯定要使用子类实例。
对象在进行向下转型之前,必须首先发生对象向上转型,否则会出现对象转换异常。
第六周课程总结&试验报告(四)的更多相关文章
- 第六周课程总结&java实验报告四
第六周课程总结: 一.instanceof关键字 1.作用:在Java中可以使用instanceof关键字判断一个对象到底是哪个类的实例. 2.格式:对象 instanceof 类 -> 返回b ...
- 第六周课程总结&实验报告(四)
实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表 ...
- 20145302张薇《Java程序设计》第十六周课程总结
20145302 <Java程序设计>第十六周课程总结 实验报告链接汇总 实验一 Java开发环境的熟悉 实验二 Java面向对象程序设计 实验三 敏捷开发与XP实践 实验四 Andoid ...
- 第五周课程总结&试验报告(三)
第五周课程总结&试验报告(三) 实验三 String类的应用 实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 实验内容 ###1.已知字符串:"this is a ...
- 第六周学习总结&第四次实验报告
第六周学习总结&第四次实验报告 学习总结 这周我们简单的学习了一点点关于接口的内容,接口是Java中最重要的概念之一,接口可以理解为一个特殊的类, 里面由全局常量和公共的抽象方法组成,接口摆脱 ...
- 第六周&java实验报告四
实验报告: 一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:rad ...
- 第五周课程总结&试验报告三
第五周课程总结 一.第五周课程总结 1.this关键字 this可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用.当一个类的属性(成员变量)名与访问该 ...
- 第六周&Java实验报告四(类的继承)
一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...
- 第六周总结&实验报告四
这周是放国庆节的假,所有没有进行深入的学习,只是写了个实验的题目,也发现了自己在基础上还是要加强学习. 实验四 类的继承 一. 实验目的 (1) 掌握类的继承方法: (2) 变量的继承和覆盖,方法的继 ...
随机推荐
- 【UOJ#37】 [清华集训2014] 主旋律
题目链接 题目描述 给定一张强联通图,求有多少种边的存在情况满足图依然强联通. \(n\leq15\) Sol 首先正难则反,考虑用总数减去不强联通的. 考虑一张不强联通的图,缩点后一定是一个 DAG ...
- 关于不重启Tomcat自动加载改变的class文件
修改server.xml,在Host标签下加入以下配置 <Context path="" docBase="FileManager" reloadable ...
- Codeforces Round #608 (Div. 2) D. Portals
链接: https://codeforces.com/contest/1271/problem/D 题意: You play a strategic video game (yeah, we ran ...
- DevOps之Pipeline集成junit、jacoco、SonarQube(二)
一.准备工作 1.准备一个持续集成的代码工程 工程下载地址: Github地址为:https://github.com/zbbkeepgoing/springboot-demo 2.springboo ...
- python_自动化测试用例参数化
参数化有三种,代码驱动,数据驱动,关键字驱动 代码驱动,测试数据写在代码中 如下: import requests,json import unittest import BeautifulRepor ...
- jquery input选择器 语法
jquery input选择器 语法 作用::input 选择器选取表单元素.该选择器同样适用于 <button> 元素.大理石平台价格表 语法:$(":input") ...
- gulp[13124]: c:\ws\src\node_contextify.cc:626: Assertion `args[1]->IsString()' failed
在执行gulp sass时报下面错误,又或者执行ionic serve时报这个错,选择低一点版本的node,建议8v; gulp[13124]: c:\ws\src\node_contextify.c ...
- 家谱树 x
家谱树 [问题描述] 有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系. 给出每个人的孩子的信息. 输出一个序列,使得每个人的后辈都比那个人后列出. [输入格式] ...
- Vue成员与指令介绍
一.Vue介绍 1.什么是vue 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围, 可以独立完成前后端分离式web项目的渐进式JavaScript框架 2.为什么要学vue 三大主流框架之 ...
- HDU 6136 Death Podracing (堆)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6136 题解 完了,普及题都不会做了... 发现一个重要性质是只有相邻的人才会相撞,于是直接拿堆维护即可 ...