8.封装

MODULE 8 封装

1.要回使用private关键字修饰成员,并知道被private修饰之后的作用(访问特点)是什么

2.会使用set方法为属性赋值,使用get方法获取属性值

3.会利用this关键字区分重名的成员变量和局部变量

4.会利用空参构造创建对象,并知道空参构造作用

5.会使用有构造创建对象,并为属性赋值

6.会快速生成一个标准的javabean类

一、封装

将一个物品封装起来,外界不能直接使用了,提高了物品的安全性

(一)封装的介绍以及使用

1.面向对象三大特征:封装 继承 多态

2.什么是封装思想:

(1)(洗衣机)(使用洗衣机功能的过程就是在使用面向对象思想编程的过程) (细节被封装到按钮里面了->封装)我们没必要了解内部结构,只知道调 用就可以了

(2)隐藏对象内部的复杂性,只对外公开,公共的接口,便于外界调用,从 而提高了系统的可扩展性,可维护性,安全性,通俗来说,把该隐藏的隐 藏起来(细节),把该暴露的暴露出来(对外提供的供别人使用的接口), 这就是封装思想

(3)将细节隐藏起来,不让外界随便使用,但是我们可以提供一个公共的接 口让外界间接使用隐藏起来的细节->封装思想

3.问题:

定义成员变量,只要是new出来对象,就可以随便调用,随便赋值,哪怕是 不合理的值,所以需要将属性封装起来(隐藏细节)

(1)关键字:private(私有化的) -> 被private修饰的成员只能在本内中 使用,在别的内中使用不了

(2)注意:

将代码放到一个方法中,也是封装的体现

一个成员被private修饰也是封装的体现,只不过private最具代表

(3)private的使用:

修饰成员变量:private 数据类型 变量名

修饰方法:将public改成private,其他都一样

属性被私有化了,外界直接调用不了,那么此时属性就不能直接赋值取值了, 所以需要提供公共的接口get/set方法

set方法:为属性赋值

get方法:获取赋值

小结:

用privat将属性封装起来,外界不能直接调用,保护了属性

对外提供一套公共的接口(set/get方法),让外界通过公共的接口间接使用 封装起来的属性

(二)this关键字

1.如果成员变量和局部变量重名时,我们选择就近原则,先访问局部变量

2.this概述:代表的是当前对象

3.作用:this可以区分重名的成员变量和局部变量

this点出来的一定是成员变量

4.this代表当前对象?

那个对象调用的this所在的方法,this就代表哪个对象

(三)构造方法

1.概述:方法名和类名一致并且能初始化对象的方法

2.分类:

(1)无参构造:没有参数

(2)有参构造:有参数,参数是为指定的属性赋值

(3)满参构造:给所有属性赋值

3.特点:

(1)方法名和类名一致

(2)没有返回值,连void都没有

4.空参构造:

(1)格式:

public 类名(){

}

(2)作用:new对象使用

(3)特点:每个类中默认都有一个无参构造,不写也行,jvm会自动提供

(4)使用:new的时候就是在调用构造方法

5.有参构造:

(1)格式:

public 类名(形参){

为属性赋值

}

(2)作用:

A.new对象

B.为属性赋值

(3)特点:

jvm不会自动提供有参构造,但是将有参构造手写出来,jvm不再提 供无参构造,所以建议有参,无参构造都手写上去

(四)标准JavaBean

要求:

(1)类必须是具体的(非抽象 abstract)和非公开的,public class类名

(2)并且具有无参数的构造方法,有参构造

(3)成员变量私有化,并提供用来操作成员变量的set和get方法

com.shujia.controllar -> 专门放和页面打交道的类(表现层)

com.shujia.service -> 专门放业务处理的类(业务层)

com.shujia.dao -> 专门放和数据库打交道的类(持久层)

com.shujia.pojo -> 专门放javabean类

com.shujia.utils -> 专门放工具类

小结:

1.知道private的作用嘛?私有的,别的类不能直接调用

2.知道空参构造作用嘛?new对象

3.知道有参构造作用嘛?new对象 为属性的赋值

4.知道set方法作用嘛?为属性赋值

5.知道get方法作用嘛?获取属性值

6.知道this作用嘛?区分重名的成员变量和局部变量

7.知道快捷键生成标准JavaBean嘛?alt+insert

(五)JB怎么来的

1.将来的javabean都是和数据库的表相关联

(1)类名 -> 表名

(2)属性名 -> 列名

(3)对象 -> 表中每一行数据

(4)属性值 -> 表中单元格中的数据

将页面填写的数据获取到,封装到javabean中,一层一层传递到dao层,然 后将javabean中的属性值获取出来放到表中保存 -> 相当于是一个添加功能

将所有的数据查询出来,封装成一个一个的javabean对象,然后将封装好的 javabean对象放到一个容器中,将此容器返回给页面,在页面上遍历显示

posted @ 2024-09-05 19:47  dededea  阅读(7)  评论(0编辑  收藏  举报