Java——类和对象第二节——封装

1.什么是封装

封装是面向对象程序的三大特性之一,面向对象程序的三大特性分别是封装,继承,多态

而封装简单来说就是套壳隐藏细节

打个比方:

在一些电脑厂商生产电脑时,仅对用户提供开关机键,键盘输入,显示屏和USB插口,而使用电脑的人不必关心电脑内部硬盘,CUP,芯片等核心组件,就可以通过键盘鼠标显示屏进行交互完成各种功能

封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互

2.访问限定符

在java中封装主要由类和访问权限来实现,类可以将数据以及封装数据的方法结合在一起,更符合人类对事物的认知,而访问权限用来控制方法或者字段能否直接在类外使用。

以上是java提供的4种访问限定的关键字

这四种关键字要怎么理解呢?

这里可以做个比喻

将类比作一个人,包比作一个家族

1.private:同一包中的同一类,也就相当于自己,自己的秘密只有自己知道,所以被private修饰的成员变量和方法只能本类中的成员方法可以调用

2.default:同一包中的不同类,也就相当于一个家族,被default修饰的成员方法和成员变量在同一个包中可以被其他类中的成员方法调用,也就相当于被default修饰后,成为了家族里面的秘密,外人是不知道的

3.protected:主要运用在继承里面,这里就不做过多介绍

4.public:他相当于一个人的外貌特征,谁都可以访问

注意:

1.当成员变量,成员方法或者类的前面什么访问限定符都不写时,编译器会默认为default

2.访问权限除了可以限定类中成员的可见性,也可以控制类的可见性

3.封装的步骤

1.使用private关键字对类里面的成员变量进行隐藏

2.写setter和getter方法对隐藏的成员变量进行访问

注意:1.private一般修饰成员变量

           2.setter和getter方法可以通过idea自动给我们生成

           3.可以在方法里面加一些条件语句进行限制

3.1使用idea生成Getter和Setter方法

3.2封装代码演示

