# java_318
#### 介绍
java接口多继承实现
#### 软件架构
软件架构说明
#### 课堂笔记延续316的面向对象
1.面向对象编程
1.1 面向对象的理解
面向对象映射的是人类社会的思维方式;
面向对象的思维方式: 做什么事情【解决什么问题】?首先考虑的是 找谁去做? 这个 谁 就是对象;
面向对象编程的方法:一开始就创建一个类;然后通过抽象填充 属性 行为 ,这样就定义完了类,然后类和类相互调用就是面向对象的编程;
面向过程的思维方式: 做什么事情【解决什么问题】?首先考虑的是 如何去做? 这个 如何 就是过程;
1.2 面向对象的核心内容
面向对象是围绕8个词展开:
面向对象的核心:抽象、封装、继承、多态; 【面试、考试:面向对象的三大核心: 封装、继承、多态】
面向对象的补充:static、final、Abstract(抽象)、interface(接口)
1.3 抽象
面向对象编程的第一步就是抽象;抽象非常重要,以至于抽象内容不准确,会造成后续的面向对象编程的各种问题;
抽象:从同类个体中将群体的共性进行抽象; 抽象的时候要从业务角度进行;
面向对象的抽象是从业务角度进行,将共性抽取出来; 共性主要从两个维度去描述: 属性; 行为
抽象的操作结果就是获取被抽象这一类个体的共同的 属性 和共同的 行为;
抽象的结果内容会封装到类中;
1.4 类和封装
类:是对对象的规范定义; 也就是在面向对象的思想中,使用类来规范定义对象; 有了类之后,可以使用new操作符创建这个类的实例对象;
封装:将抽象的结果封装到类中;
如何进行封装? 将抽象的属性 以 成员变量的形式进行封装;
将抽象的行为 以 成员方法的形式进行封装;
面向对象的封装还会使用 访问控制符 来限定被封装的属性和行为的访问范围; 这是封装的另外一个层面内容;
访问控制修饰符的访问范围:
public: 任何类都可以访问;
protected:同包的类以及不同包的子类;
默认的:同包的类;
private:本类内部;
成员变量:
定义在类范围内的变量叫做成员变量;
成员方法:
定义在类范围的方法就是成员方法;
软件工程的封装原则:
属性一般定义为私有的 private 类型;
为私有的属性提供getter/setter方法接口,方便外部进行访问;【特殊要求除外】
行为一般定义为共有的 public 类型;
可以适当的提供构造方法;【构造方法可以重载】
1.5 构造方法
构造方法是类的行为方法中的一类特殊的方法;用于在类进行创建生产实例对象时而调用的方法;
构造方法和普通方法的区别:
构造方法名是固定的,是以类名作为构造方法名的;
构造方法没有返回值;
构造方法可以使用访问控制修饰符进行修饰,这和普通方法一样;
构造方法不能被其他的普通方法调用;
构造方法可以被 new 操作符调用;
构造方法之间可以调用,但是调用方式是通过 this(实参列表) 来进行调用;this必须放在第一行;
构造方法可以重载;
构造方法的语法规则:
每个类如果没有明确的显式写出构造方法,则由jvm默认提供一个不带参数的默认的构造方法;
如果一个类有显式的构造方法,则jvm默认提供的构造方法就失效了,如果还想使用默认的构造方法,则需要手动显式写出;
构造方法不能继承,不能重写,没有多态;
继承下的构造方法的语法:
子类在执行构造方法的同时会递归的调用父类的构造方法;【在执行子类的构造方法之前会把所有父类的构造方法执行一遍】
子类的构造方法默认调用的是父类的默认的构造方法,所以要求被调用的父类提供默认的构造方法;
如果子类需要显式的调用父类的构造方法,则需要使用 super(实参列表) 来调用父类的构造方法;
super(实参列表)要求必须防在第一行;
1.5 成员变量和局部变量
成员变量: 定义在类内部的变量就是成员变量;
成员变量可以使用访问控制修饰符修饰;
成员变量声明之后有默认值;不进行初始化也可以直接使用;【根据类型而定】
成员变量的作用域范围是整个类内部;【有点类似C语言全局变量】
成员变量的生命周期是伴随在类的实例对象的生命周期而存在的;
局部变量:是定在方法体、语句块、方法声明的参数列表的变量就是局部变量;
局部变量不能使用访问控制修饰符修饰;
局部变量声明之后没有默认值,且要求局部变量在使用之前必须进行初始化赋值;
局部变量作用域范围从变量声明位置开始到其所在的语句块结束位置为止;
局部变量作生命周期从变量声明位置开始执行到其所在的语句块结束位置执行结束为止;
局部变量和成员变量同名时,局部变量的值会覆盖成员变量的值;也即是同名时使用的值是局部变量的;
判定原则: 范围最小优先原则; 就近原则;
当局部变量和成员变量同名时,成员变量的值会被覆盖;如果此时需要使用成员变量的值,需要使用 this 关键字最为前缀即可;
1.6 继承
父类角度:
继承是使用已有的类派生新的类的一种方法途径;
子类角度:
子类通过继承获取父类允许子类获得的属性和行为一种途径;
继承是父类和子类之间的关系;面对象通过使用继承达到代码复用的目的;
通过继承子类可以获取父类的属性和行为;【由访问控制修饰符来限定】
java的继承是单继承方式,使用extends关键字实现;一个类只能有一个直接父类;【C++是多继承】【单继承是java简单性的一种体现】
java中的顶级父类是Object类;Object是java中的所有类的直接或间接父类;
访问控制修饰符符对继承的限定:【也是封装的体现】
public:可以被继承;
protected:可以被继承;
默认的:能被同包的子类继承;
private:不能继承;
1.7 多态
多态是父类和子类之间的一种关系;对于同名的行为子类展示或者扩展出来的与父类不同的行为状态;
多态可以从两个角度理解:
子类角度:
子类覆盖了从父类继承的同名的方法;好处;扩展的父类行为方法的功能,保证了子类功能的多样性;
也叫作重写(Override)【覆写】; 课下扩展作业:重写和重载异同点?
父类角度:
父类可以指�
没有合适的资源?快使用搜索试试~ 我知道了~
练习-java继承和多态之综合练习.zip
共8个文件
java:7个
md:1个
0 下载量 19 浏览量
2024-12-15
19:55:32
上传
评论
收藏 9KB ZIP 举报
温馨提示
练习-java继承和多态之综合练习.zip
资源推荐
资源详情
资源评论
收起资源包目录
学习-java继承和多态之接口.zip (8个子文件)
java-master
src
stringdemo
StringDriver.java 1KB
interfaceDemo
IfMoveable.java 96B
IfDemo.java 481B
IfSportable.java 159B
TestDriver1.java 553B
Animal.java 545B
objectdemo
ObjectDriver.java 126B
README.md 17KB
共 8 条
- 1
资源评论
yava_free
- 粉丝: 4441
- 资源: 1776
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功