(JAVA)02——面向对象编程(上)

面向对象编程

面向对象编程(OOP)

OOP——Object Oriented Programming
OOA——Object Oriented Analysis
OOD——Object Oriented Design

基础知识

一、寻找(需求分析):实体

	从生活中找到一个具体的对象,该对象有什么样的属性,以及该对象有什么功能。

————————————————————————————————————————

二、语法规则:

	将具体的对象构建成一个类,比如根据X员工可以创建成一个员工类,类中有员工共有的属性,功能等。
	创建类——创建类的属性——创建类的方法。

	
	公用的静态特征: 属性——变量
	动态的特征:行为——动作——功能——方法(函数)

————————————————————————————————————————

三、抽象出伪代码结构

在这里插入图片描述

	类名遵循首字母大写和驼峰命名法。
	每个类中都存在一个隐式的无参构造方法(构造函数)。

————————————————————————————————————————
在这里插入图片描述
Java中4种权限修饰符及其作用范围

————————————————————————————————————————

四、实例化的实质

在这里插入图片描述

调用

使用.操作符调用属性或者方法。

为什么在类中用私有函数对变量进行赋值和调用更为安全?

	为了不让其示例对象直接通过 对象.属性名 来使用和修改,而是通过set属性名,get属性名,更安全,
这样属性就不会随意的被赋值上任何非法的值了,可以在set属性名的方法中进行控制。
	其次,在赋值和调用的函数中可以加入判断语句和其它语句,来确保满足更多的条件。

————————————————————————————————————————
————————————————————————————————————————

前置知识点

五、软件的生命周期

1.项目立项
2.软件需求分析
行业规范——业务流程、管理规范、报表
3.概要设计(架构设计)
技术选型
4.详细设计
定义属性、方法、数据库的表结构
原型设计
5.编程——编码阶段
开发人员根据语言的语法
6.软件测试
单元、综合、集成、压力测试
白盒子测试
黑盒子测试
7.部署、上线(用户培训、使用手册)
8.运维阶段
9.版本更新
	结束生命周期:淘汰——停止使用

————————————————————————————————————————

六、软件开发

1.基于互联网开发

2.Web开发

3.前端

4.后端(JAVA)

——逻辑包分层的目的

	src——以逻辑包(package)的形式进行创建源代码。
4.1 防止出现相同的文件名
4.2 主要是区分源程序的业务模块
4.3 POJO
	POJO(简单的JAVA对象),实际就是普通的JavaBeans,是为了避免和EJB混淆所创造的简称。

	特征:特征:有一些属性及其getter setter方法的类,没有业务逻辑。

————————————————————————————————————————

七、封装+继承+多态

1. 封装

1.1 如何从现实世界中抽象出类?
1.通过需求---设计---表结构(字段---属性---变量)
2.命名:表名----充当:类名(首字母大写+驼峰命名法)
3.将属性私有化:private

4.定义上述属性的getters/setters系列方法

1.2 构造方法的特点和作用是什么?
	封装任何一个实体类都会存在一个隐式的默认的构造方法:
	
1.方法名与类名相同
2.没有参数
3.一般情况、方法体为空
4.无任何返回值类型

	一般的构造方法:

1.方法名与类名相同
2.无任何返回值类型
3.包括不能出现void
1.3 方法的重载
1.在一个类中
2.方法名相同
3.参数列表不同,即参数的个数或者类型不同
4.方法重载的好处
	4.1 便于阅读和使用,优化设计。
1.4 如何实现类的封装?
	①、属性私有化--类可见性
	②、定义属性的系列方法:getters---setters方法
	③、根据开发需求可以定义带参数的构造方法
	④、当定义有带参数的构造方法时、强烈推荐将隐式的默认构造方法写出来
	⑤、根据开发需求:可以定义属性输出的toString()方法
	⑥、可以在getters或者setters方法中加少量的逻辑语句
1.5 封装的好处是什么?
1.安全性
2.保密性
3.代码复用,能减少代码量,提高开发效率
1.6 判断方法重载的依据是什么?
①、是否在同一个类中
②、方法名是否相同
③、形式参数不同:个数或者类型不同
④、与权限修饰符无关
⑤、与返回值类型无关
1.7 什么是类(静态)方法?什么是类(静态)变量?
使用static关键字修饰的方法-----静态方法(类方法)
使用static关键字修饰的属性-----静态属性(类属性)---静态变量
1.8 什么是实例方法?什么是实例变量?
没有使用static关键字修饰的方法或者属性=====>实例方法或者实例属性
1.9 类方法(类属性)与实例方法或者实例变量的区别?

