java理论小作业(2)--类

第一题

1.题目:

2.解析:

首先,我们来分析Hello1类的结构和给定代码的执行流程:

Hello1类中有两个成员变量,一个静态的a和一个非静态的b。静态变量a属于类本身,而非静态变量b属于类的每一个实例(对象)。

Hello1类的构造器对成员变量b进行了初始化,将其值设置为b+a。因为a是静态的,它的值在所有实例之间是共享的。

add方法分别将ab的值加1。

接下来,我们根据提供的代码段逐步分析:

  1. Hello1 h1=new Hello1();
    这一步创建了一个Hello1类的实例h1。在构造器中,b的值被初始化为b+a,即3+3=6。所以h1.b的值为6。静态变量a的值在构造过程中没有被改变,仍然是3。

  2. h1.add();
    调用h1对象的add方法,a的值加1变为4,h1.b的值加1变为7。

  3. Hello1 h2=new Hello1();
    这一步创建了另一个Hello1类的实例h2。在构造器中,b的值再次被初始化为b+a,但此时a的值已经是4(因为上一步h1.add()改变了a的值),所以h2.b的值为3+4=7。静态变量a的值在构造过程中依然没有被改变,仍然是4。

  4. h2.add();
    调用h2对象的add方法,a的值再加1变为5,h2.b的值加1变为8。

  5. System.out.println("h1.a="+h1.a+" h2.b="+h2.b);
    打印h1.ah2.b的值。因为a是静态的,所以所有实例共享它的值,这里h1.aHello1.a以及h2.a都是5。而h2.b的值在上一步已经被更新为8。

所以,最终的输出结果为:

h1.a=5 h2.b=8

注意:虽然代码中写的是h1.a,但实际上因为a是静态的,你也可以直接通过类名Hello1.a来访问它,结果是一样的。这里写h1.a只是表明是通过h1这个对象来访问静态变量a,但实际上访问的是类级别的变量。

3.收获:

静态变量不会变,非静态变量是每个类的对象

第二题:

1.题目:

2.解析:

在Java中,类的访问权限控制是通过修饰符来决定的。在您提供的代码中,类C有三个成员变量:

  • private int a=3;:这个变量是私有的,只能被类C自身访问。
  • double b=4.5;:这个变量没有明确的访问修饰符,因此它的访问权限是默认的(也称为包级访问权限),意味着它只能被同一个包内的其他类访问。
  • protected int c=5;:这个变量是受保护的,可以被类C自身、同一个包内的其他类以及子类(无论子类是否在同一个包内)访问。

类D和类C在同一个包(com)中,因此类D可以访问类C中具有包级访问权限的变量和受保护的变量。

基于上述分析:

  • 类D不能访问a,因为a是私有的。
  • 类D可以访问b,因为b具有包级访问权限。
  • 类D可以访问c,因为c是受保护的。

因此,正确答案是:

C. 不能访问a,可以访问b和c。

3.收获:

private让变量变为私有的

第三题:

1.题目:

2.解析:

执行以下代码:

A a1 = new B();
a1.print();

首先,A a1 = new B(); 这行代码创建了一个 B 类的实例,并将其引用赋值给了 A 类型的变量 a1。由于 B 是 A 的子类,所以这是合法的。

接下来,调用 a1.print();。这里有几个关键点需要注意:

  1. 变量 a1 的类型是 A,但是实际上它引用的是一个 B 类的对象。
  2. 在 Java 中,如果子类重写(override)了父类的方法,那么当使用子类对象调用该方法时,将执行子类中的方法实现。
  3. 在这个例子中,B 类重写了 A 类中的 print 方法。

因此,当调用 a1.print(); 时,实际执行的是 B 类中的 print 方法,而不是 A 类中的 print 方法。

B 类中的 print 方法只打印 a 的值,并没有对其进行自增操作。B 类中的 a 是 B 类自己的成员变量,其值为 5(由于 int a = 5; 在 B 类中被定义)。

所以,输出结果为:

a=5

因此,正确答案是 C. a=5

3.收获:

将子类赋值给父类

A a1 = new B()

第四题:

1.题目:

2.解析:

在Java中,当一个类继承自另一个类时,子类可以通过调用super()来调用父类的构造函数。这是子类构造函数中初始化父类部分所必需的。

