### 2-面向对象基础知识点解析 #### 一、面向对象基础概述 面向对象编程(Object-Oriented Programming,简称 OOP)是一种程序设计思想,它将计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发来的消息,并处理这些消息,计算机程序的执行就是一系列的消息在各个对象之间传递。面向对象编程的三大特性包括封装性、继承性和多态性。 #### 二、Java 面向对象基础实验解析 ##### 实验目的 通过本次实验,学生将能够: 1. **掌握类的语法结构**:了解如何定义一个类,包括类的基本组成部分如属性(成员变量)、方法(成员函数)等。 2. **掌握类的实例化**:学会如何创建类的对象,并理解对象与类之间的关系。 3. **掌握对象的属性、方法的调用**:学会如何访问和操作对象的属性以及调用对象的方法。 ##### 实验内容详解 ###### 1. 定义二维空间的点类及线段 - **定义点类(Point)**: - 属性:`x` 和 `y` 分别表示点的横坐标和纵坐标。 - 方法:可以提供构造函数来初始化点的位置,还可以添加获取坐标的方法如 `getX()` 和 `getY()`。 - **定义线段类(LineSegment)**: - 属性:两个 Point 对象,分别表示线段的起点和终点。 - 方法:实现计算线段长度的功能,公式为 `length = sqrt((x2 - x1)^2 + (y2 - y1)^2)`。此外,还可以添加其他功能如判断线段是否平行于坐标轴等。 **示例代码**: ```java public class Point { private double x; private double y; public Point(double x, double y) { this.x = x; this.y = y; } public double getX() { return x; } public double getY() { return y; } } public class LineSegment { private Point start; private Point end; public LineSegment(Point start, Point end) { this.start = start; this.end = end; } public double length() { double dx = end.getX() - start.getX(); double dy = end.getY() - start.getY(); return Math.sqrt(dx * dx + dy * dy); } } ``` **测试代码**: ```java public static void main(String[] args) { Point p1 = new Point(0, 0); Point p2 = new Point(3, 4); LineSegment line = new LineSegment(p1, p2); System.out.println("线段长度:" + line.length()); } ``` ###### 2. 定义 Phone 类 - **属性**: - `brand` 表示手机品牌。 - `color` 表示手机颜色。 - `size` 表示手机尺寸。 - 可以自定义添加其他属性,例如存储容量 `storage` 或者摄像头像素 `cameraResolution` 等。 - **方法**: - `call(int num)`:根据传入的电话号码 num 来模拟打电话的动作。可以自定义添加其他方法,例如发送短信 `sendSMS(String message)` 等。 - **实例化**:创建 Phone 对象,并调用其属性与方法。 **示例代码**: ```java public class Phone { private String brand; private String color; private double size; public Phone(String brand, String color, double size) { this.brand = brand; this.color = color; this.size = size; } public void call(int num) { System.out.println("正在给 " + num + " 打电话..."); } } public static void main(String[] args) { Phone myPhone = new Phone("华为", "黑色", 6.5); myPhone.call(1234567890); } ``` ###### 3. 定义学生类 - **属性**: - `studentID` 学号。 - `name` 姓名。 - `age` 年龄。 - `classNumber` 班级编号。 - 可以自定义添加其他属性,例如性别 `gender` 或者住址 `address` 等。 - **方法**: - `show()`:展示学生的个人信息。 - `study(int flag)`:根据 flag 的值来判断该学生是否爱学习。例如 `flag == 1` 表示爱学习,`flag == 0` 表示不爱学习。 - 可以自定义添加其他方法,例如学习 `learn(String subject)` 等。 - **实例化**:创建学生对象,并显示学生基本信息、是否爱学习等。 **示例代码**: ```java public class Student { private String studentID; private String name; private int age; private String classNumber; public Student(String studentID, String name, int age, String classNumber) { this.studentID = studentID; this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println("学号:" + studentID + ",姓名:" + name + ",年龄:" + age + ",班级:" + classNumber); } public void study(int flag) { if (flag == 1) { System.out.println(name + "很爱学习!"); } else { System.out.println(name + "不太爱学习..."); } } } public static void main(String[] args) { Student student = new Student("20220001", "张三", 18, "计算机科学"); student.show(); student.study(1); } ``` 通过以上实验内容的学习和实践,可以帮助学生更深入地理解面向对象编程的基础知识,并掌握如何在实际项目中应用这些知识。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助