Java基础与继承实践:99个经典习题解析
需积分: 9 111 浏览量
更新于2024-07-26
收藏 326KB DOC 举报
1. Java练习题:题目涉及字符串替换和对象比较
题目1询问了编译并运行一段Java代码的结果。代码定义了一个名为`Strings1`的字符串,初始值为"amit",然后调用`replace()`方法将其中的字符'm'替换为'r'。第一行输出将是替换后的字符串,即"arit"。由于字符串是不可变的,所以`s1`变量并未改变,因此第二行输出仍为"amit"。接着,创建了两个字符串`s2`和`s3`,并将`s1`的替换结果赋给`s2`,它们指向的是同一个字符串对象,因此`s2 == s3`的结果为`true`。最后,`s3`被赋值为另一个相同的字符串"arit",所以`s3 == s4`同样为`true`。正确答案是:B.arit amit false true。
2. Java继承与对象比较
第二个问题是关于类的构造函数、实例化和方法调用。首先,`SubclassY`继承自`SuperclassX`,但在第5行尝试通过`new SubclassY();`创建`SuperclassX`的实例,这是错误的,因为`SuperclassX`没有公开的构造函数,不能直接实例化。第9行试图在子类对象`objY`上调用父类的`superclassMethodX()`,这是正确的。然而,在第11行,试图通过`objX`获取`superclassVarX`的值,这会抛出`NullPointerException`,因为`objX`实际上是指向`SubclassY`的实例,而非`SuperclassX`,且没有初始化`superclassVarX`。至于`m1.equals(m2)`的判断,由于两个`MyClass`对象的`x`字段都为100,它们在默认情况下不等于彼此,因为它们是不同的对象。因此,`if(m1.equals(m2))`条件不会成立,`System.out.println`语句不会执行。结论是:以上都不对。
这两个问题着重考察了Java中的字符串操作、对象比较以及类继承和构造函数的理解。对于编程练习,理解和熟练掌握这些概念至关重要,特别是字符串的不可变性、对象引用、继承时的权限控制以及方法的调用方式。
2018-09-10 上传
2018-04-22 上传
2023-05-24 上传
2023-09-19 上传
2024-07-09 上传
2023-10-20 上传
2023-09-19 上传
2023-05-26 上传
2023-08-31 上传
harry_jushin
- 粉丝: 0
- 资源: 6
最新资源
- 磁性吸附笔筒设计创新,行业文档精选
- Java Swing实现的俄罗斯方块游戏代码分享
- 骨折生长的二维与三维模型比较分析
- 水彩花卉与羽毛无缝背景矢量素材
- 设计一种高效的袋料分离装置
- 探索4.20图包.zip的奥秘
- RabbitMQ 3.7.x延时消息交换插件安装与操作指南
- 解决NLTK下载停用词失败的问题
- 多系统平台的并行处理技术研究
- Jekyll项目实战:网页设计作业的入门练习
- discord.js v13按钮分页包实现教程与应用
- SpringBoot与Uniapp结合开发短视频APP实战教程
- Tensorflow学习笔记深度解析:人工智能实践指南
- 无服务器部署管理器:防止错误部署AWS帐户
- 医疗图标矢量素材合集:扁平风格16图标(PNG/EPS/PSD)
- 人工智能基础课程汇报PPT模板下载