概述
各位来往的大佬们,还望批评指正!
面向对象编程(OOP)
一、初识面向对象
1.面向对象思想
物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才能对某个分类下的细节进行面向过程的思索。
2.面向对象编程的本质
以类的方式组织代码,以对象的组织(封装)数据。
3.抽象
4.三大特征
封装,继承,多态
二、方法回顾和加深
1.方法的定义
(1)修饰符 返回类型
修饰符 返回值类型 方法名(){
// 方法体
return 返回值
}
(2)break 和 return 的区别
break 跳出switch,结束循环;return 结束方法,返回一个结果。
(3)方法名
注意规范,驼峰原则 见名知意
(4)参数列表
(参数类型,参数名)
(5)异常抛出
例如,数组下标越界
2.方法的调用 (例如,递归)
(1)静态方法和非静态方法
静态方法可直接调用,非静态方法需要先实例化类再进行调用。
![](https://file2.kaopuke.com:8081/files_image/2023062921/815add62193f17d2708c3a1bf95ff283.png)
(2)形参和实参
![](https://file2.kaopuke.com:8081/files_image/2023062921/e4161c02cd2a467db4ed1cee680f8056.png)
(3)值传递和引用传递(Java里面都是值传递)
1.值传递
![](https://file2.kaopuke.com:8081/files_image/2023062921/40fb21a39ec9c472de4b45af78712d09.png)
2.引用传递
![](https://file2.kaopuke.com:8081/files_image/2023062921/e578e6d4df9236109f247669fed226ac.png)
三、对象的创建分析
1.类与对象的创建
类是一种抽象的数据类型,对象是抽象概念的具体实例,张三就是人的一个具体实例,张三家的旺财就是狗的一个具体实例
![](https://file2.kaopuke.com:8081/files_image/2023062921/e4af707d75d67f7bcff430f160cdbba9.png)
2.构造器详解
构造器:
1.首先和类名相同
2.没有返回值
作用:
1.new 本质在调用构造方法
2.初始化对象的值
注意点:
1.定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造
![](https://file2.kaopuke.com:8081/files_image/2023062921/2fdaad3395eddd6f0a2d1a3d38179ecb.png)
3.创建对象内存分析
![](https://file2.kaopuke.com:8081/files_image/2023062921/178d0c68f67e893dd89ad23ca68e5c02.png)
![](https://file2.kaopuke.com:8081/files_image/2023062921/ca72f61cdc3cf4da34f360907ce07098.png)
4.小结类与对象
类与对象
类是一个模板:抽象的,对象是一个具体的实例
方法
即 定义、调用!
对象的引用
引用类型: 八大基本类型
对象是通过引用来操作的
属性: 字段 成员变量
默认初始化:
数字: 0 0.0
char: u0000
Boolean: false
引用: null
对象的创建和使用
必须使用new关键字创建对象,构造器 Person xzc = new Person()
对象的属性 xzc.name
对象的方法 xzc.sleep()
类
静态的属性 即 属性
动态的行为 即 方法
四、面向对象的三大特性
1.封装详解
该露的露,该藏的藏
我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴漏少量的方法给外部使用。
封装(数据的隐藏)
通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
记住这句话:属性私有,get/set
![](https://file2.kaopuke.com:8081/files_image/2023062921/182f357131e96fbc393a474772cd368b.png)
2.继承
1.继承
继承的本质时对某一批类的抽象,从而实现对世界更好的建模。
extends的意思时“扩展”。子类是父类的扩展。(父子关系)
Java中类只有单继承,没有多继承!(一个子类只能有一个父类,一个父类可以有多个子类。)
私有的东西无法被继承!
![](https://file2.kaopuke.com:8081/files_image/2023062921/52ffa04f61aa433c57118ea90fe12d20.png)
2. Super详解
![](https://file2.kaopuke.com:8081/files_image/2023062921/af62a946cf3d8da1363f9605278bb19a.png)
![](https://file2.kaopuke.com:8081/files_image/2023062921/797b7963031c41bbef57874b06b12fab.png)
super注意点:
1、super调用父类的构造方法,必须在构造方法的第一个
2、super必须只能出现在子类的方法或者构造方法中!
3、supper和this不能同时调用构造方法!
和 this相比:
代表的对象不同:
this: 本身调用者这个对象
super: 代表父类对象的应用
前提:
this:没有继承也能使用
super:只能在继承条件下可以使用
构造方法
this(); 本类的构造
super(); 父类的构造!
3.方法重写
重写都是方法的重写,和属性无关
是 子类重写父类的方法
1.静态方法
![](https://file2.kaopuke.com:8081/files_image/2023062921/ee8bd63990de84e8c21ff1cda092ebcd.png)
![](https://file2.kaopuke.com:8081/files_image/2023062921/e3931c821a8ac8fec0c4773b8212300e.png)
2.非静态方法
![](https://file2.kaopuke.com:8081/files_image/2023062921/1901f9c96f8c6d8c616f3229a64669f8.png)
![](https://file2.kaopuke.com:8081/files_image/2023062921/09c0cdabbb598fbb4a0a804278dda7db.png)
/*
重写:需要有继承关系,子类重写父类的方法!
1.方法名必须相同
2.参数列表必须相同
3.修饰符:范围可以扩大但不能缩小:
public>protected>default>private
4.抛出的异常:范围,可以被缩小,但不能扩大。
重写,子类的方法和父类必须一致,方法体不同!
为什么要重写:
1.父类的功能,子类不一定需要,或者不一定满足!
Alt+insert : override;
*/
3.多态
多态:即同一方法可以根据发送对象的不同而采用多种不同的行为方式。
没用重写 更不用提多态
多态是方法的多态,属性没用多态;父类和子类,要有练习,or 类型转换异常 ClassCastException!
存在条件 有继承关系,重写了方法,父类引用指向子类对象! Father xzc = new Son();
4.instanceof和类型转换
/*
1.父类引用指向子类的对象
2.把子类转换为父类,向上转型
3.把父类转换为子类,向下转型
4.方便方法的调用,减少重复的代码
*/
demo06
5.static关键字详解
五、抽象类和接口
1.抽象类
![](https://file2.kaopuke.com:8081/files_image/2023062921/23b45d5656baee67d0eddcdebe3be618.png)
2.接口的定义与实现
![](https://file2.kaopuke.com:8081/files_image/2023062921/73fcc7e105198666f13c197f86b7c82e.png)
![](https://file2.kaopuke.com:8081/files_image/2023062921/937fd1dd181ddf7105e177fad66632ba.png)
、
六、内部类及OOP实战
1.N种内部类
内部类就是在一个类的内部再定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类就是外部类。
![](https://file2.kaopuke.com:8081/files_image/2023062921/5e4592e3936716a8c5bc2fc2aadb735b.png)
2.异常
抛出异常,捕获异常
异常处理的五个关键字:try catch finally throw throws
![](https://file2.kaopuke.com:8081/files_image/2023062921/5d6bcab43ba0eacc0ae16ea186c341b8.png)
![](https://file2.kaopuke.com:8081/files_image/2023062921/50bc05be2ba025a821d03dacbefda780.png)
![](https://file2.kaopuke.com:8081/files_image/2023062921/187aaf53991fb83b38d97ffe39be41a6.png)
最后
以上就是风趣店员为你收集整理的java基础小总结面向对象编程(OOP)的全部内容,希望文章能够帮你解决java基础小总结面向对象编程(OOP)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复