Java实验报告(四)

2023-10-27

题目一

(一)程序一
源程序:

public class Leaf {
    int i = 0;
    Leaf increment(){
        i++;
        return this;
    }
    void print(){
        System.out.println("i="+i);
    }
    public static void main(String[] args) {
        Leaf x= new Leaf();
        x.increment().increment().increment().print();
    }
}

运行结果截图:
在这里插入图片描述

题目二

(二)程序二
源程序:

public class ThisTest1 {
    int x;
    public ThisTest1(int x) {
        this.x = x + 1;
    }
    public static void main(String[] args) {
        ThisTest1 t = new ThisTest1(5);
        System.out.println(t.x);
    }
}

运行结果截图:
在这里插入图片描述

题目三

(三)程序三

public class ThisTest2 {
    int x, y;
    public ThisTest2(int x, int y) {
        this.x = x;
        this.y = y;
    }
    public ThisTest2(int x) {
        this(x, 3);
    }
    public static void main(String[] args) {
        ThisTest2 t = new ThisTest2(1);
        System.out.println("t.x=" + t.x);
        System.out.println("t.y=" + t.y);
    }
}

运行结果截图:
在这里插入图片描述

题目四

(四)程序四
源程序:

class SuperClass1 {
    int a = 3;
    void f() {
        a += 1;
    }
}
public class SubClass1 extends SuperClass1 {
    int a = 6;
    void f() {
        super.f();
        a = a + super.a - 3;
    }
    public static void main(String[] args) {
        SubClass1 my = new SubClass1();
        my.f();
        System.out.println("a=" + my.a);
    }
}

运行结果截图:
在这里插入图片描述

题目五

(五)程序五

class SuperClass2 {
    private int i;
    public SuperClass2(int x) {
        i = x + 1;
    }
    public int f() {
        return i;
    }
}
public class SubClass2 extends SuperClass2 {
    public SubClass2(int m) {
        super(m);
    }
    public static void main(String[] args) {
        SubClass2 t = new SubClass2(9);
        System.out.println(t.f());
    }
}

运行结果截图:
在这里插入图片描述

题目六

(六)程序六
源程序:

class ElectricalEquipement {
    ElectricalEquipement() {
        System.out.println("ElectricalEquipement()");
    }
}
class Computer extends ElectricalEquipement {
    Computer() {
        System.out.println("Computer()");
    }
}
public class PortableComputer extends Computer {
    PortableComputer() {
        System.out.println("PortableComputer()");
    }
    public static void main(String[] args) {
        PortableComputer myPc = new PortableComputer();
    }
}

运行结果截图:
在这里插入图片描述

题目七

(七)程序七
源程序:

class Shape {
    void print() {
        System.out.println("Shape");
    }
}
class Circle extends Shape {
    void print() {
        System.out.println("Circle");
    }
}
class Rectangle extends Shape {
    void print() {
        System.out.println("Rectangle");
    }
}
class Square extends Shape {
    void print() {
        System.out.println("Square");
    }
}
public class DrawShape {
    static void draw(Shape s) {
        s.print();
    }
    public static void main(String[] args) {
        Shape s = new Shape();
        draw(s);
        s = new Circle();
        draw(s);
        s = new Rectangle();
        draw(s);
        s = new Square();
        draw(s);
    }
}

运行结果截图:
在这里插入图片描述

实验小结:
(一)this的用法总结:
1、this是一个关键字,是一个引用,保存内存地址指向自身。
2、this只能使用在实例方法中。谁调用这个实例方法,this就是谁。
3、this出现在实例方法中其实代表的是当前对象。
4、this不能使用在静态方法中。
5、this.大部分情况下是可以省略的,但是用来区分局部变量和实例变量的时候不能省略。
6、this() 这种语法只能出现在构造方法第一行,表示当前构造方法调用本类其他的构造方法,目的是代码复用。
(二)super的用法总结
1、super只能出现在实例方法和构造方法中。
2、super不能出现在静态方法中。
3、super.大部分情况下可省略。
4、父类和子类中有同名的属性,或者说有同样的方法,若想在子类中访问父类的,super.不能省略。
5、super()同this()一样只能出现在构造方法的第一行,通过当前的构造方法去调用“父类中的构造方法”。
(三)继承的好处
子类继承父类,可以实现代码的复用,降低代码的冗余度。
(三)多态的好处
降低程序的耦合度,提高程序的扩展力。
(四)写出你在此次试验中遇到的问题、解决方法及你的收获。
问题:多态向上/向下转型失败
解决:多态转型的时候,并非都可以进行向上转型,有时候需要用instanceof进行判断,解决转型失败的问题。

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

