实验报告(四)

一.实验目的

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. 第六周学习总结&实验报告四

    一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...

  2. 第六周课程总结&实验报告

    一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...

  3. 第八周课程总结&实验报告(六)

    第八周课程总结 启动多线程售票(上课老师说要加入作业的部分) public class TestDemo { public static void main(StringD args) throws ...

  4. 第八周课程总结 & 实验报告(六)

    第八周课程总结 一.包装类 介绍 装箱与拆箱 应用 二.异常 基本概念 基本格式 异常类的继承结构 throws关键字 throw关键字 Exception类和RuntimeException类 自定 ...

  5. 第五周课程总结&实验报告(四)

    第五周课程总结 本周主要学习了 1.抽象类 抽象类的定义格式 abstract class抽象类名称{ 属性; 访问权限返回值类型方法名称(参数){ //普通方法 [return返回值]; } 访问权 ...

  6. 第三周课程总结&实验报告

    课程总结 在这周对Java进行了更深层次的学习,Java的学习也变得越来越困难而有趣,加入了一些新的构造新的方法,还学习了一些简化代码的方式. 面向对象的基本概念 对于面向对象的程序设计有三个主要特征 ...

  7. 第九周课程总结 & 实验报告(七)

    第九周课程总结 一.多线程 1.线程的状态 2.线程操作的相关方法 二.Java IO 1.操作文件的类---File ()基本介绍 ()使用File类操作文件 .RandomAccessFile类 ...

  8. 第七周课程总结 & 实验报告(五)

    第七周课程总结 一.抽象类与接口的应用 1.实例化 2.实际应用 ---模板设计(抽象类) ---制定标准(接口) 3.设计模式 ---工厂设计 ---代理设计 ---适配器设计 二.抽象类与接口之间 ...

  9. 第三周课程总结&实验报告(一)

    实验报告(一) 1.打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数" ...

随机推荐

  1. oa_mvc_easyui_后台布局(3)

    1.新建HomeController控制器,并创建视图,后台的主页 2.easyUI的引用: <link href="~/Content/default/easyui.css" ...

  2. c# 简单打开关闭摄像头

    const short WM_CAP = 1024; const int WM_CAP_DRIVER_CONNECT = WM_CAP + 10; const int WM_CAP_DRIVER_DI ...

  3. qt webengineview 设置背景颜色

    当使用qwebengineview加载网页的使用,可以通过网页端的css设置网页的显示效果 但是当窗口大小改变的时候,你会发现网页的resize速度赶不上窗口的resize速度,这是会出现白色空白,而 ...

  4. upupw : Apache Php5.5 的使用

    1. 官网下载 1. 官网下载  apache php5.5点击下载 但是 现在有时候打不开,所以提供以下方法 2. 百度云网盘下载  https://pan.baidu.com/s/1eQ2k1Su ...

  5. openstack Rocky系列之keystone:(二)keystone中API注册

    主要说一下initialize_application中的application_factory def loadapp(): app = application.application_factor ...

  6. php禁止个别ip访问网站

    PHP禁止个别IP访问自己的网站,可以看看下面的方法. function get_ip_data(){ $ip=file_get_contents("http://ip.taobao.com ...

  7. shell脚本if语句后面的中括号[]与java的if后面的小括号不同(),实际上[左中括号相当于test命令

    四.shell 中的条件判断命令 test 和 [   test 命令可以处理 shell 脚本中的各类工作.它产生的不是一般的输出,而是可使用的退出状态.test 命令通过接受各种不同的参数,来控制 ...

  8. STM32CubeIDE查看内存使用情况

    按照下图操作 在右下角即可显示

  9. Django-csrf中间件

    一.详解csrf原理 csrf要求发送post,put,或者delete请求的时候,是先以get方式发送请求,服务端响应时会分配一个随机字符串给客户端,客户端第二次发送post,put或delete请 ...

  10. 使用Vue做个简单的评论 + localstorage存储

     1.引入Vue.js 2.编写代码 代码 <!DOCTYPE html> <html lang="zh"> <head> <meta c ...