7、面向对象
7.0 面向对象介绍
面向对象介绍:
- 面向:拿、找
- 对象:能干活的东西
- 面向对象编程:拿东西过来做对应的事情
7.1 类和对象
- 类(设计图):是对象共同特征的描述。
- 对象:是真实存在的具体的东西。
在Java
中,必须先设计类,才能获得对象。
0️⃣如何定义类
public class 类名{
1、成员变量(代表属性,一般是名词)
2、成员方法(代表行为,一般是动词)
3、构造器
4、代码快
5、内部类
}
1️⃣示例代码:
package src.com.wang.test;
public class Phone{
// 属性(成员变量)
String brand;
double price;
// 行为
public void call(){
System.out.println("手机在打电话");
}
public void playGame(){
System.out.println("手机在玩游戏");
}
}
2️⃣创建测试类:
package src.com.wang.test;
public class PhoneTest {
public static void main(String[] args) {
// 创建手机对象
Phone p = new Phone();
p.brand = "iPhone";
p.price = 5500.00;
// 获取手机对象中的值
System.out.println(p.brand);
System.out.println(p.price);
// 调用手机中的方法
p.call();
p.playGame();
// 创建第二部手机
Phone p2 = new Phone();
p2.brand = "小米";
p2.price = 1299.00;
System.out.println(p2.brand);
System.out.println(p2.price);
p2.call();
p2.playGame();
}
}
3️⃣运行结果:
7.2 类的几个注意事项
- 用来描述一类事物的类,叫做:
Javabean类
。在Javabean
类中,是不写main
方法的。 - 编写
main
方法的类,叫做测试类。可以在测试类中创建Javabean
类的对象并进行赋值调用。 - 类名首字母建议大写,需要见名知意,驼峰模式。
- 一个Java文件中可以定义多个class类,且只能一个类是
public
修饰,而且public
修饰的类名必须成为代码文件名。 - 实际开发中建议还是一个文件定义一个class类。
- 成员变量的完整定义格式是:
修饰符 数据类型 变量名称 = 初始化值;
一般无需指定初始化值,存在默认值。
对象的成员变量的默认值规则:
数据类型 | 默认值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
char | \u0000 (空字符) |
boolean | false |
7.3 练习
我们以一个**实际生活中的“学生”类(Student
)**为例来演示 Java 面向对象的完整过程:包括定义类、创建对象、属性赋值、方法调用。
1️⃣目标:
表示学生的姓名、年龄和成绩,并提供打印信息的方法。
2️⃣代码示例:
package src.com.wang.test;
public class Student {
// 成员变量(属性)
String name;
int age;
double score;
// 方法:打印学生信息
void printInfo() {
System.out.println("学生姓名: " + name);
System.out.println("学生年龄: " + age);
System.out.println("学生成绩: " + score);
}
// 方法:判断成绩是否及格
void checkPass() {
if (score >= 60) {
System.out.println(name + " 的成绩及格了!");
} else {
System.out.println(name + " 的成绩不及格!");
}
}
}
3️⃣创建对象并使用它:
package src.com.wang.test;
public class StudentTest {
public static void main(String[] args) {
// 创建一个学生对象
Student stu = new Student();
// 给对象的属性赋值
stu.name = "张三";
stu.age = 18;
stu.score = 75.5;
// 调用方法
stu.printInfo(); // 打印学生信息
stu.checkPass(); // 检查成绩是否及格
}
}
☑️输出结果:
学生姓名: 张三
学生年龄: 18
学生成绩: 75.5
张三 的成绩及格了!