Java实验报告(四) 的相关文章

  • Java - 因内存不足错误而关闭

    关于如何最好地处理这个问题 我听到了非常矛盾的事情 并且陷入了以下困境 OOME 会导致一个线程崩溃 但不会导致整个应用程序崩溃 我需要关闭整个应用程序 但不能 因为线程没有剩余内存 我一直认为最佳实践是让它们离开 这样 JVM 就会死掉
  • NoInitialContextException:heroku 战争部署

    我一直在开发一个 J2EE 项目 并且在其中使用连接池 也通过部署在 heroku 上的数据库进行访问 我使用以下代码来设置 Connection 对象 Context initContext new InitialContext Cont
  • 使用 WebDriver 单击新打开的选项卡中的链接

    有人可以在这种情况下帮助我吗 场景是 有一个网页 我仅在新选项卡中打开所有指定的链接 现在我尝试单击新打开的选项卡中的任何一个链接 在下面尝试过 但它仅单击主 第一个选项卡中的一个链接 而不是在新选项卡中 new Actions drive
  • Android 中的列表(特别是 RecyclerView 和 CardView)如何工作

    请原谅我问这个问题 但我是 Android 开发新手 尽管我正在尝试了解developer android com 网站上的基础知识 但大多数示例 即使他们说它们是为 Android Studio 构建的 尚未设置为使用 Gradle 因此
  • Reactive Spring 不支持 HttpServletRequest 作为 REST 端点中的参数?

    我创建了一个 RestController 如下所示 RestController public class GreetingController RequestMapping value greetings method RequestM
  • 删除优先级队列的尾部元素

    如何删除优先级队列的尾部元素 我正在尝试使用优先级队列实现波束搜索 一旦优先级队列已满 我想删除最后一个元素 优先级最低的元素 Thanks 没有简单的方法 将元素从原始元素复制到新元素 最后一个除外 PriorityQueue remov
  • 从 MS Access 中提取 OLE 对象(Word 文档)

    我有一个 Microsoft Access 数据库 其中包含一个包含 Microsoft Word 文档的 OLE 对象字段 我试图找到代码来检索保存在 OLE 对象中的文件 以便用户可以从我的 JavaFx 应用程序中的按钮下载它 但没有
  • Logback:SizeAndTimeBasedRollingPolicy 不遵守totalSizeCap

    我正在尝试以一种方式管理我的日志记录 一旦达到总累积大小限制或达到最大历史记录限制 我最旧的存档日志文件就会被删除 当使用SizeAndTimeBasedRollingPolicy在 Logback 1 1 7 中 滚动文件追加器将继续创建
  • 为自定义驱动程序创建 GraphicsDevice

    我正在开发一个在嵌入式系统中使用 Java 的项目 我有用于屏幕和触摸输入的驱动程序 以及用于文本输入的虚拟键盘 我的屏幕驱动程序有一个Graphics2D您可以绘制的对象和repaint Rectangle 更新方法 类似地 触摸驱动器能
  • 是否可以从 servlet 内部以编程方式设置请求上下文路径?

    这是一个特殊情况 我陷入了处理 企业 网络应用程序的困境 企业应用程序正在调用request getContext 并将其与另一个字符串进行比较 我发现我可以使用 getServletContext getContextPath 获取 se
  • 从休眠乐观锁定异常中恢复

    我有一个这样的方法 Transactional propagation Propagation REQUIRES NEW public void doSomeWork Entity entity dao loadEntity do some
  • 虽然我的类已加载,但 Class.forName 抛出 ClassNotFoundException

    代码如下 它的作用是加载我放在主目录中的 jar 文件中的所有类 import java io File import java util jar JarFile import java util jar JarEntry import j
  • 当 minifyEnabled 为 true 时 Android 应用程序崩溃

    我正在使用多模块应用程序 并且该应用程序崩溃时minifyEnabled true in the installed模块的build gradle 以下是从游戏控制台检索到的反混淆堆栈跟踪 FATAL EXCEPTION Controlle
  • Spring Data JPA:查询如何返回非实体对象或对象列表?

    我在我的项目中使用 Spring Data JPA 我正在演奏数百万张唱片 我有一个要求 我必须获取各种表的数据并构建一个对象 然后将其绘制在 UI 上 现在如何实现我的 Spring 数据存储库 我读到它可以通过命名本机查询来实现 如果指
  • 如何从日期中删除毫秒、秒、分钟和小时[重复]

    这个问题在这里已经有答案了 我遇到了一个问题 我想比较两个日期 然而 我只想比较年 月 日 这就是我能想到的 private Date trim Date date Calendar calendar Calendar getInstanc
  • 无法在 Java/Apache HttpClient 中处理带有垂直/管道栏的 url

    例如 如果我想处理这个网址 post new HttpPost http testurl com lists lprocess action LoadList 401814 1 Java Apache 不允许我这么做 因为它说竖线 是非法的
  • Java - 从 XML 文件读取注释

    我必须从 XML 文件中提取注释 我找不到使用 JDOM 或其他东西来让它们使用的方法 目前我使用 Regex 和 FileReader 但我不认为这是正确的方法 您可以使用 JDOM 之类的东西从 XML 文件中获取注释吗 或者它仅限于元
  • 如何让 Emma 或 Cobertura 与 Maven 一起报告其他模块中源代码的覆盖率?

    我有一个带有 Java 代码的多模块 Maven 设置 我的单元测试在其中一个模块中测试多个模块中的代码 当然 这些模块具有相互依赖性 并且在测试执行之前根据需要编译所有相关模块中的代码 那么 如何获得整个代码库覆盖率的报告 注意 我不是问
  • Java 的 PriorityQueue 与最小堆有何不同?

    他们为什么命名PriorityQueue如果你不能插入优先级 它看起来与堆非常相似 有什么区别吗 如果没有区别那为什么叫它PriorityQueue而不是堆 默认的PriorityQueue是用Min Heap实现的 即栈顶元素是堆中最小的
  • HttpClient请求设置属性问题

    我使用这个 HttpClient 库玩了一段时间 几周 我想以某种方式将属性设置为请求 不是参数而是属性 在我的 servlet 中 我想使用 Integer inte Integer request getAttribute obj 我不

