JavaSE基础语法--封装

news2024/12/23 1:43:23

Java是一门面向对象的语言。面向对象的三大特性:封装,继承,多态。封装到底是什么含义呢?通俗来讲就是屏蔽掉类的实现细节,对外提供接口让你调用。举个现实生活中的例子:

刚好618刚过,我因为需求换了一台电脑(旧电脑卡的飞起来经常死机)。拿到新电脑之后,我开机就能使用CPU,内存等功能,我插入键盘接口我就能使用键盘,我插入鼠标接口我就能使用我的鼠标。但是我并没有关心CPU是怎么工作的,我也没有关心键盘鼠标驱动的实现细节。我只是插入即可使用。这其实就是我们封装的思想--对内屏蔽细节,对外提供接口。


上面我们讲了封装的本质,那么我们一个在定义一个类的时候,类里有成员变量,成员方法。成员变量本质就是数据,成员方法本质就是功能实现。那么封装就是要讲数据和操作数据的方法进行有机的结合,隐藏对象的属性和细节,仅对外公开接口来和对象进行交互。具体怎么实现呢,这就涉及到一个权限问题了。

权限也叫访问修饰限定符,下图是权限表,图片截取网上:

缺省的意思就是在不加权限说明的时候,是有一个默认的权限,也就是default,但default不是一个权限关键字。只是默认的。而private,protected,public都是权限的关键字。

我们还要提到一个概念就是包。包其实可以理解为是一个文件夹。不同的文件夹很好的管理着不同的东西:

比如游戏的放在游戏文件夹,联系人放在联系人文件夹中。那么Java中,包的概念是一样的。为了方便管理我们写的类。分门别类的管理的这些文件夹就叫包。 举个例子就比好我们之前用的Arrays这个类。并不在我们的代码中实现。而我们想要使用就需要把这个包给导进来:

有了包的概念就能理解上面图中的一些权限问题。


 我们看封装的具体实现:

 我们更改了name的权限,发现类外访问是报红的。private权限只能类内访问。于是我们可以通过公共接口的手段实现,代码如下:

