首页 > 其他分享 >8.封装

8.封装

时间:2024-09-05 19:48:20浏览次数:12  
标签:封装 构造 private 属性 javabean 赋值

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

标签:封装,构造,private,属性,javabean,赋值
From: https://www.cnblogs.com/swh666/p/18395489

相关文章

  • 使用vue-json-pretty和vue-json-schema-editor-visual封装一个可视化json数据编辑器及
    一、前言        最近做了一个需求,要求实现可以对json结构进行编辑保存及字段级别的权限管控,结合目前已有的轮子和当前项目的结构,决定使用vue-json-pretty和vue-json-schema-editor-visual来实现效果如下组件支持修改左侧json数据,自动生成右侧树。也支持修改右侧树......
  • 低成本消费类电子主控推荐,PY32F002B单片机 多种封装可选
    今天给大家推荐一颗高性价比单片机,普冉的PY32F002B,专为超高性价比、精简的系统而设计,符合消费市场的基本设计需求,被低成本消费类电子广泛应用。PY32F002B单片机在低成本消费类电子领域具有极大成本优势,价格比部分八位单片机还要便宜,常用的TSSOP20只要5毛,我们还提供无丝印版本给有需......
  • 【C++】封装
    目录1.访问控制符2.封装的目的2.1.数据隐藏和保护2.2.接口与实现的分离2.3.控制访问3.封装的好处3.1.提高代码的安全性3.2.减少错误3.3.提高代码的可维护性3.4.增强代码的可读性3.5.促进模块化设计3.6.提高代码的可重用性3.7.支持面向对象的设计原则......
  • Vue3 组件封装的一些技巧和心得 转载
    在日常开发的过程中,使用Vue的组件进行业务拆分,代码解耦是一个很好的选择;今天就来分享一下我在使用Vue3进行组件封装的一些技巧和心得,希望能够帮助到大家;1.组件特性在Vue中组件是一个独立的实例,每个组件都有共通点,就是:属性、插槽、事件、方法;在日常我们使用第三方组件库的时候......
  • vue3 地图(天地图,百度地图,腾讯地图,高德地图)封装组件调用 带地图搜索功能common_tencent
    废话不多说直接上组件代码:<template><!--地图--><divclass="containerw"><divid="map"class="mapradius-md":style="{width:width,height:height}"></div></div><......
  • 65V高压高效宽频双向同步升降压恒压恒流控制制QFN32L小体积封装
    PC1065是一款同步升降压控制器,适用于驱动高效电源转换器中的MOSFET或氮化镓(GaN)等功率器件。它支持高达65V的宽输入和输出电压范围,并可在降压、升降压和升压模式之间无缝转换。PC1065集成了具有UVLO保护功能的上管和下管栅极驱动器。它提供可编程电感峰值电流限制和输出平......
  • 04封装:静态
    静态/*在Java中:同一包内的类:指的是在相同的包(package)中定义的所有类。例如,如果两个类都在com.example包中,它们属于同一包。所有子类:指的是继承自某个类的所有类,无论这些子类位于哪个包中。例如,ClassB是ClassA的子类,不论ClassB是否在com.example包中,它都是ClassA......
  • 11 Python面向对象编程:三大特性,封装、继承、多态
    本篇是Python系列教程第11篇,更多内容敬请访问我的Python合集1封装封装就是把类的公有属性改成私有属性,并且提供对外访问的方法。示例classMyClass:def__init__(self,value):self.__value=valuedefget_value(self):returnself.__......
  • Java 面向对象编程的四个基本原则(封装、继承、多态和抽象),并给出一个简单的例子说明如
    面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件。在Java中,面向对象编程的四个基本原则是封装、继承、多态和抽象。每个原则都有其特定的目标,帮助开发者构建更加模块化、可维护和可扩展的代码。封装封装是指将数据(属性)和行为(方法)捆绑在一起,并隐藏对象的具体实现细......
  • 使用C++手动封装一个顺序表,包含成员数组一个,成员变量N个
    实现顺序表的判空,判满,添加数据,求实际长度,任意位置的插入/删除,访问数组中的任意一个元素,以及让顺序表自动扩容。首先需要实现一个顺序表需要使用结构体构造其基本组成部分,以及基本函数接口,采用内部声明外部定义的方式。//使用C++手动封装一个顺序表,包含成员数组一个,成员变量N......