日期:2026-07-20
项目:c260720
作者:WanJL
| 对比维度 | 面向对象(Java) | 面向过程(C) |
|---|---|---|
| 思想核心 | 以对象为中心,通过指挥对象实现操作 | 以过程为中心,功能都由自己实现 |
| 特点 | 更符合人类思维习惯,易于维护和扩展 | 按步骤一步步执行,代码直接 |
| 关键词 | 类、对象、封装、继承、多态 | 函数、过程、步骤 |
Java 中一切皆为对象,是一种以对象为中心的编程思想。
类比:设计图纸(类)与成品(对象)的关系。
类的定义: 类是现实生活中一类具有相同属性和行为的事物的抽象。
修饰符 class 类名 {
数据类型 属性名; // 成员变量(属性)
修饰符 返回值类型 方法名(){ // 成员方法(行为)
}
}
类的成员组成:
| 成员 | 对应概念 | 表现形式 |
|---|---|---|
| 属性(Property) | 事物特征 | 成员变量(类中方法外的变量) |
| 行为(Behavior) | 事物操作 | 成员方法(去掉 static 关键字的方法) |
创建对象格式:
类名 对象名 = new 类名();
调用成员格式:
对象名.成员变量; // 访问属性
对象名.成员方法(); // 调用方法
文件:Demo02.java / Student.java
定义类(Student.java):
public class Student {
String name; // 成员变量:姓名
int age; // 成员变量:年龄
// 成员方法:学习
public void study() {
System.out.println("姓名:" + name + ",年龄:" + age + ",在学习");
}
}
使用对象(Demo02.java):
public class Demo02 {
public static void main(String[] args) {
// 创建第一个学生对象
Student s = new Student();
s.name = "张三";
s.age = 25;
s.study();
// 创建第二个学生对象
Student s1 = new Student();
s1.name = "李四";
s1.age = 20;
s1.study();
}
}
要点:同一个
Student类可以创建多个对象,每个对象拥有自己独立的属性值。
文件:Dog.java
public class Dog {
double weight; // 成员变量:体重
double height; // 成员变量:身高
public static void main(String[] args) {
Dog d = new Dog();
d.height = 15.6;
d.weight = 3.14;
}
}
文件:Teacher.java / TeacherTest.java
定义类(Teacher.java):
public class Teacher {
String id; // 教工号
String name; // 姓名
int age; // 年龄
public void teaching() {
System.out.println(id + name + age + "在授课....");
}
public void sleep() {
System.out.println(id + name + age + "在休息....");
}
}
测试类(TeacherTest.java)—— 重点:对象地址输出:
public class TeacherTest {
public static void main(String[] args) {
Teacher t = new Teacher();
t.id = "1001";
t.name = "张三";
t.age = 25;
t.teaching();
t.sleep();
// 直接输出对象名 —— 得到内存地址
System.out.println(t);
// 输出示例:Teacher@4769b07b
}
}
直接打印对象名时,输出格式为:类型@哈希码
| 部分 | 含义 |
|---|---|
Teacher |
对象所属的类型 |
@ |
分隔符 |
4769b07b |
对象在内存中的地址(哈希码的十六进制表示) |
以下练习在
Demo02.java中以注释形式列出,作为课后实现任务。
创建 Teacher 类,包含:
id)、姓名(name)、年龄(age)teaching)——输出 id+name+age老师在授课、休息(sleep)——输出 id+name+age老师在休息创建 Phone 类和 PhoneTest 测试类:
brand)、价格(price)call)、发短信(sendMessage)创建矩形类,包含:
length)、宽度(width)创建圆形类,包含:
radius)创建三角形类,包含:
| 序号 | 知识点 | 说明 | 对应文件 |
|---|---|---|---|
| 1 | 面向对象思想 | Java 以对象为中心,区别于 C 的面向过程 | Demo01.java |
| 2 | 类的定义 | class 关键字定义类,包含属性和行为 |
Demo01.java |
| 3 | 成员变量 | 类中方法外的变量,描述属性 | Student.java, Dog.java, Teacher.java |
| 4 | 成员方法 | 类中定义方法(无 static),描述行为 |
Student.java, Teacher.java |
| 5 | 创建对象 | 类名 对象名 = new 类名(); |
Demo02.java, TeacherTest.java |
| 6 | 调用成员 | 对象名.成员变量 / 对象名.成员方法() |
Demo02.java, TeacherTest.java |
| 7 | 多对象创建 | 一个类可创建多个独立对象 | Demo02.java |
| 8 | 对象地址 | 直接输出对象得到 类型@哈希码 |
TeacherTest.java |
new 类名() 实际上是调用类的构造方法,默认有无参构造private 关键字隐藏属性,通过 getter/setter 访问this 区分new Student().study(); —— 没有名字的对象,用后即弃