Java面向对象高级编程:静态关键字static应用
需积分: 5 67 浏览量
更新于2024-08-05
收藏 73KB MD 举报
"面向对象编程(高级)中的static关键字应用示例"
在面向对象编程中,`static` 关键字是一个非常重要的概念,它用于修饰类的成员变量和成员方法。在Java中,`static` 关键字有以下几个关键点:
1. **静态变量(static fields)**:
- 静态变量属于类,不属类的任何实例。这意味着所有类的实例共享同一个静态变量的副本。在上述代码中,`Account` 类的 `rate` 变量被声明为静态,因此无论创建多少个账户对象,它们都将共享同一个利率。
- 静态变量可以通过类名直接访问,无需创建对象,如 `Account.getRate()` 和 `Account.setRate(0.035)`。
- 静态变量的初始化只会在类加载时进行一次,不会随着对象的创建而重新初始化。
2. **静态方法(static methods)**:
- 静态方法同样属于类,不依赖于类的实例。`annualInterest()` 方法在 `Account` 类中被声明为静态,因为它计算的是基于类的利率和余额,而不是特定对象的状态。
- 静态方法不能直接访问非静态成员,因为它们在没有实例的情况下被调用,无法访问实例变量。
- 静态方法可以通过类名直接调用,例如 `Account.annualInterest()`。
3. **示例分析**:
- 在测试类的 `main` 方法中,创建了两个 `Account` 类的对象 `account1` 和 `account2`,并分别设置了它们的账号和余额。由于利率是静态的,所以这两个账户共享相同的利率。
- 当调用 `annualInterest()` 方法时,它会返回余额乘以当前的静态利率,即 `balance * Account.getRate()`。
- 通过 `toString()` 方法,可以方便地打印账户的信息,包括账号、余额以及年利息。
4. **面向对象原则与静态成员**:
- 静态成员违反了面向对象设计的封装原则,因为它们可以直接通过类名访问,不受对象实例控制。
- 使用静态成员要谨慎,特别是当数据需要与特定对象关联时,应避免使用静态,以防止数据混乱。
`static` 关键字在Java中用于定义类级别的变量和方法,允许我们实现类级别的共享数据和功能。在上述例子中,`Account` 类的 `rate` 变量和 `annualInterest()` 方法都是共享的,不依赖于任何特定的账户实例。理解和正确使用 `static` 是掌握面向对象编程的关键部分。
682 浏览量
107 浏览量
147 浏览量
2024-07-08 上传
107 浏览量
245 浏览量
2021-10-01 上传
473 浏览量
小小小洲,,
- 粉丝: 0
- 资源: 1
最新资源
- AvQL:数据库独立查询语言框架
- KSL Cars Plus-crx插件
- 似qq界面的可拖动窗口
- 10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等.zip
- VSS-Joystick:带有USB蓝牙操纵杆的VSS-Simulator中的机器人控制项目
- Json
- jdk1.8 64位.zip
- SaliencyMapInPython
- 竖曲线标高计算(Excel模板)
- LibtorchDemo:试用PyTorch的C ++前端
- typeAngularAMD:angularJs + requireJs +类型脚本
- level5-01-threads-jjpokey:GitHub Classroom创建的level5-01-threads-jjpokey
- 零售连锁店经营管理之研究——以小北五金百货为例
- chromedriver_win32.zip
- Gatry Night Mode-crx插件
- click_fit:您现在可以使用鼠标选择一些任意点,并在您的顶部拟合一条曲线...-matlab开发