java 封装

1、封装概述

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

(2)是面向对象编程语言对客观世界的模拟,客观世界里的成员变量都隐藏在对象内部,外界无法直接操作。通俗来说,就是把对象的属性和方法结合成一个独立的整体,隐藏实现细节,并提供对外访问的接口。

2、封装原则

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。例如:成员变量用private修饰,提供对应的getXxxx()/setXxx()方法。代码实现如下:

public class Student {
   private String name;
   private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age < 0 || age > 200) {
            System.out.println("你给的年龄不符合要求");
        } else {
            this.age = age;
        }
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}

3、封装好处

(1)通过方法来控制成员变量的操作,提高了代码的安全性。因为用方法来控制的话,可以对变量进行安全性校验。如下图所示:

(2)把代码用方法进行封装,提高了代码的复用性。假设方法中有很多代码,如果每次使用都要写这么多代码,是不是很麻烦?所以用一个方法来封装,每次使用的时候直接调用这个方法即可。


 

本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!

创作不易,如果对你有点帮助的话麻烦点个赞支持一下!

新手小白,欢迎留言指正!

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

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

相关文章

【zip密码】zip压缩包密码忘了,怎么办?

Zip压缩包设置了密码&#xff0c;解压的时候就需要输入正确对密码才能顺利解压出文件&#xff0c;正常当我们解压文件或者删除密码的时候&#xff0c;虽然方法多&#xff0c;但是都需要输入正确的密码才能完成。忘记密码就无法进行操作。 那么&#xff0c;忘记了zip压缩包的密…

Verilog刷题笔记39

题目&#xff1a;Create a 100-bit binary adder. The adder adds two 100-bit numbers and a carry-in to produce a 100-bit sum and carry out. 解题&#xff1a; module top_module( input [99:0] a, b,input cin,output cout,output [99:0] sum );wire [99:0]cc;assign …

【倪琴膝琴鉴赏】倪诗韵古琴小膝琴

此琴无论是材料还是做工&#xff0c;都很不错。琴体小巧精致&#xff0c;形制优美&#xff0c;边缘线条流畅有活力&#xff0c;各部位比例匀称&#xff0c;制作精当&#xff0c;真是美得不可方物&#xff0c;难得的形音俱佳之作。不愧为倪老师的代表作品——伏羲。 古人为了出行…

webpack5零基础入门-5使用webpack处理stylus文件

1.需要下载一个包 npm i stylus-loader 2.功能介绍 stylus-loader:负责将stylus文件编译成css文件 3.配置&#xff1a; const path require(path);//nodejs用来处理路径问题的模块module.exports {/**入口 */entry: ./src/main.js,/**输出 相对路径*/output: {/**文件输…

(vue)Module Error (from ./node_modules/eslint-loader/index.js)

(vue)Module Error (from ./node_modules/eslint-loader/index.js) 方法1&#xff1a;直接关闭eslint // vue.config.js module.exports {lintOnSave: false, //关闭eslint语法检查...... }方法2&#xff1a; 参考&#xff1a;解决参考 解决参考&#xff1a;如何修复vue-cli…

香港科技大学(广州)先进材料学域可持续能源与环境学域智能制造学域博士招生宣讲会——北京专场(暨全额奖学金政策)

三个学域代表教授亲临现场&#xff0c;面对面答疑解惑助攻申请&#xff01;可带简历现场咨询和面试&#xff01; &#x1f4b0;一经录取&#xff0c;享全额奖学金1.5万/月&#xff01; 报名链接&#xff1a; https://www.wjx.top/vm/wF2Mant.aspx# 地点&#xff1a;中关村皇冠…

【进阶五】Python实现SDVRP(需求拆分)常见求解算法——差分进化算法(DE)

基于python语言&#xff0c;采用经典差分进化算法&#xff08;DE&#xff09;对 需求拆分车辆路径规划问题&#xff08;SDVRP&#xff09; 进行求解。 目录 往期优质资源1. 适用场景2. 代码调整3. 求解结果4. 代码片段参考 往期优质资源 经过一年多的创作&#xff0c;目前已经成…

Transformer的前世今生 day01(预训练、统计语言模型)

预训练 在相似任务中&#xff0c;由于神经网络模型的浅层是通用的&#xff0c;如下图&#xff1a; 所以当我们的数据集不够大&#xff0c;不能产生性能良好的模型时&#xff0c;可以尝试让模型B在用模型A的浅层基础上&#xff0c;深层的部分自己生成参数&#xff0c;减小数据集…

【NLP学习记录】One-Hot编码

