Java面向对象三大特性封装和private关键字

news2025/2/26 18:11:19

目录

  • 友情提醒
  • 一、Java面向对象的三大特性之封装
    • 1)概念和好处
    • 2)封装案例
      • ①访问权限修饰符(private)
      • ②构造方法与gette&setter方法
      • ③具体的封装案例

友情提醒

先看文章目录,大致了解知识点结构,直接点击文章目录可以跳转到文章指定位置。

一、Java面向对象的三大特性之封装

1)概念和好处

①设计思路:实例化对象时,个别成员属性或者成员变量我们不希望被外界直接访问,我们把对象的属性和操作包装起来,并尽可能隐藏对象的内部实现细节,但同时会提供一些公共的接口(就是方法),来支持对它们的操作。
②好处:封装实际上就是使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。
③如何实现:通过关键字private,protected和public实现封装。

2)封装案例

①访问权限修饰符(private)

对于类的成员(包括成员属性和成员方法)而言,其能否被其他类所访问,取决于该成员的修饰词。

①其中public成员属性可以被任何类访问和使用。可以通过类名.成员属性的方式来访问public成员变量。

②protected成员属性只能在类内部和子类中使用。在子类中,可以通过super关键字来访问父类的protected成员属性。

③(如图)

private成员属性只能在类内部使用,要访问private成员属性必须通过类提供的公共方法getter&setter来访问。
​​​​​​​​​​​​​​在这里插入图片描述

②构造方法与gette&setter方法

①构造方法可以初始化private修饰的变量
②但是后续访问,必须使用公共的接口(就是getter&setter方法),来支持对它们的操作。

public class BmsBoy {
    //属性
    private String name;
    private int age;

    //构造方法
    public BmsBoy(String name,int age){
        this.name = name;
        this.age = age;
    }

    public BmsBoy(){

    }
    public void printInfo(){
        System.out.println("姓名:" + name + "年龄:" +age );
    }
}

getter&setter方法的格式:

			getter方法:
				public 返回值类型 get属性名(){
					return 属性名;
				}
			setter方法:
				public void set属性名(数据类型 形参名){
					属性名 = 形参名;
				}

③具体的封装案例

使用private私有化属性后,提供getter&setter方法访问此属性。

class Person
{    String name;
    private int age;	//age属性被私有化了 --> 理解:被隐藏起来,只能在本类中被使用
	/*
		正常的实例化对象完毕后,我们可以通过对象名.属性名的方式为对象属性进行赋值操作;
		赋值的数据内容可能违背生活逻辑的值(不合理的数据) --> 数据存在安全隐患
		我们就考虑没收外界对象名.属性名赋值的权利 --> 将属性私有化即可(private修饰属性)
		我们需要在当前类的内部提供外界访问属性的方式(公共的方法) --> getter&setter方法

		getter&setter方法的格式如下:
			getter方法:
				public 返回值类型 get属性名(){
					return 属性名;
				}
			setter方法:
				public void set属性名(数据类型 形参名){
					属性名 = 形参名;
				}
	*/
    //getter方法
    public int getAge(){
        return age;
    }
    //setter方法
    public void setAge(int a){
        //如果有需要,则可以进行数据合理性的校验
        if(a <= 0 || a > 120 ){
            System.out.println("年龄不合理...");
        }else{
            age = a;
        }
    }
}

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

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

相关文章

苹果mac清理软件CleanMyMac X v4.13兼容13系统,堪称Mac最好的系统清理工具

CleanMyMac X for mac是MacOS上一款Mac清理优化工具&#xff0c;不仅包含各种清理功能&#xff0c;更是具有卸载器、维护、扩展、碎纸机这些实用功能&#xff0c;可以同时代替很多工具。它可以清理&#xff0c;优化&#xff0c;保养和监测您的电脑&#xff0c;确保您的Mac运行…

cleanmymac x 4.13新功能介绍,cleanmymac x怎么取消订阅

CleanMyMac X4.13版是一款运行在macOS系统中的专业清理软件&#xff0c;以安装方便、使用简易、功能完善等特点而闻名。CleanMyMac X在功能方面可以说是做到了极致&#xff0c;下面让我们看一下CleanMyMac X都包含有哪些功能。 CleanMyMac X是一款专业的Mac清理软件&#xff0c…

文件批量改名#批量修改文件名称中有特殊符号

在日常工作中&#xff0c;相信大家都会碰到&#xff0c;需要有修改文件名或文件夹名称等&#xff0c;修改方法也是很多种&#xff0c;如果遇到文件名有特殊符号&#xff0c;要如何把特殊符号删除或替换成自己需要的文字或其他表情符号呢。一般大家都是手动去修改&#xff0c;如…

安装和使用分布式HDFS系统在CentOS 8上进行文件上传操作

文章目录 实验目的和背景实验目的实验背景 实验过程步骤1&#xff1a;安装Java步骤2&#xff1a;下载hadoop-3.3.1.tar.gz步骤3&#xff1a;创建一个普通用户来运行Hadoop Hadoop 概念Hadoop 整体设计HDFSHDFS 的节点命名节点 (NameNode)数据节点 (DataNode)副命名节点 (Second…

语义分割学习笔记(四)膨胀卷积

推荐课程&#xff1a; 1.膨胀卷积_哔哩哔哩_bilibili&#xff08;膨胀卷积原理讲的很清楚&#xff09; 2.膨胀卷积(Dilated convolution)详解&#xff08;gradding effect问题和解决方法讲的很清楚&#xff09; 感谢博主霹雳吧啦Wz / 太阳花的小绿豆和Enzo_Mi提供视频讲解和源…