Java中类方法与实例方法的区别

1.10 static修饰符的含义和相关的知识点

Java中static关键字的作用与用法
在这里插入图片描述

1.11 this()与super()使用详解

【java】this()与super()使用详解
————————————————————————————————————————

2.继承

2.1 JAVA体系中支持单继承
2.2 如何继承一个类?
语法:
public class Son extends Father{};
子类可以使用父类部分的属性和方法,也有自己特有的属性和方法。
Object
该类是所有类的基类(超类),是其它类间接或直接的父类。
java.lang.Object
2.3 使用继承的好处
1.提供软件的扩展性。
2.代码复用,减少代码量。
3.可以将复杂的业务进行拆分。
2.4 如何通过super调用父类的属性,方法,构造方法?

在这里插入图片描述

2.5 方法重写必须满足的要求是什么?
1.子类重写父类的方法
2.参数列表相同
3.方法名相同
4.返回值类型相同或者是其子类
5.权限修饰符可以扩大但不能缩小
2.6 子类不能继承父类的哪些财产?
1.final修饰的不能继承
2.private修饰的方法或属性不能继承
3.父类的构造方法不能继承
2.7 抽象类
2.7.1 抽象类是什么?
使用abstract修饰的类就是抽象类。
2.7.2 抽象类和抽象方法的特征是什么?
abstract关键字修饰的方法就是抽象方法,抽象方法还可以在接口中存在。
抽象类的特征:
	1.不能实例化。
	2.抽象类中也可以有其它成员方法,不一定全是抽象方法。
抽象方法的特征:
	1.抽象方法在抽象类中没有方法体,只有声明。
	2.抽象方法需要在子类中实现
	3.若继承的子类中没有将抽象类中的所有抽象方法都实现,则仍需要定义为抽象类,否则会出现异常。
2.7.3 abstract关键字可以修饰什么?不能修饰什么?
1.可以修饰类,方法。
2.不能修饰属性,构造方法。
2.7.4 abstract关键字和哪三个关键字不能同时修饰一个方法或者类?
1.final
2.private
3.static
2.7.5 final关键字可以修饰什么?不能修饰什么?
1.修饰类     -------> 则类不能被继承。
2.修饰方法   -------> 则方法不能被子类重写
3.修饰属性   -------> 则属性变成常量,且必须赋值,而且不能再改变。(推荐以大写形式书写该常量)
4.不能修饰构造方法。
	为什么
不同于方法,构造器不能是abstract, static, final的.

1.构造器不是通过继承得到的,所以没有必要把它声明为final的。
2.同理,一个抽象的构造器将永远不会被实现,所以它也不能声明为abstract的。
3.构造器总是关联一个对象而被调用,所以把它声明为static是没有意义的。

摘自 >>> 构造函数为何不能用abstract, static, final修饰

Java中的final变量、final方法和final类

2.7.6 请说出方法重载与方法重写(覆盖)的区别?

在这里插入图片描述
————————————————————————————————————————

3.多态

3.1 什么是多态?
同一个行为(功能或者方法)、使用不同的实例去操作产生不同的形态的能力。
3.2 什么是向上 / 向下转型?
向上转型:父类的引用指向子类的地址,或者将子类的地址赋给父类的引用
使用的时候会进行自动类型转换,例如:Animal animal = new Cat();

向下转型:将父类的地址赋给子类的引用,或者子类的引用指向父类的地址。
向下转型需要进行强制类型转换,例如:Cat cat = (Cat) animal;
3.3 instanceof运算符的作用和语法格式
instanceof是Java语言中的一个二元运算符,它的作用是:
	判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例,
	即它左边的对象是否是它右边的类的实例,该运算符返回boolean类型的数据。
作用:加强了程序的健壮性

在这里插入图片描述

3.4 实现多态的三个条件是什么?
1.有继承关系
2.子类重写父类的方法
3.有向上转型的条件
3.5 使用多态有什么好处?
1.健壮性
2.代码复用
3.可替换性
4.软件设计的灵活性
5.提高了软件的扩展性和维护性
6.为借口编程思想打下坚实的理论基础
7.软件的设计角度:使用多态的思想:
返回类型或者形式参数列表推荐使用父类作为参数类型----提高软件的灵活性、健壮性和扩展性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值