JAVA封装之封装类及类的使用

article/2025/10/10 19:05:08

目录

  • 封装的概念
    • 1.信息隐藏
    • 2.属性封装
    • 3.方法封装
  • 封装的实例
  • 运行结果
  • 总结

封装的概念

将东西包在一起,然后以新的完整形式呈现出来,将方法和字段一起包装到一个单元中,单元以类的形式实现

信息隐藏,隐藏对象的实现细节,不让外部直接访问到

将数据和方法包装进类中,加上具体实现的隐藏(访问修饰符),共同被称作封装,其结果是一个同时带有特征和行为的数据类型

“定义类,定义其属性、方法的过程称为封装类”

1.信息隐藏

信息隐藏是OOP最重要的功能之一,也是使用访问修饰符的原因

信息隐藏的原因包括:
对模块的任何实现细节所作的更改不会影响使用该模块的代码,防止用户意外修改数据,使模块易于维护和使用(就是电脑配件)
在这里插入图片描述

2.属性封装

修改属性的可见性来限制对属性的访问。

为每个属性创建一对赋值方法(setter)和取值(getter)方法,用于公开对这些属性的访问接口在setter和getter方法中,根据需要加入对属性操作的限制

3.方法封装

目的:
隐藏方法实现细节(方法体),向外部提供公开接口(方法头),以供安全调用简化调用,方便修改维护

根据需要,可以私有化方法,以供内部使用—帮助方法helper

封装的实例

package 封装第一个实例;class Student//有点像C语言的结构体,前面的struct变成了class
{//属性int age;private int Fage;String name;//字符串double score;private int sex;//方法//属性封装void setsex(int finalsex){sex = finalsex;}public int getsex(){return sex;}//方法封装private void myage(int myage) {Fage = myage;}public int getage(){myage(18);//当别人问我年龄的时候,我就告诉他我18,不是30岁return Fage;}public void setage(int realage) {Fage = realage;}//输出void introduce() {//对这个类里面的成员变量访问不需要进行参数的传递,而C语言需要System.out.println("name="+name+",age="+age+",Fage="+Fage+",score="+score+",sex ="+sex);}void testFunc() {System.out.println("testFunc");}
}//和C的结构体不同,这里不需要;public class Test {public static void main(String[] args) {//struct Student *stu1;//stu1 = malloc(sizeof(struct Student));Student stu1 = new Student();//实例化一个对象//类不能直接使用,不能直接访问变量,需要先实例化,需要申请一个空间//Student stu1 = null;stu1.age = 18;stu1.setsex(18);stu1.name = "Niko";stu1.score = 3.14;stu1.setsex(1);//Student类里面的sex是私有的,不能访问。//通过间接访问给sex赋值,private可以在同一个类调用//类的使用stu1.introduce();//调用类中的方法stu1.testFunc();//属性的封装//通过setsex,getsex通过间接的访问,修改私有的sexSystem.out.println("sex = "+stu1.getsex());//方法的封装stu1.setage(30);//我真实年龄30岁stu1.introduce();//我骗他我18岁System.out.println("Fage = "+stu1.getage());}
}

运行结果

name=Niko,age=18,Fage=0,score=3.14,sex =1
testFunc
sex = 1
name=Niko,age=18,Fage=30,score=3.14,sex =1
Fage = 18

总结

基本全写在实例里面了~~
不给类申请一个空间的话会报错(如下图),这错误和C语言的段错误类似
在这里插入图片描述


http://chatgpt.dhexx.cn/article/527NNSMX.shtml

相关文章

vue axios封装 类方法

1.下载axios npm i axios2.新建utils工具目录 3.创建config.js、、request.js、api.js 一、config.js用于配置不同环境下的baseURL(开发环境或者打包环境) //config.js export default {baseUrl: {dev: ,pro: } }二、request.js用于封装axios方法&…

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

个人学习所用,有错误和不足之处欢迎指出和补充。 目录 前言 基本数据类型与封装类的区别:(用 int 和 Integer 举例) 为什么要使用封装类: 前言 Java中存在八种基本数据类型:(整数型&#xf…

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虚拟显示器软件,通过附加虚拟显示器的便利性来补充您现有的单显示器或多显示器系统,这些显示器可以使用现有硬件共享现有的物理屏幕,适用于任意数量的物理显示器,并且可针对每个物…