java基础(一)——封装

实测有效!YOLOv8融合EMA注意力机制后,在无人机航拍目标检测中的性能提升对比 本文详细介绍了YOLOv8融合EMA注意力机制在无人机航拍目标检测中的性能提升效果。通过多尺度特征融合和通道-空间双重注意力机制,EMA模块显著提升了小目标检测的准确率,mAP@0.5平均提升4.2%,同时保持推理速度基本不变。文章还提供了模型定制、训练技巧和实际部署优化的全流程指南。 阅读详情
1.什么是java的封装

信息隐藏。隐藏对象的属性和实现的细节,仅对外提供公共访问方式。

2.怎么实现封装
一般使用private访问控制符实现,将对象的成员变量和实现细节隐藏起来,不允许外部直接访问;
把方法暴露出来,让方法控制这些成员变量,进行安全的访问和操作。
3.封装有什么好处
a.数据安全性提高了。private封装了类的数据项属性和方法实现细节,只有对象本身才能调用自己的资源,可以对数据的合法性进行校验
(可以想象一下,如果age/name/sex都变为public的,那么外部可以赋值任何数据,导致非法的数据也会放到对象里面,这是不应该的)
package com.glut.edu.xupk.model;

public class Person {
	
	private int age;
	private String name;
	private String sex;
	
	public int getAge() {
		return age;
	}
	
	//设置年龄在1~150之间,校验合法性
	public void setAge(int age) {
		if(age < 0 || age > 150){
			throw new IllegalArgumentException("年龄需在1~150之间,请检查!");
		}
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	
	//设置性别只能是男女
	public void setSex(String sex) {
		if(!("男".equals(sex) || "女".equals(sex))){
			throw new IllegalArgumentException("性别只能是男或女,请检查!");
		}
		this.sex = sex;
	}
	
	

}


b.隐藏了内部实现,可以随时对方法内部细节进行修改,而无需修改调用该方法的代码。只要保持得到的结果是正确的,内部代码就能自由改变,降低耦合度
c.降低了代码的耦合度,封装成工具类可以减少很多繁琐的步骤

举例说明:
a.生活中的例子
比如汽车的刹车,我们都知道,只要刹车不失灵,一脚踩下刹车,那么车子就会刹住;至于它内部工作原理是怎样的,我想一般的司机是不用理会它的。刹车坏了,给修车师傅修就好啦,专才专用嘛。这里的刹车就是一个封装,把汽车看作一个对象,刹车是对象的一个方法,刹车的功能是把车子刹住,使用刹车的方法就是踩下刹车踏板,这就是它对外提供的信息。如果我想换刹车的内部实现,比如我原来用的是鼓式刹车,我现在要换成盘式刹车,那我可以随意换,只要原来的功能没变就行,我一脚踩下刹车踏板,车子还是能刹住就OK啦

package com.glut.edu.xupk.model;

public class Car {
	
	public void brake(){
		//刹车的内部具体实现,可以改变实现,只要最终结果不变就行了
		System.out.println("车子刹住了!!!");
	}
	
