简单理解为什么Java要使用封装类

article/2025/10/10 19:08:43

个人学习所用,有错误和不足之处欢迎指出和补充。

目录

前言

基本数据类型与封装类的区别:(用 int 和 Integer 举例)

为什么要使用封装类:


前言

Java中存在八种基本数据类型:(整数型)byte、short、int、long,(浮点型)float、double,(字符型)char,(布尔型)boolean。

其对应的封装类型为:Byte、Short、Integer、Long、Float、Double、Character,Boolean。

除此之外,还有一个没有基本数据类型但常用的封装类:String。

基本数据类型与封装类的区别:(用 int 和 Integer 举例)

在使用时发现在创建时方式不同:int型直接给一个变量名并赋值即可;而Integer需要创建一个对象,再为这个对象传入一个参数。但是最后输出的结果却是一样的。

但是IDE却报了一个警告,说此处的 Integer 是不必要的装箱并弃用,并且建议改为 int 型

由于暂时还未学习到这么深入的地步,所以就简单了解一下吧。通过上网查资料,简单来说,装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。

Integer num = new Integer(1);   //Java5之前
Integer num = 1;    //Java5之后//以上定义方式为装箱int num2 = num;   //拆箱

 所以由此看来,在数值方面,两者是一样的。只是引用他们的值的话,甚至会建议使用基本数据类型。

而两者之间的区别是 Integer 是一个类,其中封装了许多方法和属性,然后就可以利用这些方法和属性来处理数据,而 int 数据类型就做不到。另一个区别在于两者的默认值不同,int型的默认值为0,而对于Integer来说,因为封装类产生的是一个对象,所以其的默认值为null。

而当Integer对象调用相应的方法后,就已经不是单纯的值了,甚至已经将赋值转化成了其他类型。

为什么要使用封装类:

  • 有使用需求

      Java是一门面向对象的语言,我们时时刻刻都在创建对象,也随时都在使用对象,很多时候在传递数据时需要的正是对象类型。而将某个基本数据类型进行封装后相当于就是一个对象,就可以拥有自己的属性和方法,当有了这些方法后,我们就可以利用其来处理数据了。

  • 安全性好

      将java类进行封装后类内部的结构可以自由修改,也可以对成员变量进行更精确的控制,同时还可以避免其他类随意修改自己的成员变量,内部细节被隐藏了以及不能随意破坏,也就保证了成员变量以及数据传递的安全性。

  • 结构不同

     在性能结构上来说,基本数据类型(int i)是在栈上创建的,而对象类型(new Integer())在堆上创建。堆能获得的空间较大,且堆中的具体内容是人为安排的,这样就能更方便地使用一些基本类型不具备的方法。

  • 隐藏细节,对外提供接口方便使用

      举个例子,一辆汽车包含许多的零件,每个零件都有自己的作用,但最终要组装在一起才能成为一辆汽车。对于开车的人来说,汽车里面的零件长什么样子并不重要,只要能够开走就行;汽车有方向盘,就相当于接口,只要接口统一,任何一个会开车的人都能将这辆车开走。

  • 可维护性好,方便重用

      在需要的时候,只需要进行内部结构和数据的更改,而不改变对外接口,,对其的引用就不会受到影响;在需要重复使用时也可以直接引用,就像一辆车可以给很多人开。

总之就是,既实现了数据的安全,又能够更好地对数据进行操作。让代码结构易于解释和理解,同时还能提供多种方案(封装不同的方法和属性)来适应不同的需求。既提高了开发效率也提高了代码的质量。


http://chatgpt.dhexx.cn/article/bhFfqD9R.shtml

相关文章

Java 基本数据类型以及封装类

本篇博客内容大部分是借鉴其他博客的,但是在此基础上博主本人修改以及添加了一些内容,也算属于原创,本篇博客仅供博主本人学习参考。 Java基本类型共有八种,基本类型可以分为三类, 字符类型 char; 布尔类…

java 中封装类有哪些_java中封装类(一)