1. One-Hot编码概念 one-hot编码的基本思想是将每个类别映射到一个向量&#xff0c;其中只有一个元素的值为1&#xff0c;其余元素的值为0。这样&#xff0c;每个类别之间相互独立&#xff0c;不存在顺序或距离关系。 举例&#xff1a;对于三个类别的情况&#xff0c;可以使用…

【LIMS】微服务

目录 一、服务解决方案-Spring Cloud Alibaba1.1选用原因&#xff08;基于Spring Cloud Alibaba的试用场景&#xff09;1.2 核心组件使用前期规划 部署 nacos部署 mino使用JavaFreemarker模板引擎&#xff0c;根据XML模板文件生成Word文档使用JavaFlowable 工作流引擎前端 -vue…

信息发布系统

特色功能 画布功能---可任意拖动各控件的播放位置及大小&#xff0c;可任意选择屏幕背景色或添加背景图 同步联屏---毫秒级同步功能 视频切换无黑屏 触摸查询系统 会议预定系统 终端显示-会议综合屏 终端显示-会议预定屏 终端显示-移动端 广告发布系统 硬件产品-智能终端 硬件…

Codeforces Round 933(Div.3) A~F

A.Rudolf and the Ticket&#xff08;暴力&#xff09; 题意&#xff1a; 鲁道夫要去拜访伯纳德&#xff0c;他决定乘坐地铁去找他。车票可以在接受两个硬币的机器上购买&#xff0c;这两个硬币的总和不超过 k k k。 鲁道夫有两个装硬币的口袋。左边口袋里有 n n n枚面值为 …

有问有答开源问答平台网站源码系统 带完整的安装代码包以及搭建教程

在当前的信息爆炸时代&#xff0c;用户对于高效、精准地获取信息的需求日益强烈。问答平台以其独特的互动形式&#xff0c;能够为用户提供更加直接、实用的信息解答。然而&#xff0c;市场上的问答平台大多存在功能单一、定制化程度低等问题&#xff0c;难以满足用户多样化的需…

抖音无水印视频关键词批量下载|视频下载工具

抖音无水印视频关键词批量下载操作说明 我们根据自己的需要开发了抖音视频批量下载工具&#xff0c;现在市面上的视频无水印工具只能通过单个视频链接进行提取&#xff0c;太不方便 所以我们延伸出了 不仅可以通过单个视频链接进行提取也可通过关键词进行视频搜索 进行批量和有…

tsn交换机应用场景

TSN交换机应用场景 随着工业互联网的快速发展&#xff0c;越来越多的工业设备需要进行互联互通&#xff0c;并实现实时通信和数据传输。而传统的以太网交换机在满足工业互联网需求方面存在一定的局限性&#xff0c;因此&#xff0c;TSN&#xff08;时钟同步网络&#xff09;交换…

【数字图像处理系列】显示图像

显示图像 在 MATLAB 桌面上图像一般使用函数imshow来显示,该函数的基本语法为imshow(f,[])imshow(f,[])将变量 1ow设置为数组f的最小值,将变量high设置为数组的最大值 imshow(f,[low high])imshow(f,[low high])会将所有小于或等于1ow的值都显示为黑色,所有大于或等于high…

【测试开发学习历程】MySQL条件查询与通配符 + MySQL函数运算(上)

前言&#xff1a; 18日08&#xff1a;56&#xff0c;总要先写完明天的博客&#xff0c;才能安心准备今天或者明天的学习。 半夜爬起来写博客真的好辛苦&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 回归…

语音识别:whisper部署服务器,可远程访问,实时语音转文字(全部代码和详细部署步骤)

Whisper是OpenAI于2022年发布的一个开源深度学习模型&#xff0c;专门用于语音识别任务。它能够将音频转换成文字&#xff0c;支持多种语言的识别&#xff0c;包括但不限于英语、中文、西班牙语等。Whisper模型的特点是它在多种不同的音频条件下&#xff08;如不同的背景噪声水…

html--蝴蝶

<!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>蝴蝶飞舞</title> <link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.cs…

基于GEC6818的QT开发之——通过不同按键控制DHT11模块的数据采集与动态显示

基于GEC6818的QT开发之——通过不同按键控制DHT11模块的数据采集与动态显示 使用环境: ubantu16 QT5.7 开发板GEC6818 实现要求&#xff1a; 利用A53按键1、按键2与温湿度传感器完成QT界面动态显示温湿度记录&#xff0c;并指定温湿度记录超过指定范围&#xff0c;进行报警&…