第六周总结 & 实验报告(四)

2023-05-16

第六周小结

一、instanceof关键字

        在Java中使用instanceof关键字判断一个对象到底是哪个类的实例,返回boolean类型

1.instanceof关键字的作用

 



class
A{ public void fun1(){ System.out.println("A-->public void fun1(){}"); } public void fun2(){ this.fun1(); } } classB extends A{ public void fun1(){ System.out.println("B-->public void fun1(){}"); } public void fun3(){ System.out.println("B-->public void fun3(){}"); } } public class InstanceofDemo01{ public static void main(String[] args){ A a1 = new B(); System.out.println("A a1 = new B()"+(a1 instanceof A)); System.out.println("A a1 = new B()"+(a1 instanceof B)); A a2 = new A(); System.out.println("A a2 = new A()"+(a2 instanceof A)); System.out.println("A a2 = new A()"+(a2 instanceof B)); } }

 


运行结果
A a1 = new B():  true
A a1 = new B():  true
A a2 = new A():  true
A a2 = new A():  false  
java中,instanceof运算符的前一个操作符是一个引用变量,后一个操作数通常是一个(可以是接口),用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如果是返回true,否则返回false。
也就是说:
使用instanceof关键字做判断时, instanceof 操作符的左右操作数必须有继承或实现关系
 
注意: 在判断某个类(接口也可以看成一个特殊的类)的对象是不是其他类(或接口)的实例,一定要首先进行向上转型,然后才可用instanceof关键字进行判断
 
二、接口
         1.概念:接口可以理解为一种特殊的类,里面全部是由全局变量和公共的抽象方法所组成。
        
         2.定义格式  

interface 接口名称{
    全局常量;
    抽象方法;//抽象方法必须定义成public访问权限
                  //如果不写public ,则也是public访问权限
}  

            



