13.java面向对象:封装
java面向对象:封装
我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
封装(数据的隐藏)通常应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
本节重点:private属性私有的使用,get方法,set方法
在IDEA中使用快捷键:alt+insert,可以快速创建get方法,set方法。
源代码:
public class Student {//private属性私有private String name;private int age;private String sex;//get方法,获取这个属性的数据public String getName() {return name;}public int getAge() {return age;}public String getSex() {return sex;}//set方法,给这个数据设置值public void setName(String name) {this.name = name;}//这里有个bug,如果年龄输入999岁也是可以输出的,所以我们这里必须控制年龄的范围public void setAge(int age) {if (age > 120 || age < 0) {System.out.println("输入年龄超过范围,请重写输入");} else {this.age = age;}}//从某种意义上说,封装可以规范属性的合法化。public void setSex(String sex) {this.sex = sex;}
}
测试类
package com.pokes003;public class Demo {public static void main(String[] args) {//实例化对象s1Student s1 = new Student();//使用set方法给属性赋值s1.setName("刘德华");s1.setAge(99);s1.setSex("男");//使用get方法获取数据,并和字符串拼接.System.out.println(s1.getName() + "," + s1.getAge() + "岁" + ",性别:" + s1.getSex()); //刘德华,99岁,性别:男}
}相关文章:
13.java面向对象:封装
java面向对象:封装 我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。 封装(数据的隐藏)通常应禁止直接访问一个对象中…...
记录:网鼎杯2024赛前热身CRYPT01密码学
题目 下载并打开附件 判断为凯撒密码,尝试移位解密 在第10位发现flag字样 提交得分 解密脚本为个人自用,因比赛未结束故不开源...
GitHub加速
GitHub加速 终端命令行 支持终端命令行 git clone , wget , curl 等工具下载. 支持 raw.githubusercontent.com , gist.github.com , gist.githubusercontent.com 文件下载.注意:不支持 SSH Key 方式 git clone 下载. git clone git clone https://ghp.ci/https:…...
每天学习一个Linux命令:xrandr
xrandr 是一个用于在 X Window 系统中管理显示器的命令行工具。它可以用来设置显示器的分辨率、刷新率、旋转方向和连接状态等。下面是 xrandr 的详细用法和案例。 基本用法 xrandr [选项]常用选项 -q 或 --query: 查询当前显示器的状态。-s 或 --size: 设置显示器的分辨率。…...
路由表来源(基于华为模拟器eNSP)
概叙 在交换网络中,若要实现不同网段之间的通信,需要依靠三层设备(路由器、三层交换机等),而路由器只知道其直连网段的路由条目,对于非直连的网段,在默认情况下,路由器是不可达的&a…...
并查集(Union-Find)
并查集(Disjoint Set,也称为Union-Find数据结构)是一种用于高效处理不相交集(即集合内元素互相独立,没有交集)的数据结构。它主要用于解决以下两种操作: 查找(Find)&…...
Linux上的AI框架都有哪些?哪些AI框架适合驱动EACO地球链自动发展完善?
Linux上的AI框架种类繁多,涵盖了深度学习、机器学习、自然语言处理等多个领域。以下是一些常用的AI框架: 深度学习框架 Deeplearning4j 简介:Deeplearning4j(Deep Learning For Java)是Java和Scala环境下的一个开源分…...
java的第一个游戏界面
看视频02_大鱼吃小鱼_添加背景图_尚学堂_哔哩哔哩_bilibili 学习方法: 就对的视频小代码,书籍没有,遇到不懂的问ai 今日成果, 界面代码 package new_gameobj;import java.awt.Graphics; import java.awt.Image; import java.…...
【AIGC】ChatGPT提示词Prompt高效编写模式:Self-ask Prompt、ReACT与Reflexion
博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯自我提问 (Self-ask Prompt)如何工作应用实例优势结论 💯协同思考和动作 (ReACT)如何工作应用实例优势结论 💯失败后自我反思 (Reflexion)如何工作…...
android studio无法下载依赖包问题
新建Flutter项目Android项目后,点击运行出现报错! error.png 这是镜像站点无法访问造成的!只需要修改为国内可访问的站点即可。 第一步:修改项目Android目录下的build.gradle buildscript { ext.kotlin_version 1.3.50 repositorie…...
SQL入门
一、SQL 语言概述 数据库就是指数据存储的库,作用就是组织数据并存储数据,数据库如按照:库 -> 表 -> 数据三个层级进行数据组织,而 SQL 语言,就是一种对数据库、数据进行操作、管理、查询的工具,通过…...
Java中的Math类
关于Math类的介绍,这是一个在Java和其他许多编程语言中常见的内置库或模块,主要用于提供各种数学运算的方法。在Java中,Math类位于java.lang包下,它包含大量静态方法执行基本的数学函数,如三角函数、指数函数、对数函数…...
大厂常问iOS面试题–Runloop篇
大厂常问iOS面试题–Runloop篇 一.RunLoop概念 RunLoop顾名思义就是可以一直循环(loop)运行(run)的机制。这种机制通常称为“消息循环机制” NSRunLoop和CFRunLoopRef就是实现“消息循环机制”的对象。其实NSRunLoop本质是由CFRunLoopRef封装的,提供了面向对象的AP…...
【解决】mac报错“zsh: command not found: nvm”
问题描述: 安装nodejs时要先安装nvm,按照网上教程安装之后出现以下异常情况: 1.终端运行npm -v能查到版本,idea运行同样命令提示没找到,像是没安装一样 2.终端关闭重新打开之后,也像是没安装一样,需要重…...
MySQL同步到ES的方案选型
文章目录 1. 同步双写优点缺点实现方式 2. 异步双写优点缺点实现方式 3. 另起应用 SQL 查询写入优点缺点实现方式 4. Binlog 实时同步优点缺点实现方式 5. 应用场景 本文参考: https://www.bilibili.com/video/BV13hvZeaErr/?vd_sourceb7e4d17fd13ffa91c4da6d37c08a6c7c 最近在…...
Transformer 与 CNN的对比
Transformer 相比于 CNN 的优点主要体现在以下几个方面: Transformer 相比 CNN 的优点: 全局依赖建模能力:Transformer 的核心机制是 自注意力机制,它可以直接建模输入序列中任意两个位置之间的依赖关系,无论它们之间的距离有多远。 相比之下,CNN 更擅长处理局部信息,它…...
Maven入门到进阶:构建、依赖与插件管理详解
文章目录 一、Maven介绍1、什么是Maven2、Maven的核心功能 二、Maven核心概念1、坐标GAVP1.1、GroupId1.2、ArtifactId1.3、Version1.3.1、版本号的组成 1.4、Packaging 2、POM、父POM和超级POM2.1、POM (Project Object Model)2.1、父POM(Parent POM)2.…...
炒股VS炒游戏装备,哪个更好做
这个项目,赚个10%都是要被嫌弃的 虽然天天都在抒发自己对股市的看法,但自己自始至终也没有买进任何一支股票。之所以对这个话题感兴趣,着实是因为手上的游戏搬砖项目也是国际性买卖,跟国际形势,国际汇率挂钩࿰…...
AI图像处理工具:开发者高阶用法与最佳实践
引言 随着人工智能技术的迅猛发展,AI图像处理工具正日益成为开发者工作流程中不可或缺的一部分。这些工具不仅能有效处理图像,还能通过深度学习模型实现复杂的图像理解和生成任务。本文将深入探讨开发者在使用AI图像处理工具时的高阶用法,提…...
Spring Boot 2.6=>2.7 升级整理
版本变更: 1、SpringBootTest 属性源优先级:使用 SpringBootTest 注解的测试现在将命令行属性源置于测试属性源之上 在 Spring Boot 2.7 及更高版本中,对 SpringBootTest 的属性源优先级进行了调整,使得通过命令行传递的属性&am…...
告别环境冲突:基于快马平台与homebrew打造团队高效统一开发环境
作为一名长期与团队协作的开发者,我深刻体会到环境配置不一致带来的痛苦。新同事入职要花一整天配环境,不同项目依赖冲突导致"在我机器上能跑"的经典问题,甚至同一项目组因为系统更新节奏不同而出现隐性兼容问题。最近尝试用homebr…...
C语言核心特性与工程实践详解
1. C语言核心特性解析C语言作为一门经典的编程语言,其核心特性决定了它在系统编程和嵌入式开发中的不可替代地位。让我们从底层机制开始剖析:1.1 静态类型与编译执行C语言采用静态类型系统,这意味着所有变量必须在编译前明确声明其类型。这种…...
嵌入式LCD菜单框架:基于FSM的轻量级状态管理方案
1. WSEMenu 库概述WSEMenu 是一个面向嵌入式 LCD 人机交互场景的轻量级状态管理与菜单框架,专为字符型液晶显示屏(典型规格:204 字符)设计。其核心目标并非提供图形渲染能力,而是解决嵌入式系统中普遍存在的“状态跳转…...
用AirSim和Habitat手把手教你搭建第一个无人机VLN仿真环境(避坑指南)
从零搭建无人机视觉语言导航仿真环境:AirSim与Habitat实战指南 第一次接触无人机视觉语言导航(VLN)时,我被这个交叉领域深深吸引——它完美融合了计算机视觉、自然语言处理和机器人控制三大技术方向。但当我真正开始动手实践时&am…...
深入理解Python @dataclass:从基础到高级用法
Python 3.7引入了dataclass装饰器,这是一个强大的工具,能够显著减少数据类的样板代码。本文将详细介绍dataclass的各种用法,特别是如何正确处理可变默认值和类型注解。 什么是dataclass dataclass是位于dataclasses模块中的装饰器,…...
jEasyUI 显示海量数据
jEasyUI 显示海量数据 引言 随着互联网技术的飞速发展,大数据时代已经到来。在众多前端框架中,jEasyUI以其简洁、易用、功能强大等特点,受到了广大开发者的喜爱。本文将深入探讨jEasyUI在显示海量数据方面的应用,帮助开发者更好地应对大数据挑战。 jEasyUI简介 jEasyUI…...
MDIN380芯片高清视频处理方案:SDI转VGA与LVDS转换,专业PCB设计与源码集成
MDIN380 SDI转VGA 转LVDS VGA转SDI 高清视频处理 MDIN380芯片 PCB代码方案资料 3G-SDI转VGA ?3G-SDI转LVDS ?高清视频 MDIN380、GV7601 芯片方案(PCB图和源码)。 此方案是韩国视频处理芯片MDIN380的整合应用方案。 3G-SDI转VGA或3G-SDI转LVDS。 方案共有两块电路板(一块底板…...
Legacy-iOS-Kit全流程指南:让iPad mini 2重获新生的系统降级实践
Legacy-iOS-Kit全流程指南:让iPad mini 2重获新生的系统降级实践 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS…...
别再让数据睡大觉了!手把手教你用泛微Ecology10的报表分析模块,10分钟搞定业务看板
唤醒沉睡数据:10分钟用泛微Ecology10打造动态业务看板 每天早晨,市场部张经理都会收到IT部门发来的Excel报表——那是前一天的销售数据汇总。等他费劲地对比完各个sheet,再手动合并ERP的库存信息时,往往已经过去半小时。更糟的是&…...
智能家居集成新方案:Home Assistant与小米设备的跨平台控制实现
智能家居集成新方案:Home Assistant与小米设备的跨平台控制实现 【免费下载链接】ha_xiaomi_home Xiaomi Home Integration for Home Assistant 项目地址: https://gitcode.com/GitHub_Trending/ha/ha_xiaomi_home 【突破生态限制】智能家居跨平台集成方案 …...