在类B中,构造函数需要调用父类A的构造函数来初始化从A继承的字段ab。由于A的构造函数接受两个int类型的参数,因此需要在B的构造函数中使用super(a, b);来调用它。

接下来,子类B还需要初始化自己的字段c,这可以通过this.c = c;来完成。

因此,完整的B类构造函数应该如下所示:

class B extends A {  
    private double c;  
    public B(int a, int b, double c) {  
        super(a, b); // 调用父类A的构造函数  
        this.c = c;  // 初始化子类B的字段c  
    }  
}

 

选项A中的super.A(a,b);是不正确的,因为调用父类构造函数的正确语法是super(参数列表);,而不是super.类名(参数列表);

选项B中的A(a,b);也是不正确的,因为这不是调用父类构造函数的正确语法。而且,this.b=b;在这里是多余的,因为父类构造函数已经初始化了b

选项C也是错误的,因为它试图通过super(a);只传递一个参数给父类构造函数,而父类A的构造函数需要两个参数。此外,this.b=b;同样是多余的。

3.收获:

子类继承父类:使用super函数继承需要的属性

第五题放一放

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/524998.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c++20协程详解(四)

前言 到这就是协程的最后一节了。希望能帮到大家 代码 到这里我们整合下之前二、三节的代码 #include <coroutine> #include <functional> #include <chrono> #include <iostream> #include <thread> #include <mutex> #include <me…

24上教资面试报名时间汇总⏰报名流程✅

24上教资面试报名公告已经发布&#xff01; &#x1f4a1;报名地址&#xff1a;中小学教师资格考试网 &#x1f550;报名时间&#xff1a;4月12日开始 广东&#xff1a;4月12日10:00-15日17:00 河北&#xff1a;4月12日10:00至4月15日17:00 广西&#xff1a;4月12日10:00至15日…

深入理解Vue 3.0中的watch属性immediate和deep的用法

摘要&#xff1a; 在 Vue 3.0 中&#xff0c;watch 是一个用于观察和响应组件中数据变化的强大工具。它允许我们监听组件中的属性、对象或数组的变化&#xff0c;并执行相应的回调函数。除了基本的用法外&#xff0c;watch 还提供了两个扩展选项&#xff1a;immediate 和 deep…

【JavaScript】原型链/作用域/this指针/闭包

1.原型链 参考资料&#xff1a;Annotated ES5 ECMAScript起初并不支持如C、Smalltalk 或 Java 中“类”的形式创建对象&#xff0c;而是通过字面量表示法或者构造函数创建对象。每个构造函数都是一个具有名为“prototype”的属性的函数&#xff0c;该属性用于实现基于原型的继…

【氮化镓】在轨实验研究辐射对GaN器件的影响

【Pioneering evaluation of GaN transistors in geostationary satellites】 摘要&#xff1a; 这篇论文介绍了一项为期6年的空间实验结果&#xff0c;该实验研究了在地球静止轨道上辐射对氮化镓&#xff08;GaN&#xff09;电子元件的影响。实验使用了四个GaN晶体管&#xf…

H3C防火墙RBM对接交换机M-LAG典型配置

FW配置&#xff1a;FW1与FW2采用RBM组网&#xff0c;M-LAG Border的跨设备二层聚合口与RBM FW设备的设备内三层聚合口对接。FW主设备的设备内三层聚合口编号应与备设备的设备内三层聚合口编号保持一致。防火墙省略安全域和安全策略配置。 Border设备配置&#xff1a;采用M-LAG组…

嵌入式学习49-单片机2

指令周期 1M 机器周期 12M &#xff08;晶体震荡器产生&#xff09; 中断两种方式 …

创建型模式--1.单例模式【巴基速递】

1. 巴基的订单 在海贼世界中&#xff0c;巴基速递是巴基依靠手下强大的越狱犯兵力&#xff0c;组建的集团海贼派遣公司&#xff0c;它的主要业务是向世界有需要的地方输送雇佣兵&#xff08;其实是不干好事儿&#xff09;。 自从从特拉法尔加罗和路飞同盟击败了堂吉诃德家族 &…

怎么把学浪的视频保存到手机

越来越多的人在学浪app里面购买了课程并且想要下载下来&#xff0c;但是苦于没有方法或者工具&#xff0c;所以本文将教大家如何把学浪的视频保存到手机随时随地的观看&#xff0c;再也不用担心课程过期的问题。 本文将介绍工具来下载&#xff0c;因为下载方法太复杂&#xff…

