Java练习题:调用方法与变量比较
需积分: 9 139 浏览量
更新于2024-07-22
收藏 326KB DOC 举报
1. Java练习题:题目要求分析代码片段并确定程序执行结果
在这个Java代码段中,首先有一个名为`Strings1`的字符串对象,其初始值为"amit"。接着,代码尝试通过`replace()`方法将`'m'`字符替换为`'r'`,并将结果赋值给`Strings2`。然后,程序比较`Strings2`和`Strings3`(两个相同字符串"arit"`)是否相等,并打印结果。最后,检查两个`SubclassY`对象的引用是否相同。
- 第一行输出:`Strings2`被设置为`"amit".replace('m', 'r')`,这会返回一个新的字符串`"arit"`,所以`System.out.println(s2)`将输出`"arit"`。
- 第二行比较:`Strings2`和`Strings3`是同一个对象,因此`s2 == s3`的结果是`true`。
- 结果:根据以上分析,正确答案是B:`arit`, `amit`, `false`, `true`。
2. 代码片段涉及类继承与成员变量访问:
- 首先,`SuperclassX`类有受保护的方法`superclassMethodX()`和一个受保护的变量`superclassVarX`。然后,`SubclassY`类继承自`SuperclassX`,并创建了两个`SubclassY`对象。
- 在`SubclassY`的`subclassMethodY()`方法中:
- 第9行试图通过`objY`调用父类`SuperclassX`的受保护方法,由于权限限制,这在Java中是不允许的,会报编译错误。
- 第5行创建子类对象时不会有问题。
- 第11行尝试访问父类`superclassVarX`的值,虽然语法上没有问题,但在实际运行时,如果没有显式提供`superclassVarX`的值,会抛出`NullPointerException`或`IllegalAccessException`,取决于变量是否初始化。
- 主函数中的`m1.equals(m2)`比较的是两个`MyClass`对象,如果它们的构造函数传入相同的参数(100),那么它们的`x`字段值相同,`equals()`方法会返回`true`。这里,由于`m1`和`m2`确实指向相同的对象(因为传入了相同的参数),所以会打印"Both are"。
这个练习题考察了字符串操作、类继承、方法调用权限以及对象比较,涵盖了Java语言的基础知识。
2012-12-13 上传
2018-09-10 上传
2021-11-23 上传
2024-06-25 上传
2024-01-04 上传
2021-10-07 上传
2022-10-25 上传
2010-06-10 上传
2012-03-25 上传
在Ji角旮旯
- 粉丝: 0
- 资源: 1
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建