随机推荐

  • 【Git】(五)切换分支

    1 切换分支 git checkout newBranch 2 如果需要保留本地修改 git status git add git commit amend git checkout newBranch 3 强制切换分支 放弃本地修改 强制
  • vgg16-pytorch

    基于pytorch实现VGG16模型 刚听完土哥的入门pytorch 试着写一个不完善的vgg16 VGG16具体的架构 VGG16模型构建 卷积池化后尺寸计算公式 引入库 from torch import nn from torch n
  • 深入理解java虚拟机(十) Java 虚拟机运行时栈帧结构

    运行时栈帧结构 栈帧 Stack Frame 是用于虚拟机执行时方法调用和方法执行时的数据结构 它是虚拟栈数据区的组成元素 每一个方法从调用到方法返回都对应着一个栈帧入栈出栈的过程 每一个栈帧在编译程序代码的时候所需要多大的局部变量表 多深
  • <5>STM32库函文件分析-库函数

    使用STM32F10x的库函数文件编程就要对它的库文件有一个相对清晰的认识 即使不能做到知根知底 但当要使用到MCU的某个功能时 要知道相应的库函数在哪个对应的 h和 c 文件中 看懂并了解它的寄存器 下面我写一下我对其的认知 有错误的地方
  • SQLMAP工具 详细使用方法

    文章目录 SQLMAP简介 SQLMAP支持的注入模式 SQLMAP支持的数据库 SQLMAP安装 Linux Windows 更新 SQLMAP参数详解 使用 Options Target Reques Optimization Inje
  • UnityShader入门精要——透明物体阴影

    透明度测试 Shader Unity Shaders Book Chapter 9 Alpha Test With Shadow Properties Color Color Tint Color 1 1 1 1 MainTex Main
  • 2023最新软件测试面试题(带答案)

    1 请自我介绍一下 需简单清楚的表述自已的基本情况 在这过程中要展现出自信 对工作有激情 上进 好学 面试官您好 我叫 今年26岁 来自江西九江 就读专业是电子商务 毕业后就来深圳工作 有三年的软件测试工程师的经验 我性格比较开朗 能和同事
  • 单例模式-Golang实现

    目录 非线程安全的懒汉模式 线程安全的懒汉模式 使用sync Mutex 互斥锁实现 使用sync Once实现 饿汉模式 比较懒汉模式和饿汉模式 非线程安全的懒汉模式 main go package simple import fmt s
  • Uncaught TypeError:Cannot read property ‘apply‘ of undefined

    报错信息 这是执行了删除功能之后就变成这样了 前端页面显示 一直是读取中状态 报错原因 本来是想做一个状态的效果 选中数据时 删除按钮才可用状态 在前端controller类里面调用了以下方法 忘记去写具体方法了 所以就出现了上面的问题 解
  • ES6 - lterator

    1 迭代器 内部迭代器和外部迭代器 迭代模式 提供一种方法顺序获得集合对象中的各个元素 是一种最简单也是最常见的设计模式 提供特定的接口 内部迭代器 本身是函数 定义好内部迭代规则 外部只需一次初始调用 例如 Array prototypr
  • 一篇关于运放自激振荡的帖子

    在负反馈电路时 反馈系数F越小越可能不产生自激震荡 换句话说 F越大 产生自激震荡的可能性越大 对于电阻反馈网络 F的最大值是1 F 1的典型电路就是电压跟随电路 这就是电压跟随运放易震荡原因 这也是我们常常会看到运放手册标有单位增益稳定说
  • Python 下中文分词算法的简单示例

    代码如下 import jieba 需要先安装jieba库 text Python中文分词是一个很好用的工具 在自然语言处理领域得到了广泛应用 待分词的文本 使用jieba进行分词 cut方法返回一个生成器 遍历该生成器可以得到每个词语 s
  • Python3.5(ANCONDA3)连接MYSQL数据库

    Python3和Python2连接MYSQL数据库稍微不同 我们这里要使用PyMySQL 什么是 PyMySQL PyMySQL 是在 Python3 x 版本中用于连接 MySQL 服务器的一个库 Python2中则使用mysqldb P
  • String字符串常量池

    首先看一段这样的代码 String str1 abc String str2 abc String str3 new String abc System out println str1 str2 System out println st
  • caffe学习(二):利用mnist数据集训练并进行手写数字识别(windows)

    准备数据集 http yann lecun com exdb mnist 提供了训练集与测试集数据的下载 但是caffe并不是直接处理这些数据 而是要转换成lmdb或leveldb格式进行读取 如何转换可以再去查阅相关资料 为简化步骤 直接
  • 【CVPR小目标检测】- ISNet红外小目标检测

    ISNet 红外小目标探测的形状问题 从分割的角度完成小目标红外检测 红外图像 红外小目标使用红外热成像技术 使得红外目标检测能够全天候工作 可视距离远 抗干扰能力强 当像素距离较远时 目标所占比例小 亮度低 呈现弱小目标 红外图像中 弱小
  • 【毕业设计】图像检索算法(以图搜图)

    文章目录 1 前言 2 图像检索介绍 2 1 无监督图像检索 2 2 有监督图像检索 3 图像检索步骤 4 应用实例 5 最后 1 前言 Hi 大家好 这里是丹成学长的毕设系列文章 对毕设有任何疑问都可以问学长哦 这两年开始 各个学校对毕设
  • 线性代数的学习和整理2:什么是线性,线性相关,线性无关 以及什么是线性代数?

    目录 1 写在前面的话 1 1 为什么要先总结一些EXCEL计算矩阵的工具性知识 而不是一开始就从基础学起呢 1 2 关于线性代数入门时的各种灵魂发问 1 3 学习资料 2 什么是线性 关系 2 1 线性的到底是一种什么关系 线性关系 正比
  • Q-learning和Sarsa

    一 Q learning Q Learning的目的是学习特定state下 特定action的价值 是建立一个Q table 以state为行 action为列 通过每个动作带来的奖赏更新Q table 是异策略 行动策略和评估策略不是一个
  • Java实验报告(四)

    文章目录 题目一 题目二 题目三 题目四 题目五 题目六 题目七 题目一 一 程序一 源程序 public class Leaf int i 0 Leaf increment i return this void print System