面向对象编程基础:类与对象的定义和使用
需积分: 0 197 浏览量
更新于2024-10-16
收藏 157KB DOC 举报
"第四讲 类的定义和使用"
在学习Java程序设计时,面向对象编程是核心概念之一。本讲主要介绍了面向对象程序技术的基础,包括类的定义、对象的创建和引用,以及静态变量和静态方法。面向对象编程(OOP)与传统的面向过程编程有所不同,它更侧重于数据结构和对象间的交互。
面向对象编程的基本思想是将数据和操作数据的方法封装在一个对象中,从而模拟现实世界的实体。对象包含属性(或称为成员变量),用于存储对象的状态,以及行为(或称为方法),用于表示对象的动作。例如,一个名为"ReadingLamp"的类可以定义一个台灯对象,该对象具有"degree"属性(灯泡度数)和"on"方法(打开台灯)。对象的属性和行为是由类定义的,对象是类的具体实例。
类是创建对象的蓝图,它是抽象的。类定义了对象的属性和行为,包括变量和方法。在Java中,类的定义使用关键字"class",并可以包含变量(成员变量)和方法(成员方法)。例如:
```java
class Person {
int sex; // 性别
int salary; // 工资
void employed() { // 方法:显示工作状态
System.out.print("Workstate:");
if (salary == 0)
System.out.println("nojob");
else
System.out.println("job");
}
}
```
在这个例子中,`Person`类有两个变量`sex`和`salary`,以及一个`employed`方法。在类外,我们可以创建`Person`类的对象,并调用其方法:
```java
public static void main(String[] aa) {
Person ps = new Person(); // 创建Person对象
ps.salary = 300; // 设置工资
ps.employed(); // 打印工作状态
ps.salary = 0; // 改变工资
ps.employed(); // 再次打印工作状态
}
```
通过这个例子,我们可以看到类作为数据类型的角色,可以用类名声明对象变量,如`Person ps`。类中的变量保存属性数据,方法则提供了对象的功能。
在设计面向对象的程序时,需要考虑如何定义合适的类来代表问题域中的实体,并确保类的属性和方法能够准确反映这些实体的特征和行为。例如,如果要计算圆的面积和周长,可以定义一个名为`Circle`的类,包含半径(radius)属性和计算面积(getArea)及周长(getPerimeter)的方法:
```java
class Circle {
double radius;
double getArea() {
return Math.PI * radius * radius;
}
double getPerimeter() {
return 2 * Math.PI * radius;
}
}
```
在这个`Circle`类中,`radius`是对象的属性,`getArea`和`getPerimeter`是对象的行为。通过实例化`Circle`类并调用相应方法,即可计算出圆的面积和周长。这就是面向对象编程的基本理念,通过封装、继承和多态等特性,使得代码更易于维护和扩展。
2023-01-08 上传
2021-10-07 上传
2021-10-11 上传
2021-10-11 上传
2021-10-10 上传
2021-08-19 上传
2021-09-11 上传
2021-09-09 上传
syndi21
- 粉丝: 1
- 资源: 5
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析