Yolov5改进算法之添加Res2Net模块

目录 1. Res2Net介绍 1.1 Res2Net的背景和动机 1.2 Res2Net的基本概念 2. YOLOV5添加Res2Net模块 Res2Net&#xff08;Residual Resolution Network&#xff09;是一种用于图像处理和计算机视觉任务的深度卷积神经网络架构。它旨在解决传统的ResNet&#xff08;Residual Ne…

【JVM性能调优】- 阿里在线排除工具 - Arthas

阿里在线排除工具 - Arthas Arthas&#xff08;阿尔萨斯&#xff09;是阿里开源的一款Java在线诊断工具&#xff0c;官网原话&#xff1a;当你遇到以下类似问题而束手无策时&#xff0c;Arthas可以帮助你解决&#xff1a; 这个类从哪个 jar 包加载的&#xff1f;为什么会报各种…

千视携 NDI 6 轻量化媒体方案亮相北京CCBN展会

展会简介 第30届中国国际广播电视网络技术展览会&#xff08;CCBN&#xff09;将于4月24至26日在北京首钢会展中心举行。此次展会将汇集全球各大数字媒体、广播电视单位以及IT、通信技术厂商。展会重点关注数字化转型、智能媒体、融媒体等主题&#xff0c;并展示最新的5G、4K/8…

Day107:代码审计-PHP模型开发篇MVC层RCE执行文件对比法1day分析0day验证

目录 MVC 架构 CNVD-代码执行1day-lmxcms1.40版本 CNVD-命令执行1day-baijiacms4.1.4版本 知识点&#xff1a; 1、PHP审计-MVC开发-RCE&代码执行 2、PHP审计-MVC开发-RCE&命令执行 3、PHP审计-MVC开发-RCE&文件对比 MVC 架构 MVC流程&#xff1a; Controller截…

HCLR-Net: 混合对比学习正则化与局部随机扰动用于水下图像增强

论文地址&#xff1a;https://doi.org/10.1007/s11263-024-01987-y 源码&#xff1a;https://github.com/zhoujingchun03/HCLR-Net 摘要&#xff1a; 由于水下环境复杂多样&#xff0c;导致光吸收、散射和色彩失真等严重退化现象&#xff0c;因此水下图像增强是一项重大挑战…

Day108:代码审计-PHP模型开发篇MVC层动态调试未授权脆弱鉴权未引用错误逻辑

目录 案例1-Xhcms-动态调试-脆弱的鉴权逻辑 案例2-Cwcms-动态调试-未引用鉴权逻辑 案例3-Bosscms-动态调试-不严谨的鉴权逻辑 知识点&#xff1a; 1、PHP审计-动态调试-未授权安全 2、PHP审计-文件对比-未授权安全 3、PHP审计-未授权访问-三种形态 动态调试优点: 环境配置&…

Embedding:跨越离散与连续边界——离散数据的连续向量表示及其在深度学习与自然语言处理中的关键角色

Embedding嵌入技术是一种在深度学习、自然语言处理&#xff08;NLP&#xff09;、计算机视觉等领域广泛应用的技术&#xff0c;它主要用于将高维、复杂且离散的原始数据&#xff08;如文本中的词汇、图像中的像素等&#xff09;映射到一个低维、连续且稠密的向量空间中。这些低…

1111111111111111111111111

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

活动图高阶讲解-15

1 00:00:00,000 --> 00:00:07,200 目前来说&#xff0c;这个菱形到底是分还是合 2 00:00:07,200 --> 00:00:13,600 这个是靠入边出边的数量来判断的 3 00:00:13,600 --> 00:00:22,560 有的方法学&#xff0c;它可能会这样搞一些花样 4 00:00:22,560 --> 00:00:2…

Adobe InDesign 2024 v19.3 (macOS, Windows) - 版面设计和桌面出版软件

Adobe InDesign 2024 v19.3 (macOS, Windows) - 版面设计和桌面出版软件 Acrobat、After Effects、Animate、Audition、Bridge、Character Animator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、Lightroom Classic、Media Encoder、Photoshop、Premiere Pro、Ad…

室友打团太吵?一条命令让它卡死

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;更多干货&#xff0c;请关注专栏《网络安全自学教程》 SYN Flood 1、hping3实现SYN Flood1.1、主机探测1.2、扫描端…