8.封装

news/2024/9/24 1:21:31

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对象放到一个容器中,将此容器返回给页面,在页面上遍历显示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/57027.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

9.面向对象(1)

MODULE 9 面向对象1.会定义静态成员以及会调用静态成员2.会使用可变参数(会给可变参数传参)3.会二分查找(手撕)4.会冒泡排序(手撕)5.会debug的使用一、static关键字(一)static的介绍以及基本使用1.概述:static是一个静态关键字2.使用:(1)修饰一个成员变量:stat…

深入了解Vite:依赖预构建原理

前言 前面我们有提到Vite在开发阶段,提倡的是一个no-bundle的理念,不必与webpack那样需要先将整个项目进行打包构建。但是no-bundle的理念只适合源代码部分(我们自己写的代码),vite会将项目中的所有模块分为依赖与源码两部分。 依赖: 指的是一些不会变动的一些模块,如:…

在keil中使用git

目录搜集官方相关帮助1.application note2.软件附带帮助文件基础准备git命令行MDK版本操作步骤1.Abstract(摘要)2.Introduction3.Workflows3.1.Centralized Workflow4.Using Git with Vision4.1.Project Files under Version Control4.2.Files that do not need to be monitore…

1000多天我开发了一个免费的跨浏览器的书签同步、阅读排版、任意网页标注插件

自我介绍 大家好,我是阿浩,一位后端开发工程师,同时也略懂前端技术。业余时间,我开发了这款小工具——《藏趣云》。 我为什么要写这么个工具 需求来源于我自己,因为我是做开发的。我日常都会使用多款浏览器来测试项目,一次需要登录多个账号,寻找各种测试地址链接。之前因…

02-逻辑概述负判断

https://blog.csdn.net/vviccc/article/details/106694210 来源