这里写自定义目录标题
面向对象
实际开发,半面向对象,半面向过程,结合起来实现具体的代码。
面向对象的三大特征
封装、继承、多态、(抽象)
封装 encapsulation
public String getName() {
return name;
}
public void setName(String name) {
//name 参数
//this.name 属性,成员变量 this代表当前类
this.name = name;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
## 利用eclipse 自动生成get和set方法,以及toString()方法![在这里插入图片描述](https://img-blog.csdnimg.cn/c26adf1d965d4edb81523140a1a01af6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/53cf255e4045445cac378f991ab3771b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ac529db57e3a4ca1806a39867159843f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
## 自动生成
![在这里插入图片描述](https://img-blog.csdnimg.cn/03e3e70527df4834a6b8077648f94a00.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
错误![在这里插入图片描述](https://img-blog.csdnimg.cn/96eec624d9eb4ced8b0d8965e35b4dd7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
正确![在这里插入图片描述](https://img-blog.csdnimg.cn/064c5bc799674971bbdd516a6575a195.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/73aa2b7d83ad4fcab3e9b3840d2f3865.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/577702edc1d74b90a547d3ae1330f5c3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/bc4f70ea99e74285bd3d51b619891619.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/60139824aa5847b8b0eb2c5832e0c416.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
## 继承 inheritance
## 为什么需要继承
好处是,可以减少相同的代码,减少冗余
## 接口的实现方式
需求:
动物
![在这里插入图片描述](https://img-blog.csdnimg.cn/45fbc8d09d3b45ba8cd5be20917f691f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
## 多态 polymorphism
![在这里插入图片描述](https://img-blog.csdnimg.cn/063131ca389a4c78a169b8bd46c04620.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaml1dGVtZWxpcHU=,size_20,color_FFFFFF,t_70,g_se,x_16)
## 小结
3)面向对象概念:三大特征:
1.封装
2.继承:两种实现方式
a)extends 继承类
b)implements 实现接口
3.多态
4)封装具体的实现
a.创建实体类
b.一堆私有属性,外部不能直接访问 private String name;
c.一堆的get和set方法来调用 getName()、setName();
d.一堆业务的方法(行为) eat() play()...
5)类的继承
a.java单继承,就像继承多个类?多级继承,爷爷-爸爸-我,没有C语言多继承灵活,但安全,不易出错,出错好找到问题的所在类
b.把公用的代码就写在父类中
c.
d.子类调用 Fruit水果是父类,Apple是子类,怎么调用父类方法
d1)声明他们之间的关系,继承关系
d2)
好处:
6)接口的实现
a)定义接口,
b)实现接口
c)
好处:规范代码,实现向后兼容,程序就方便扩展 JCBC
主流开发方式提倡,面向接口开发!
7)类和接口本质的差异
a.类使用class修饰,接口使用interface修饰
b.类中内容都必须实现,接口中没有实现的
c.类是可以被extends继承的,任何类都可以有子类 ,接口实现接口(多级)
d.类干活,接口不干活