Java运算符详解:赋值、方法调用与对象交互
需积分: 9 152 浏览量
更新于2024-09-15
收藏 861KB DOC 举报
"Java基础之运算符"
在Java编程中,运算符是用于执行特定操作的特殊符号。这篇学习笔记详细介绍了Java中的运算符及其使用,包括赋值运算符、方法调用等概念。以下是对这些知识点的深入解析:
1. **赋值运算符(=)**:
赋值运算符`=`用于将右侧的值赋给左侧的变量。在示例代码中,`n1.i = 1` 将整型变量 `i` 的值设置为 1。这不仅限于常量,还可以是其他变量、表达式或方法的返回值。当执行 `n2 = n1` 时,实际上是将 `n1` 对象的引用赋给了 `n2`,即 `n2` 和 `n1` 指向了同一个内存地址,因此修改 `n2.i` 会影响 `n1.i` 的值。
2. **方法调用**:
方法是一个封装了特定功能的代码块,可以被多次调用。在示例中,`sum(int x, int y)` 是一个静态方法,它接收两个整数参数并返回它们的和。调用方法的方式是通过方法名后跟一对圆括号,其中可以传入参数。例如:`sum(1, 2)` 返回 3。
3. **类与对象**:
`num` 类定义了一个具有整型成员变量 `i` 的对象。通过 `new num()` 创建了 `num` 类的新实例,如 `n1` 和 `n2`。类的实例变量可以通过`.`操作符访问,如 `n1.i`。
4. **对象引用**:
在 `n2 = n1` 后,`n2` 和 `n1` 指向同一个内存空间,因此修改 `n2.i` 会影响到 `n1.i`。这是因为在Java中,对象是通过引用传递的。如果改变引用指向另一个对象,原始对象不会受到影响,但引用本身的改变会影响后续操作。
5. **类的方法**:
在 `Lamp` 类中,`open(Lamp l3)` 是一个成员方法,它接收一个 `Lamp` 类型的对象作为参数,并改变其 `isOpen` 属性。如果调用方式改为 `l2.open(l)`,那么 `l` 的 `isOpen` 状态会被改变,而非 `l2`。
6. **布尔变量**:
示例中的 `Lamp` 类有一个布尔变量 `isOpen`,表示灯的开关状态。`l.open(l2)` 或 `l2.open(l)` 这样的方法调用可以改变对象的 `isOpen` 状态。
7. **类的继承与多态**:
虽然示例没有涉及继承,但理解这一点很重要。如果 `Lamp` 类是其他类的父类,子类可以重写 `open()` 方法,实现多态性,即不同类型的对象调用同名方法会产生不同的效果。
8. **访问控制修饰符**:
示例未提及,但Java的访问控制修饰符(如 `public`, `private`, `protected`)对类成员的可见性有影响,了解这些对于编写健壮的代码至关重要。
这些基础知识构成了Java编程的基础,理解并熟练运用这些概念对于编写有效的Java代码非常关键。通过实践和深入学习,开发者可以构建复杂的应用程序,充分利用Java的强大功能。
2019-11-21 上传
2013-09-04 上传
2023-08-08 上传
2023-09-11 上传
2023-06-10 上传
2024-10-29 上传
2023-03-11 上传
2023-06-07 上传
2023-09-19 上传
yanshan3
- 粉丝: 5
- 资源: 9
最新资源
- 基于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任务构建