interface
A{ public static final String AUTHOR = "lixinghua"; //定义全局常量 public abstract void print(); //定义抽象方法 public abstract String getlnof(); }

 

3.实现接口

 

与抽象类一样,接口要使用也必须通过子类,子类通过implements关键字实现接口


class 子类 implements 接口A,接口B,....{
                       //如果一个类同时实现了连个接口,这样在子类中就必须同时覆写两个接口中的全部抽象方法
}

 

4.继承抽象类实现接口


class 子类 extends 抽象类 implements 接口A,接口B....{
                                                   //其中如果抽象类和接口本身都有抽象方法,子类必须覆写所有抽象方法
}  


interface
A{ public String AUTOR = "lixinhua"; public void print(); public String getlnof(); } abstract class B{ public abstract void say(); } class X extends B implements A{ public void say(){ SYstem.out.println("Hello world"); } public String getlnof(){ return "HELLO"; } public void print(){ System.out.println("作者:"+AUTHOR); } } public class InterfaceDemo{ public static void main(String args[]){ X x = new X(); x.say(); x.print(); } }

 

 5.抽象类实现接口

 


interface A{
         全局常量;
         抽象方法;
}
abstract class B implements A{          //定义抽象类,实现接口
              .......
}

class X extends B{
    覆写B中方法
}  

抽象类实现了接口,所以在抽象类中就包含了的抽象方法,这样抽象类的子类就必须同时覆写抽象方法

6.接口的继承


interface 子接口 extends 父接口A,父接口B...{

}  

子接口中继承了父接口,所以子接口同时存在了父接口中的抽象方法

 

 

实验报告(四)

一.实验目的

(1)掌握类的继承

(2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;

二.实验的内容

(1)根据下面的要求实现圆类Circle。

1.圆类Circle的成员变量:radius表示圆的半径。

2.圆类Circle的方法成员:

       Circle():构造方法,将半径置0

       Circle(double r):构造方法,创建Circle对象时将半径初始化为r

       double getRadius():获得圆的半径值

       double getPerimeter():获得圆的周长

       void disp():将圆的半径和圆的周长,圆的面积输出到屏幕

(2)继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:

1.圆柱体类Cylinder的成员变量:height表示圆柱体的高。

2.圆柱体类Cylinder的成员方法:

        Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。

        double getHeight():获得圆柱体的高

        double getVol():获得圆柱体的体积

        void dispVol():将圆柱体的体积输出到屏幕

3.按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积

 

一、圆类

1.实验源码

 


package circle;

class Circle {
    private double radius;
    public Circle(double radius) {
        this.setRadius(radius);
        
    }
    public double getRadius() {
        return radius;
    }
    public void setRadius(double radius) {
        this.radius = radius;
    }
    public double getPerimeter() {
        double x = 2*Math.PI*radius;
        return x;
    }
    public double getArea() {
        double a = Math.PI*radius*radius;
        return a;
    }
    void disp() {
        System.out.println("半径:"+getRadius());
        System.out.println("周长:"+getPerimeter());
        System.out.println("面积:"+getArea());
    }
    

}  

 


package circle;

import java.util.*;
public class Circle1 {

    public static void main(String[] args) {
        Scanner out = new Scanner(System.in);
        System.out.println("输入半径 & 高:");
        double a= out.nextInt();
        double b= out.nextInt();
        Cylinder cir = new Cylinder(a,b);
        
        cir.disp();
        cir.dispVol();
        
    }

}  

 

 

2.实验结果

二、圆柱类

 

1.实验源码

 

 


package circle;

class Cylinder extends Circle {
    private double height;
    public Cylinder(double radius,double height) {
        super(radius);
        this.setHeight(height);
        
    }
    public double getHeight() {
        return height;
    }
    public void setHeight(double height) {
        this.height = height;
    }
    public double getVol() {
        double c = getArea()*getHeight();
        return c;
    }
    void dispVol() {
        System.out.println("高:"+getHeight());
        System.out.println("圆柱体积:"+getVol());
    }

}  

 


package circle;

import java.util.*;
public class Circle1 {

    public static void main(String[] args) {
        Scanner out = new Scanner(System.in);
        System.out.println("输入半径 & 高:");
        double a= out.nextInt();
        double b= out.nextInt();
        Cylinder cir = new Cylinder(a,b);
        
        cir.disp();
        cir.dispVol();
        
    }

}  

 

 

 

2.实验结果

 

三、总结

两道题其实就是一道题,只需多建一个子类继承父类,并新增属性高就可以了。

 

转载于:https://www.cnblogs.com/xu23/p/11629718.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第六周总结 & 实验报告(四) 的相关文章

  • 嵌入式面试笔试题目——附部分答案

    1 如何自动创建设备文件 xff1f class create device create 2 led驱动编写有几种方式 xff1f 输入子系统 字符设备驱动 总线platform led子系统 3 如何实现http服务器 xff1f tc
  • 多线程的优缺点

    何时使用多线程技术 何时避免用它 是我们需要掌握的重要课题 多线程技术是一把双刃剑 在使用时需要充分考虑它的优缺点 多线程处理可以同时运行多个线程 由于多线程应用程序将程序划分成多个独立的任务 因此可以在以下方面显著提高性能 1 多线程技术
  • 单片机应用编程技巧问答

    1 C语言和汇编语言在开发单片机时各有哪些优缺点 答 xff1a 汇编语言是一种用文字助记符来表示机器指令的符号语言 xff0c 是最接近机器码的一种语言 其主要优点是占用资源少 程序执行效率高 但是不同的CPU xff0c 其汇编语言可能
  • php获取今日开始时间戳和结束时间戳

    1 php获取今日开始时间戳和结束时间戳 beginToday 61 mktime 0 0 0 date 39 m 39 date 39 d 39 date 39 Y 39 endToday 61 mktime 0 0 0 date 39
  • BDA驱动学习笔记(1):功能拓扑图

    功能拓扑图 Functional Topology xff1a BAD的目标是不管硬件或者接收信号如何变 xff0c 它的整体架构可以不做大调整 xff0c 为此BDA引入功能拓扑图的概念 xff0c 它把类似DirectShow Filt
  • linux 流量监控利器:iftop

    在类Unix系统中可以使用top查看系统资源 进程 内存占用等信息 查看网络状态可以使用netstat nmap等工具 若要查看实时的网络流量 xff0c 监控TCP IP连接等 xff0c 则可以使用iftop iftop是什么 ifto
  • VS Code C++ 代码格式化方法(clang-format)

    前提条件 安装扩展C C 43 43 xff0c 扩展程序将自动安装clang format clang format默认安装路径为c Users wqr57 vscode extensions ms vscode cpptools 0 1
  • 为ubuntu服务器安装gnome图形桌面

    一般租用的服务器安装服务器版的LINUX xff0c 很少会安装桌面的 xff0c 主要是觉得浪费资源吧 xff0c 不过我这样的菜鸟还是喜欢图形桌面 xff0c 下面主要记录下这次为ubuntu 11 04版本安装GNOME xff0c
  • js表单验证 方法

    1 长度限制 lt p gt 1 长度限制 lt p gt lt form name 61 a nsubmit 61 34 return test 34 gt lt textarea name 61 34 b 34 cols 61 34 4
  • 海量数据处理之倒排索引

    前言 xff1a 本文是对博文http blog csdn net v july v article details 7085669的总结和引用 一 xff0c 什么是倒排索引 问题描述 xff1a 文档检索系统 xff0c 查询那些文件包
  • linux 服务器杀毒,一次Linux服务器***查杀经历

    1客户自己的服务器由于种了 xff0c 往外发送大量数据包 xff0c 被服务商切断网络 虽然没有网络不能直接登录服务器 xff0c 但是可以通过服务商提供的WEB控制面板进入操作系统 首先使用命令查看相关连接 xff1a netstat
  • 问题请教:关于同一个POD中多容器的广播信息问题

    广大博友好 xff0c 最近在K8S集群中遇到一个问题 xff0c 贴出来同大家分享一下 同一个POD中多个容器 如何处理广播信息 xff1f 经测试 同一个POD中当先启动的容器占用广播端口后 xff0c 其他的容器启动就会报bind e
  • JAVA在线观看视频教程完整版

    今天给大家介绍一下JAVA在线观看视频教程完整版 xff0c 我们知道Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言 xff0c 是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台
  • Dockerfile镜像的制作

    Dockerfile镜像的制作 如果学习Docker xff0c 那么制作镜像这一步肯定不能少的 xff0c 别人给你的是环境 xff0c 而你自己做的才是你最终需要的东西 xff0c 接下来就记录一下如何制作一个满足自己的镜像 xff0c
  • OpenWRT 编译教程

    1 安装Ubuntu 到 http www ubuntu org cn desktop get ubuntu download 下载 xff0c 版本随便 xff0c 我选的是10 10 32位版 安装过程就不说了 xff0c 图形化安装
  • 树莓派VNC搭建相关教程+Ubuntu16.04连接vncserver灰屏问题!

    树莓派VNC搭建相关教程 xff1a 为了节省money xff0c 于是我决定用VNC界面来代替显示器 xff0c 为后面做C 43 43 Qt以及Python Qt开发打下基础 xff0c 我别无选择 xff01 下面开始进入正题 xf
  • linux中wait系统调用

    系统中的僵尸进程都要由wait系统调用来回收 xff0c 下面就通过实战看一看wait的具体用法 xff1a wait的函数原型是 xff1a include lt sys types h gt 提供类型pid t的定义 include l
  • go 使用channel交叉打印奇偶数

    方法1 使用两个协程一个管道 xff0c 一个协程输入 xff0c 另一个协程接收 xff0c 保证i在两个协程中的值一样 package main import 34 fmt 34 34 sync 34 var wg sync WaitG
  • 事件冒泡机制和事件委派 以及回调的匿名函数参数

    1 事件冒泡机制 xff1a 事件冒泡机制也就是当一个事件绑定到一个元素上时 xff0c 如果这个元素不存在或者回调函数返回ture 那么这个事件就会向上冒泡 xff0c 继续绑定这个元素的父级元素直至document xff08 如果事件
  • Linux 内核硬件抽象

    我们结束 PCI 的讨论 通过快速看一下系统如何处理在市场上的多种 PCI 控制器 这只 是一个信息性的小节 打算来展示给好奇的读者 内核的面向对象分布如何向下扩展到最 低层 用来实现硬件抽象的机制是通常的包含方法的结构 它是一个很强功能的

随机推荐