个人理解:
- 什么是类:类是一个模板,我们可以根据这个模板做出拥有相同特征和属性的一类事物。
- 什么是对象:对象就是具体的事物了,它是类的具体化。
创建Java文件Person的类模板
// 一个人的类模板
public class Person {
// 人都有名字的属性
String name;
// 人都有年龄的属性
Integer age;
// 人都有身高的属性
Double height;
// 人都有吃东西的能力
public void eat() {
System.out.println("人再吃");
}
// 方法重载: 方法名相同参数列表不同与返回值无关
public void eat(String food) {
System.out.println("人在吃"+food);
}
}
不同的每个人都有不同的职业,创建学生类模板Students.java
public class Students extends Person { // 学生也属于人类,所以它拥有人类的属性和行为特征
// 学生有读书的行为
public void stady() {
// 所以人拥有的公共属性和行为特征学生都可以用。
System.out.println(name+"是一个学生,他正在学习...");
}
// 学生在早上一般都是喝牛奶的,所以要给他具体化。对应人的eat()行为。方法的重写 Override
@Override
public void eat() {
System.out.println("学生在早晨喝牛奶");
}
}
创建工人类模板Worker.java
public class Worker extends Person { // 工人也是人的一种,所以他有人的共同属性和行为特征
// 工人需要工作挣钱,个人特有的行为。
public void work() {
System.out.println(name+"是一名工人,他正在工作...");
}
//
@Override
public void eat() {
System.out.println("工人在吃早晨。");
}
}
创建Java文件Demo.java
public class Demo {
public static void main(String[] args) {
Students stu = new Students(); // 通过类模板,创建出一个对象。实例化Students对象
stu.name = "小晓"; // 给这个对象的name属性一个 "小晓" 的值
stu.study(); // 让stu这个对象执行study()学习的行为
Worker worker = new Worker();
worker.name = "狗蛋"; // 给这个对象的name属性一个 "狗蛋" 的值
worker.work(); // 让worker这个对象执行work()工作的行为
// stu和worker都是属于人这一类的,多态:一类事物有多种的状态。 如人类:学生、老师、家长、工人
Person person_1 = stu;
Person person_2 = worker;
// 通过多态来调用两种不同社会角色吃的方法,我不需要知道他是什么角色、他会自己执行自身角色应该怎么吃的行为。
person_1.eat();
person_2.eat();
}
}
方法构成:
// 无参无返:不需要执行条件,也不需要结果。
public void simple() {
}
// 有参无返:需要执行条件,但不需要执行结果
public void simple(String param) {
}
// 有参有返:需要执行条件,也需要执行结果
public String requir(String param) {
return "给的值是:"+param;
}
// 无参有返:不需要执行条件,但需要执行结果
public String requir() {
return "并没有执行条件";
}