java中封装类共九个,分别是Boolean,Byte,Short,Integer,Long,Float,Double,Character,Void 其中Void对于使用者并无多大意义,也不可以构造任何对象,代码如下: packagejava.lang;public final classVoid {public static final Class TYPE = Class.getPrimitiveClass("vo…

Java包装类(封装类)详解

目录 包装类概念 包装类的继承 基本数据类型——>>包装类 的转换 默认值的区别 包装类——>>基本数据类型 的转换 xxValueof方法 toString方法 区别 自动装箱: 自动拆箱: 基本数据类型、包装类——>String类型 的转换 Sting类型…

Java类的封装

目录 1.什么是类的封装? 2.如何实现类的封装 1.private操作符 2.get与set 1.语法格式 2.封装演示 1.什么是类的封装? 隐藏对象的属性和实现细节,仅对外提供公共访问方式。 类的封装可以让使用者使用更加简单,数据也会更加安…

基本类型的封装类

目 录 1.基本数据类型的封装类 2.int类型的封装类是Integer!其中常用的构造方法有: 3.Integer封装类中常用的方法: 4.封装类的常用操作: 用于基本数据类型与字符串之间的转换. int类型转换为String类型 String类型转换为int类型 (需要注意的是该字符串的字面上…

ubuntu18.04安装虚拟显示器,不接显示器可远程桌面

Overview 主机配置启用远程控制安装软件和支持其它注意事项Reference 主机配置 系统:Ubuntu 18.04显卡:Intel 集成显卡 启用远程控制 注意,如果 teamviewer 是有登录账号,通过账号链接,那么有无上文的 Ubuntu 自带的远…

WIN10系统 Indirect Display 虚拟显示器之特殊应用

by fanxiushu 2020-05-20 转载或引用请注明原始作者。 有人询问我是否可以实现这样一种功能: 对windows输出的每一帧图像数据显示做一些特殊处理(比如球形桌面,曲面化等特效),然后再显示到显示器上。 而且还不止一个人…

windows虚拟显示器开发(二)WDDM hook(USB转HDMI驱动、USB手写屏开发)

很久没有继续研究wddm hook了,最后一次研究还在3年前,不得不说虽然应用的少,但是wddm hook却是很有技术含量的一项技术,而且实用性很高,我们除了做虚拟显示器还能做很多的东西,比如高效的截屏(因…

Ubuntu20.04 虚拟显示器配置,解决Ubuntu无显示器时nomachine/vnc/Teamviwer等远程终端桌面卡顿问题

🍀设置虚拟显示屏 安装xserver-xorg sudo apt-get install xserver-xorg-core-hwe-18.04 sudo apt-get install xserver-xorg-video-dummy增加xorg配置文件,通过指令vim /usr/share/X11/xorg.conf.d/xorg.conf,添加以下内容。 Section &qu…

X86工控机虚拟显示器设置(nomachine远程桌面)

前言 使用arm设备不需要设置虚拟显示器,可能已经设置过了。使用X86工控机需要设置虚拟显示器,这里介绍如何设置、如何取消,如何使用远程桌面。 nomachine 一、打开车载主控制器的命令行终端,安装虚拟显示器相关驱动软件。 su…

出现多个虚拟显示器(通用非即插即用监视器)处理办法

导致原因 安装docker软件时进行了一些设置,然后就出现这种情况了 本来想着吧这几个显示器卸载就好了,发现根本没用 然后处理办法如下 首先打开系统应用 打开相关设置里面的 程序和功能 继续 关闭虚拟机平台 ##重启就好了

如何在云电脑串流中实现多屏操作——WDDM虚拟显示器开发

文章目录 如何在云电脑串流中实现多屏操作——WDDM虚拟显示器开发1. 概述2. DxgkInitialize3. HOOK框架4. VIDPN5. 虚拟显示器6. 实现效果 如何在云电脑串流中实现多屏操作——WDDM虚拟显示器开发 “虚拟显示器”是一种新型的计算机图形显示端口技术,它可以将一台计…

ubuntu开机自启vnc虚拟显示器并使用向日葵远程连接

虚拟显示器 设置开机自动解锁 解锁后打开自动登录 1、预安装 依赖 sudo apt-get update sudo apt-get install xfce4 sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop sudo apt-get install vnc4server 初始化 在终…

RealVNC Server Ubuntu 20.04 无显示器连接 虚拟显示器

以前尝试过完全不接显示器,vnc连接设置总是不成功,这次很容易做成功了,记录一下。 以前记录的远程桌面使用心得: 远程桌面使用心得_捉不住的鼬鼠的博客-CSDN博客 RealVNC远程连接带显示器模式: Ubuntu18.04使用Rea…

【正版软件】Virtual Display Manager 虚拟显示器布局配置管理软件

前言 根据包括微软研究院在内的许多最新研究,多显示器系统以及更大的显示器可将用户工作效率提高 10% 至 50%。然而,多显示器采用的增长以及大屏幕显示器受到以下几个因素的影响: 购买额外硬件(显示器和更新的视频板&#xff09…

Windows 10驱动开发入门(五):创建虚拟显示器 Indirect Display驱动开发

在开发或者办公中,越大的屏幕看起来就显示越舒服了,通常我们的做法是有两块屏幕,这样显示的内容就变多了,可以很容易提高办公的效率。 在设置中显示中,如果我们有两块屏幕,在显示器中自然的会出现两个,在其中可以对两块屏幕进行相应的设置。 在这个驱动中,我们要解决的…

linux usb 虚拟显示器,Linux KVM虚拟机挂载主机USB接口设备

查看USB设备信息 harveymeilinux-7zyd:~> lsusb Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root h…

Virtual Display Manager(windows虚拟显示器软件)官方中文版V3.3.2.44650 | Win7/win10虚拟显示器下载

Virtual Display Manager 是一款非常实用的Windows虚拟显示器软件,通过附加虚拟显示器的便利性来补充您现有的单显示器或多显示器系统,这些显示器可以使用现有硬件共享现有的物理屏幕,适用于任意数量的物理显示器,并且可针对每个物…

Ubuntu18.04虚拟显示器+远程桌面

需求 ubuntu主机开启远程桌面功能, 实现无显示器的情况下的远程访问。 主机环境 rogerubuntu:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.6 LTS Release: 18.04 Codename: bionic roge…

windows虚拟显示器开发(三)USB显示器

我们常用的显示器接口有HDMI、VGA等接口,这些接口是直接在显卡上的,当显示器插在显卡上,显卡就直接可以将显示信号输出到显示器了。 关于USB显示器跟HDMI之类的显示器有本质区别,我们需要实现的有两个: 在USB上插入一…