class Student{
//private修饰类的成员变量private String name;private int age;private String gender;public String getName() {return name;}//在类的方法里面添加条件语句,限制名字的长度public void setName(String name) {if(name.length()<6)this.name = name;}public int getAge() {return age;}
//在类的方法里面添加条件语句,限制年龄的范围public void setAge(int age) {if(age>0&&age<30)this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public void show(){System.out.println(this.name+"今年"+this.age+",性别:"+this.gender);}
}public class Test02 {public static void main(String[] args) {
Student student=new Student();
student.setName("李狗蛋");
student.setAge(16);
student.setGender("男");
student.show();}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

瑞友科技质量改进服务事业部总经理张力受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 北京瑞友科技股份有限公司质量改进服务事业部总经理张力先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“PMO如何对接战略成为企业IT投资成功的有效保障”。大会将于6月29-30日在北京举办&#xff0c;敬请关注&#x…

一个不知名的开源项目可以带来多少收入

起源 2020 年新冠疫情开始蔓延&#xff0c;当时我在同时经营 3 个不同的公司。除了其中的体育赛事平台因为疫情关门大吉之外&#xff0c;另外两个公司并没有受影响&#xff0c;营收和利润反而都持续增加。但是连续几个月不能出远门&#xff0c;也不能随便见朋友和客户&#xff…

软件测试到了35岁,真的就干不动了吗?

摘要&#xff1a;随着年龄的增长&#xff0c;很多人担心软件测试岗位是否存在技术瓶颈。本文将从零到一&#xff0c;详细且规范地探讨软件测试岗位在35岁后的发展前景&#xff0c;并提供一些建议以应对可能的挑战。 引言&#xff1a;软件测试作为软件开发生命周期中至关重要的…

基于PySpark进行去哪儿网数据分析

基于PySpark进行去哪儿网数据分析 本文介绍了如何使用PySpark对去哪儿网的数据进行分析&#xff0c;从而洞察用户偏好、热门目的地以及销售趋势。 1.数据加载 我们需要确保已经准备好了PySpark的开发环境&#xff0c;并且准备好了去哪儿网的数据集。可以通过创建SparkSessio…

SpringCloudAlibaba:5.1Sentinel的基本使用

概述 简介 Sentinel是阿里开源的项目&#xff0c;提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。 官网 https://sentinelguard.io/zh-cn/ Sentinel的历史 2012 年&#xff0c;Sentinel 诞生&#xff0c;主要功能为入口流量控制。 2013-2017 年…

中北机械有限公司将参加2024长三角快递物流供应链与技术装备展览会

参展企业介绍 浙江中北机械有限公司总部位于浙江杭州&#xff0c;生产基地位于浙江桐乡。是一家有着十几年金属制品及仓储物流设施设备生产经验&#xff0c;专业设计、生产、制造各类物流钢制托盘&#xff0c;物流手推车&#xff0c;仓储货架及门店展架&#xff0c;宣传展架等物…

Pytorch读取自己的数据集

数据集 流程图 导包设置tfs创建datasets.ImageFolder创建torch.utils.data.DataLoader() import time import os from tqdm import tqdm import pandas as pd import numpy as np import torch import torchvision import torch.nn as nn import torch.nn.functional as F im…

7天精通Web APIs——正则阶段案例(理论+实战)(第六天)

正则表达式的定义和使用 定义&#xff1a;是一种匹配模式&#xff0c;用于匹配字符串中字符组合 作用&#xff1a;表单验证&#xff08;匹配&#xff09;、过滤敏感词&#xff08;替换&#xff09;、字符串中提取我们想要的部分&#xff08;提取&#xff09; 使用分为两步&…

KP85321 650V栅极驱动器兼容代替IR2110 中高压高低边驱动解决方案

KP85321是一款中高压半桥 / 高低边驱动芯片系列&#xff0c;以高可靠性、低温漂、大驱动电流 为主要特性&#xff0c;输出开关节点 dv/dt 可达 100V/nS。高低侧通道相互独立&#xff0c;允许同时导通。 关于 中高压半桥 / 高低边驱动芯片&#xff1a; 中高压半桥/高低边驱动芯…

mybatis 跨库查询 mysql

跨库&#xff0c;表关联的查询&#xff0c;实现起来很简单&#xff1a; select a.uid from ucenter.user a , database user_profile b where a.uid b.uid;只要在表的前边加上库名即可。 这个是我项目中xml 中的一个例子&#xff0c;项目采用的是springmvc,持久层框架就是my…

MySQL:MySQL索引结构为什么选用B+树?

一、前言 当我们发现SQL执行很慢的时候&#xff0c;自然而然想到的就是加索引。在MySQL中&#xff0c;无论是Innodb还是MyIsam&#xff0c;都使用了B树作索引结构。我们知道树的分类有很多&#xff0c;MySQL中使用了B树作索引结构&#xff0c;这是为什么呢&#xff1f; 本文将从…

如何用易查分制作扫码签到,支持在线签名,一键导出名单!

学校在开展培训讲座、研讨会等活动会议时&#xff0c;通常都需要参会人在纸质名单上签字表示到场。负责人不仅要耗费大量人力引导签到&#xff0c;如果人数众多&#xff0c;场面混乱&#xff0c;签到效率会十分低下。 易查分能够制作安全、高效的二维码签到系统&#xff0c;参会…

游泳带什么防水耳机好?甄选四大顶尖游泳耳机推荐,最值入手!

在享受游泳的同时&#xff0c;搭配一款优秀的防水耳机&#xff0c;能够让您的游泳体验更加完美。然而&#xff0c;市面上琳琅满目的防水耳机品牌&#xff0c;让人难以选择。作为一名游泳爱好者&#xff0c;我深知选购一款合适的防水耳机的重要性。因此&#xff0c;我自费购买了…

MHD093C-058-PG1-AA具备哪些特点?

MHD093C-058-PG1-AA是一种高性能的伺服电机控制器。 该产品具备以下特点&#xff1a; 高精度与高性能&#xff1a;MHD093C-058-PG1-AA设计用于提供精确的运动控制和定位&#xff0c;适用于需要高精度定位和控制的场合。快速响应&#xff1a;采用先进的控制技术&#xff0c;确…

高血压患者可以吃什么?不可以吃什么?

点击文末领取揿针的视频教程跟直播讲解 随着生活水平的提高&#xff0c;越来越多的人得上了“新四高”——高血压、高血脂、高血糖、高尿酸。 一旦惹上这些慢性病&#xff0c;那就得「管住嘴」了~但究竟什么能吃、什么不能吃&#xff0c;还是有很多人不清楚 高血压患者应该遵…

2024/5/14 英语每日一段

“It is important as it suggests that possibly several populations in the world already started to include substantial amount of plants in their diet” in the period before agriculture was developed, a view contradictory to the popular one, added archeo-ge…

【C#】 SortedDictionary,查找字典中是否存在给定的关键字

欢迎来到《小5讲堂》 这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景场景说明红黑树原理判断代码Dictionary知识点相关文章 背景 最近…

ICode国际青少年编程竞赛- Python-5级训练场-多参数函数

ICode国际青少年编程竞赛- Python-5级训练场-多参数函数 1、 def go(a, b):Spaceship.step(2)Dev.step(a)Spaceship.step(b)Dev.turnRight()Dev.step(b)Dev.turnLeft()Dev.step(-a) Dev.turnLeft() Dev.step(3) Dev.step(-3) go(3, 2) go(6, 1) go(5, 2) go(4, 3)2、 def go(…

高校普法|基于SSM+vue的高校普法系统的设计与实现(源码+数据库+文档)

高校普法系统 目录 基于SSM&#xff0b;vue的高校普法系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3律师功能模块 4学生功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获…