【博学谷学习记录】超强总结,用心分享 | JavaEE面向对象基础总结01

88 阅读5分钟

面向对象基础

一、面向对象和面向过程思想对比

面向过程:是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的

面向对象:是一种以对象为中心的编程思想,通过指挥对象实现具体的功能

面向过程编程(POP):自己干活

面向对象编程(OOP):指挥别人干活

简单来说,就是具有具体功能的事物,都可以通过代码的形式将其描述为程序中的对象,然后就可以指挥这些对象去调用里面的功能

对象:指客观存在的事物,万物皆对象

二、类和对象

什么是类?

类是对现实生活中一类具有共同属性行为的事物的抽象

是对事物,也就是对象的一种描述可以将类理解为一张设计图

根据设计图,可以创建出具体存在的事物

根据类去创建对象

2.1类的定义

类的组成:属性和行为

属性:在类中通过成员变量来体现(类中方法外的变量)

行为:在类中通过成员方法来体现

2.2类的定义步骤:

① 定义类

② 编写类的成员变量

③ 编写类的成员方法

2.3类和对象的关系

:类是对现实生活中一类具有共同属性和行为的事物的抽象

对象:是能够看得到摸的着的真实存在的实体

2.4对象的使用

创建对象

格式:类名 对象名 = new 类名();

范例:Student s = new Student();

使用对象

1:使用成员变量

格式:对象名.变量名

范例:p.name

2:使用成员方法

格式:对象名.方法名()

范例:p.study();

三、类中的变量

类中的变量分为成员变量和局部变量

成员变量: 类中方法外的变量

局部变量: 方法中的变量

区别成员变量局部变量
类中的位置不同类中方法外方法内或者方法声明上(形参)
内存中位置不同堆内存栈内存(方法被调用会进入栈内存中,调用完成后弹栈)
生命周期不同随着对象的存在而存在,随着对象的消失而消失随着方法的调用而存在,随着方法的调用完毕而小时
初始化值不同有默认的初始化值没有默认的初始化值,必须先定义,赋值,才能使用

四、封装(面向对象三大特征之一)

了解封装之前先来了解两个关键字

private关键字和this关键字

4.1 private关键字

是一个权限修饰符,可以修饰成员(成员变量和成员方法),被private修饰的成员只能在本类中才能访问

针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作

  • 提供get变量名()方法,用于获取成员变量的值,方法用public修饰
  • 提供set变量名(参数)方法,用于设置成员变量的值,方法用public修饰

对于一个标准类来说:

需要把成员变量用private修饰,还需要提供对应的setXxx()/getXxx()方法

4.2 this关键字

问:如果局部变量和成员变量如果重名,会怎么调用?

答:局部变量和成员变量如果重名,Java使用的是就近原则

如果想要自己控制调用的是哪个变量,这时候就需要用到this关键字了

this关键字的作用:可以调用本类的成员(变量, 方法)解决局部变量和成员变量的重名问题

this:代表所在类的对象引用

记住:方法被哪个对象调用,this就代表哪个对象

4.3 封装

面向对象三大特征之一(封装,继承,多态

隐藏实现细节,仅对外暴露公共的访问方式

问:封装指的就是私有吗?

答:私有仅仅是封装的一种体现

封装的体现

私有成员变量,提供setXxx和getXxx方法

将代码抽取到方法中,这是对代码的一种封装

将属性抽取到当中,这是对数据的一种封装

封装的好处

1、提高了代码的安全性

2、提高了代码的复用性

五、构造方法

概述:

构建、创造对象的时候,所调用的方法

格式:

  1. 方法名与类名相同,大小写也要一致
  1. 没有返回值类型,连void都没有
  1. 没有具体的返回值(不能由retrun带回结果数据)

执行时机:

  1. 创建对象的时候调用,每创建一次对象,就会执行一次构造方法
  1. 不能手动调用构造方法

作用:

用于给对象的数据(属性)进行初始化

注意:

① 构造方法的创建

如果没有定义构造方法,系统将给出一个默认无参数构造方法

如果定义了构造方法,系统将不再提供默认的构造方法

② 构造方法的重载

如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法

③ 推荐的使用方式

无论是否使用,都手动书写无参数构造方法,和带参数构造方法

六、标准类的制作

【快捷方式生成:只需要写成员变量,其他的可以用idea自动生成【

在类中右键,选择Generate

image-20220828230208022.png

选择Constructor生成构造方法

① 成员变量

使用private修饰

② 构造方法

提供一个无参构造方法

提供一个带多个参数的构造方法

③ 成员方法

提供每一个成员变量对应的setXxx()/getXxx()

提供一个显示对象信息的show()

④ 创建对象并为其成员变量赋值的两种方式

无参构造方法创建对象后使用setXxx() 赋值

使用带参构造方法直接创建带有属性值的对象