C++ OpenCV编译安装教程

文章目录 环境说明Cmake编译配置编译前配置编译选项开始正式编译安装 编写代码测试参考文章 环境说明 win10 MinGW64 Cmake 下载mingw64 (版本&#xff1a;12.1.0 posix-seh) 下载Cmake (版本3.17.5) 注&#xff1a;mingw64和cmake下载安装完成后记得把bin目录添加到【环境…

Video Grounding

一些工作能够检测包含特定动作的视频片段&#xff0c;一般称 为动作检测&#xff08;action detection&#xff09;或视频中的时序动作定位&#xff08;Temporal Action Grounding in Videos&#xff0c;TAGV&#xff09; 然而&#xff0c; TAGV 受限于预先定义的动作类别集合…

基于html+css的图展示57

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

母亲节:向世界上最伟大的母爱致敬

在这世间众多的亲情关系中&#xff0c;有一种关系无与伦比&#xff0c;毫不费力地凌驾于其他任何已知的地球关系之上。这种非凡的关系就是母亲与子女之间的关系。 母亲对家庭无尽的爱、奉献和忠诚使这份感情无价。为了向全球所有母亲表示敬意&#xff0c;母亲节在世界46个国家庆…

如何用ChatGPT拆解爆款内容(文章/脚本)、提出修改意见,再根据修改意见,最终成稿?

该场景对应的关键词库&#xff08;11个&#xff09;&#xff1a; 示例内容、爆款库、内容类型、拆解角度、亮点、不足、修改建议、文案、风格、文章、脚本 提问模板&#xff08;4个&#xff09;&#xff1a; 第一步&#xff1a;建立自己的爆款库&#xff0c;并选择其中1个爆款…

路径规划算法:基于鲸鱼优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于鲸鱼优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于鲸鱼优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法鲸鱼…

SpringBoot通过自定义注解整合Redisson实现分布式锁(单机+集群模式)

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; SpringBoot通过自定义注解整合Redisson实现分布式锁 ⏱️ 创作时间&am…

低代码信创开发核心技术(一):基于Vue.js的描述依赖渲染DDR实现模型驱动的组件

前言 随着数字化转型的不断发展&#xff0c;低代码开发平台已成为企业快速建立自己的应用程序的首选方案。然而&#xff0c;实现这样一个平台需要具备高效、灵活和可定制化的能力。这正是基于描述依赖渲染&#xff08;Description dependency rendering&#xff09;所实现的。…

Jenkins 发布到 windows 主机

由于一些原因, 最近程序部署在windows 服务器上比较多, 本文以将前端程序发布到windows server 2016 为例进行介绍 流程 需考虑网络联通性, 此处我的目标服务器没有公网固定IP, 故采用vpn 工具组网 步骤: 一、使用执行SSH脚本的方式 1. 在jenkins 服务器及目标机器上安装 VP…

Windows终端中文乱码,查看系统默认编码及修改系统默认编码

最近windows升级之后出现一个问题&#xff0c;终端出现了乱码&#xff0c;导致启动程序启动不起来。 window系统如何查看系统默认编码 方式一&#xff1a; 在Windows平台下&#xff0c;winr 打开运行—》输入cmd进入cmd窗口&#xff0c;输入&#xff1a;chcp 可以得到操作系统…

会声会影2023是什么软件,会声会影和pr到底哪个好

图1是pr&#xff08;premiere&#xff09;平时大家可能会经常听到有人说会声会影2023&#xff0c;但是很多人都不知道这是什么软件。其实听它的名字就知道这是一款和声音、影像有关系的软件。下面&#xff0c;小编就来给大家具体介绍一下这款软件吧。 会声会影2023是什么软件&…

微信客服对接-唯一客服系统文档中心

微信客服官方网址为&#xff1a;https://kf.weixin.qq.com &#xff0c;可以在微信内、外各个场景中接入微信客服&#xff0c;提供一致的咨询体验&#xff0c;企业可通过API接口回复消息&#xff0c;做好客户服务。 微信客服或者也可以叫企业微信客服&#xff0c;可通过API接口…

CSS平面转换和渐变

01-平面转换 简介 作用&#xff1a;为元素添加动态效果&#xff0c;一般与过渡配合使用 概念&#xff1a;改变盒子在平面内的形态&#xff08;位移、旋转、缩放、倾斜&#xff09; 平面转换也叫 2D 转换&#xff0c;属性是 transform 平移 transform: translate(X轴移动距…

IM即时通讯系统[SpringBoot+Netty]——梳理(三)

文章目录 七、打通业务服务器与IM服务器多端同步1、负载均衡策略—随机模式2、负载均衡策略—轮询模式3、负载均衡策略—一致性Hash4、配置负载均衡策略5、使用Apache—HttpClient封装http请求工具6、用户资料变更、群组模块回调7、数据多端同步8、封装查询用户Session工具类9、…

两分钟速览谷歌2023IO大会:AI军备竞争,全线出击

大家好&#xff0c;我是可夫小子&#xff0c;关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加&#xff1a;keeepdance&#xff0c;备注&#xff1a;chatgpt&#xff0c;拉你进群。 5月10日周三&#xff0c;谷歌举办了年度开发者大会Google I/O 2023&#xff0c;在会上…