	public static void main(String[] args) {
		Car car = new Car();
		//这里直接调用刹车方法,并不关心内部实现细节
		car.brake();
	}

}

才疏学浅,仅仅是入门知识,如有错漏,还请各位大大指正

Dify框架面试内容整理-如何进行Dify的二次开发? 无论是轻量修改界面,还是深度集成自定义模型、Agent、知识库,你都可以很方便地进行二次开发。,你可以基于它的开源架构对功能进行扩展、集成第三方服务、修改界面风格,甚至定制新的AI工作流程。前端:Node.js >= 16,React + TypeScript + Tailwind。接入自己的模型API(如:调用LLaMA、Baichuan、ChatGLM)。修改路径:/api/app/services/providers/可接入你自己的向量数据库(Qdrant、Milvus、FAISS) 阅读详情

相关推荐

ZEMAX知识点:坐标间断面(coordinate break)

zemax知识点:坐标间断面

weixin_47638568的博客 1万+

java语言实现打印一个人的姓名和年龄信息,要求年龄在1-120之间,自定义异常。...

在 Java 中,可以使用自定义异常来实现打印一个人的姓名和年龄信息,要求年龄在 1-120 之间的功能。 首先,我们需要定义一个自定义异常类,来表示年龄超出了 1-120 的范围。 publicclass AgeOutOfRangeException extends Exception { public AgeOutOfRangeException(String message) { ...

weixin_42608299的博客 305

TMS320C6678开发笔记1-6---C6678单核烧写程序

第6节 单核烧写加载程序 6.1节 TI参考文档 参考文档:《KeystoneI Bootloader Resources and FAQ》讲的非常好,建议一定要看 https://processors.wiki.ti.com/index.php/KeystoneI_Bootloader_Resources_and_FAQ#Direct_Boot_Examples_.28without_IBL.29 里面有三个工程: C6678 EVM SPI boot example C6657 EVM ..

kunkliu的博客 5695

Java基础Day07

day07 面向对象思想 1.1 面向对象的概念 面向对象 : 就是Java的一种编程思想 面向过程: 现在需要做一个功能,想法就是我如果实现这个功能,主要关注的是实现过程 面向对象: 现在需要做一个功能,想法就是让谁去做 打扫卫生: 面向过程思考: 我该怎么打扫,先摆凳子,扫地,拖地,关空调,关窗… 面向对象思考: 我让xx同学打扫卫生 面向过程与面向对象之间的关系 面向对象基于面向过程...

qq_41383223的博客 270

Investigating Bi-Level Optimization for Learning and Vision from a Unified Perspective: A Survey and

文章首先从双层优化的角度统一表示了超参数优化、多任务和元学习等复杂学习和视觉问题,建立了一个基于最佳响应的单层重构和一个统一的算法框架,来制定一个基于梯度的双层优化方法,最后讨论了该框架的潜力和未来研究方向。...

dawnyi_yang的博客 1110

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应 一般情况下,我们都是在 dialog 里面 放一个 list 控件,然后 用自己的类绑定自己的自绘对象,如同下面: 1.  在 dialog 里面 加一个 list 列表 2. 然后 绑定这个列表 哈哈...

mfreesky的专栏 2170

java封装基础

面向对象编程(oop)语言java的三大特性分别是封装,多态和继承。 这里想写一些关于封装的基础知识。 首先我们要知道什么是封装: 所谓封装,就是通过定义类并且给类的属性和方法加上访问控制来抽象事物的本质特性。 封装就是定义一个类,然后给该类的属性(成员变量)和方法加上访问控制修饰词(public,private, protected,默认包访问权限),使得该类的属性和方法对于类外部来说,...

IGGIRing的博客 332

基于pytorch cnn ResNets卷积网络的模糊图像检测 完整代码数据直接运行

基于pytorch cnn ResNets卷积网络的模糊图像检测 完整代码数据直接运行

730

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

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

weixin_33101399的博客 4021

LeRobot X-VLA:首个适用于任意机器人、任意任务的软提示机器人基础模型

X-VLA是一种基于软提示的视觉-语言-动作模型,通过可学习嵌入向量编码不同机器人配置,实现跨平台统一控制。该框架采用两阶段训练:先在29万次多平台任务中学习通用策略,再通过微调少量参数(仅1%)适配新机器人。实验表明,0.9B参数的X-VLA在6个仿真和3个真实平台上表现优异,如LIBERO任务达93%成功率,布料折叠任务100%完成。其核心创新是将硬件差异视为"任务",用软提示引导Transformer处理异构数据,为机器人基础模型提供可扩展方案。

2506_90492529的博客 1241

智能绿植管家:基于 ESP32 的室内植物自动补光与环境调控系统

本文设计的基于 ESP32 的室内植物自动补光与生长环境调控系统,实现了植物生长环境的自动化、智能化管理。硬件选型合理、接线简单,软件逻辑清晰、易于调试,能够有效解决室内植物生长环境不适的问题。系统具备良好的实用性和扩展性,可为园艺爱好者和小型培育场所提供稳定、高效的植物养护方案。

weixin_42300449的博客 147

【Java进阶一】理解封装

封装 封装是Java的三大特性之一。封装顾名思义就是包装,在编程领域解释为信息隐藏,利用抽象的数据类型将数据和基于数据的操作封装在一起,构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的实现细节,只保留一些对外使用的方法或者接口来与外部发生联系。系统的其他对象只能通过封装在数据外层的一些有权限的操作(方法)来与这个对象发生交互。也就是我们无需知道对象内部的实现细

Save_Helot的博客 743

边缘计算与产业生态系统

目录 文章目录目录边缘计算产业参与者边缘计算产业生态系统 边缘计算产业参与者 边缘计算领域参与者众多,主流公司以打造生态优势为目标,基于自身服务层级向产业链上下两端进行拓展,目前市场主要参与者有: 系统集成商:在产业头部,具有广泛的能力,可以集成不同生态系统公司的产品,具有一定的全球性属性,在边缘计算领域大多由云服务商、电信运营商担任。 云服务商:具有领先的云技术优势与应用生态体系,同时拥有全球性资源布局与市场资源生态,并渴望成为边缘计算主导者。 电信运营商:具有边缘基础设施优势,以及不可替代的

烟云的计算 2103

Java基础——面向对象(一)封装

面向对象索引: Java基础——面向对象(二)继承 Java基础——面向对象(三)抽象类 Java基础——面向对象(四)接口 Java基础——面向对象(五)多态 Java基础——面向对象(六)内部类 Java基础——面向对象(七)Object类 目录 一、什么是面向对象?怎么理解面向对象? 二、封装 三、this关键字 四、static关键字 一、什么是面向对象?怎么理解面...

狄利克雷的博客 2861

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java特性一封装

1.介绍封装: 面向对象实际上越来越接近现实世界,现实世界的成员变量都是隐藏在对象内部的,外界无法直接操作和修改。设想一下如果外界能够修改你的名字。那么一定是你主动去找警察局吧aha。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据, 必须通过指定的方式。适当的封装可以让代码更容易理解与维护,增强代码的安全性。 举个栗子: 人类是个类对吧。他里面的对象,比如张三,如果李四能够随便修改张三的名字和他的行为和他的银行卡余额那么该多么可怕。所以我们需要封装起来。不让

m0_63920681的博客 253

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java基础(一)数组,类,封装

一、数组 数组作为方法参数传递,传递的是数组内存的地址;数组作为方法的返回值,返回的是数组的内存地址 方法的参数为基本类型时,传递的是数据值. 方法的参数为引用类型时,传递的是地址值. 二、面向对象思想 对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中, 参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过 程思想,强调的是通过调用对象的行为来实现功能,而不...

qq_35752192的博客 502

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java resultset封装_封装 java Resultset (一)

首先说明一下封装Resultset的动机。java数据库应用比较流行的是用hibernate操作数据库,对于有一群民工手下的IT高级民工来说,用hibernate确实是一种比较轻松的解决方式。但在敏捷开发模式下,比如一两个人接个私活什么的,编写hibernate映射文件就变成无比头痛的一件事。虽然工具可以帮助从数据库中反向生成,但数据库表结构的修改仍然非常麻烦。对于熟悉sql和存储过程的开发者来说...

weixin_39670441的博客 466

java封装案例一

{//定义对象类 private String name;//对成员属性进行封装 private int age; private double salary; public Person() {//空构造器 } public Person(String name, int age, double salary) {//带参构造器 setAge(age);//构造器改造,加限制 setName(name);

m0_58936917的博客 202

java封装的特点_Java三大特征之封装(一)

封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提...

weixin_35799770的博客 868

JAVA特性一:封装

封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。 封装概念详解:封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。      面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。      封装是一种信息隐藏技术,在JAVA中通过关键字private、public、protected实现封...

aizha2535的博客 158

Java - 封装性一

面向对象特征一:封装与隐藏 1 程序设计的追求 “高内聚,低耦合” 高内聚:类的内部数据操作细节自己完成,不允许外部干涉 低耦合:仅对外暴露少量的方法用于使用(耦合电路????) 2 封装 隐藏对象内部的复杂性,只对外公开简单的接口,便于外界调用,从而提高系统的可扩展性、可维护性。 通俗的说,把该隐藏的隐藏起来,该暴露的暴露起来。 3 实例 public class AnimalTest{ Animal a = new Anima(); a.name = "阿福"; a.age = 2; a

Wmiao 186

java封装类(一)

为弥补基本数据类型在面向对象方面的欠缺,Java语言中引入了封装类(Wrapper Classes)——针对各种基本数据类型均提供了相应的引用数据类型。 封装类均被定义为final,因此不能被继承,一旦创建,内容不能再改变。 public class Demo1 { public static void main(String[] args) { Byte byte1 = ne

java程序员 2342

封装,继承,多态(一)- Java

操作步骤:右键src → New → package;在弹出的对话框中输入包名;在包中创建类,右键包名 → 新建 → 类,然后输入类名即可;创建好后我们也能发现,在新建的Hello.java文件的最上方,就出现了一个 package语句。

Reggie_L的博客 1052

【一看就懂的java学习】之 封装

封装10 封装1 private关键字2 this关键字3 封装 10 封装 1 private关键字 是一个权限修饰符 可以修饰成员(成员变量和成员方法) 作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问 针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作 提供“get变量名()”方法,方便获取成员变量的值,方法用public修饰 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰 2 this关键字 this修饰的变量用于

qq_38785034的博客 143

Java基础一:抽象+封装、继承、多态

Java是一门面向对象编程的语言,就是常见的OOP(Object-oriented Programming),不止Java,其他的很多编程语言都是使用的OOP这种编程思想。 抽象:Java提供了抽象机制。抽象就是指程序员把需要解决的问题视为一个对象,并抽取待解决问题的任何概念化构件(人、猫、狗),并表示为程序中的对象。这种抽象的过程,把我们需要解决的问题,变得更加形象和简单。 另外...

向日葵班学霸的博客 291

java封装的特性_java基础(一)-----java的三大特性之封装

面向对象编程有三大特性:封装、继承、多态。本文将介绍java的三大特性之封装封装封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。...

weixin_32301557的博客 118
上一篇: Java基础——char int之间的转换
下一篇: java基础(二)——继承
冷静BB
博客等级 码龄12年 298粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值