class Person{
    private String name;   //只有类内能访问,实现封装
    private int age;
    public  Person(String name,int age){
        this.name=name;
        this.age=age;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
public class TestDemo {
    public static void main(String[] args) {
      Person person=new Person("郭志伟",2);
        System.out.println(person.getName()+" "+person.getAge());
        person.setName("伟大佬");
        System.out.println(person.getName()+" "+person.getAge());



    }
    }

输出结果如下:

 代码较简单,仔细看看就明白了。这就是封装的思想。

 

 

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

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

相关文章

chatgpt赋能python:Python算和的重要性及优势

Python算和的重要性及优势 在现代科技时代,计算机的应用范围越来越广泛,Python算和作为一种高效而强大的计算工具,已经成为了无数科学家和工程师的必备技能。Python算和不仅仅在各类科学实验中有着重要的应用,也在企业开发、数据…

chatgpt赋能python:Python程序一直运行怎么停止?

Python程序一直运行怎么停止? 在开发软件时,有时候我们会遇到Python程序一直运行不停止的情况,这时候我们该如何解决呢?本文将介绍一些常见的方法帮助您停止Python程序。 常见的停止Python程序的方法 1. KeyboardInterrupt&…

【硬件5】vr电源芯片驱动

文章目录 1.读MPS5023芯片:0x03ff即将前6位屏蔽2.读PXE1410CDM电压和电流:一个数&0x7ff,将这个数前5位全变为0,其余位不变2.1 1ine11:先看第15和10位,e9b6是上面读出的值2.2 1ine16:PMBUS协…

chatgpt赋能python:Python空循环:提高代码效率的神器

Python空循环:提高代码效率的神器 Python作为一门高效、易学的编程语言,广泛应用于各行各业。在编写Python代码时,循环结构是经常使用的。但是,有时候我们需要使用循环结构,但并不需要执行任何操作。这时候&#xff0…

chatgpt赋能python:Python中的空格:一种重要的编程元素

Python中的空格:一种重要的编程元素 在Python编程中,空格是被广泛使用的重要元素之一。本文将介绍Python中空格的重要性,并探讨空格在编程中的不同应用。 为什么空格在Python编程中如此重要? Python对空格敏感,意味…

CVPR2023 多目标跟踪(MOT)汇总

一、《OVTrack: Open-Vocabulary Multiple Object Tracking》 作者:Siyuan Li* Tobias Fischer* Lei Ke Henghui Ding Martin Danelljan Fisher Yu Computer Vision Lab, ETH Zurich 论文链接 :https://openaccess.thecvf.com/content/CVPR2023/papers/Li_OVTrack…

[Selenium] 通过Java+Selenium查询某个博主的Top40文章质量分

系列文章目录 通过JavaSelenium查询文章质量分 通过JavaSelenium查询某个博主的Top40文章质量分 文章目录 系列文章目录前言一、环境准备二、查询某个博主的Top40文章2.1、修改pom.xml配置2.2、配置Chrome驱动2.3、引入浏览器配置2.4、设置无头模式2.5、启动浏览器实例&#x…

【瑞萨RA_FSP】WiFi——ESP8266模块通讯

文章目录 一、Wifi模块简介二、ESP8266功能介绍1. 通用输入/输出接口(GPIO)2. 使用UART与WIFI通讯3. ESP8266工作模式介绍 三、AT指令四、实验:STA模式测试1. 文件结构2. 宏定义函数3. ESP8266-STA功能函数4. 中断回调函数5. hal_entry入口函…

chatgpt赋能python:Python中的空值

Python中的空值 在Python编程中,空值指的是没有任何值的对象。在其他编程语言中,空值常常被称为null、nil、None或者undefined。Python中的空值用None关键字表示。 None 在Python语言中,None用于表示没有任何值。当用户要定义一个值却不想…

chatgpt赋能python:Python组合框(Combobox)介绍

Python组合框(Combobox)介绍 Python组合框(Combobox)是GUI编程中常用的一个组件,它可以让你在一个下拉框中选择一个或多个选项。Python组合框的特点是可以让用户自定义选项,也可以在选项中加入数据&#x…

红黑树-迭代器实现

目录 迭代器自增 当前结点存在右子树 当前结点没有存在右子树 迭代器自增完整代码 迭代器自减 迭代器自减代码: 迭代器自增 红黑树的迭代器应该怎么实现呢?现在我模仿大佬的实现逻辑。 我们迭代器最重要是可以允许自增与自减的实现的。 会发现我们…

chatgpt赋能python:Python程序运行速度问题

Python程序运行速度问题 Python是一种高级语言,其语法简洁、易于学习,在科学计算、数据分析、web开发等领域有着广泛的应用。然而,Python程序在运行速度方面却存在一定的瓶颈,这也是许多开发者关注的问题。本文将从多个方面探讨影…

【深度学习笔记】二分类问题与 Logistic 回归

本专栏是网易云课堂人工智能课程《神经网络与深度学习》的学习笔记,视频由网易云课堂与 deeplearning.ai 联合出品,主讲人是吴恩达 Andrew Ng 教授。刚兴趣的网友可以观看网易云课堂的视频进行深入学习,视频的链接如下: https://m…

chatgpt赋能python:Python等待一秒:介绍和用法全解析

Python等待一秒:介绍和用法全解析 什么是Python等待一秒? 在编写Python脚本时,我们通常要让程序暂停一段时间,这可以通过让程序等待一定的时间来实现。等待时间可以是任意长度的时间,最常见的时间单位是秒。Python中…

chatgpt赋能python:三种常见的Python程序错误及解决方案

三种常见的Python程序错误及解决方案 Python是一种高级编程语言,具有易读、易学、易维护等特点,被广泛应用于Web开发、数据分析、人工智能等领域。但是,即使是有10年Python编程经验的工程师也难免会犯错误。这篇文章将介绍Python程序中的三种…

Unity3D:添加设备

Unity3D:添加设备 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 添加设备 若要将新设备添加到设备模拟器,请创建设备定义和设备覆盖。 设备定义是 Unity 项目中扩展名的文本文件。它包含描述设备属性的 …

数据结构第六章 图 6.4 图的应用 错题整理

4.A A. 不是简单路径的话,有环,去环路径会更短 B. 适合的 弗洛伊德算法才不适合 C. 本来就是 D 2X2矩阵拓展到3X3矩阵 再扩大 若是子集 即加入新顶点后,最短路径都没有变,错 5.B 本题用弗洛伊德更合适 但这道题只需全部代入求最…

chatgpt赋能python:Python简单计算器代码

Python简单计算器代码 Python是一种高级的编程语言,被广泛用于开发各种类型的应用程序,包括计算器应用程序。在本文中,我们将介绍Python简单计算器代码的实现和用法。 Python简单计算器代码介绍 一个简单的计算器能够实现基本的算术运算&a…

回溯注意点:回溯时间复杂度的计算与剪枝操作

文章目录 回溯的时间复杂度计算示例1:77.组合示例2:216.组合总和Ⅲ示例3:17.电话号码字母组合关于剪枝对时间复杂度的影响 回溯的剪枝操作必要性及适用场景示例1:组合剪枝剪枝优化点: 示例2:组合剪枝剪枝优…

STL容器(持续更新中)

一、string类 1. 构造函数 常用的构造函数如下。 构造函数原型含义string()默认构造函数。创建一个默认string对象,长度为0string(const string &s)拷贝构造函数。用一个string对象初始化另一个string对象string(const char *s)用字符串常量构建string对象st…