第5章-第3节-Java中对象的封装性以及局部变量、this、static
1、局部变量
【问题1】:什么是局部变量?
答:定义在局部位置的变量就是局部变量。
【问题2】:什么是局部位置?
答:方法的形参位置、方法体的内部。
【位置关系图】:
class Xxx {
//成员位置
public ...(局部位置) {
//局部位置
}
//成员位置
}
作用:限制变量的使用范围
成员变量和局部变量的区别:
1).代码定义位置
成员变量:定义在类的成员位置;
局部变量:定义在类的局部位置;
2).作用域
成员变量:作用域大,可以在整个class的大括号内部被使用;
局部变量:作用域小,只能在定义的作用范围内被使用;
3).内存所在位置
成员变量:在堆中;
局部变量:在栈中;
4).默认值
成员变量:有默认值;
局部变量:没有默认值;
5).生命周期现象
成员变量:随着对象在堆中被创建也一并生成,随着对象被gc回收一并被清理;
局部变量:随着方法进栈在栈中创建空间区域,随着方法的弹栈也一并被回收;
2、类和对象的关系
搭建场景:
对象:某人、某车、某房子...
类型:老师(Teacher)
类型:
由多个对象共性内容进行抽取得到的抽象描述,称为:类型;
类可以理解为一张设计图,创建对象的模板。
对象:
通过类的实例化得到,在内存中占用资源 ==> 实实在在的个体;
一旦得到了对象就可以访问类中的成员完成需求。
3、面向对象特性之封装性
生活层面:食品、快递、机箱...
作用:提高安全性
程序层面:
1)、类、方法
2)、私有化与隐藏
关键字:private
实例化对象完毕后,使用对象名.属性名的方式为对象属性进行显示赋值操作,
很有可能赋的值会违背生活的逻辑和常态 ==> 数据不安全
所以我们考虑没收外界对象名访问属性的权利,私有化该属性 ==> 使用private修饰
在本类中提供外界访问属性的一组公共的方法(getter&setter)
格式如下:
getter方法
public 数据类型 get属性名(){
return 属性名;
}
setter方法
public void set属性名(数据类型 形参名){
属性名 = 形参名;
}
举例:
属性:private double money;
getter方法:
public double getMoney(){
return money;
}
setter方法:
public void setMoney(double m){
money = m;
}
【结论】:
在之后的学习和开发环境下,绝大多数情况,类中的属性都需要被私有化,
并且提供对应的getter&setter方法,记住:上述两个方法内部都不需要提供数据合理性校验操作
4、this关键字
使用在三个领域/三个作用:
1)、记录了正在被创建或者已经创建完毕对象的内存地址;
2)、区分同名的成员变量和局部变量;
3)、本类重载构造方法之间相互调用。
5、this关键字
第三个作用:本类构造方法之间相互调用
格式:
this(...);
注意:
1)、构造方法内部调用本类重载构造,只能在首行位置进行调用
2)、构造方法之间相互调用不能形成闭合回路
6、static关键字
解释:静态的
核心理解:
1)、静态的成员和类有关,非静态的成员和对象有关;
2)、类加载要远远早于对象加载 ==> 先有类,后有对象;
3)、早出现的不能调用晚出现的,晚出现的可以调用早出现的。
修饰的领域:
1)、修饰方法
称为:静态方法、类方法
格式:
类名.静态方法名(...);
好处:
不依赖于对象,即不需要创建对象,类名直接调用
理解:
1)、代码定义更加简洁;
2)、更加节省内存资源,提高开发效率。
【问题】:什么方法需要设计为静态方法,什么方法需要设计为非静态方法?
答:在设计自定义方法的过程中:
发现方法体中不需要访问调用非静态成员(属性、方法),则该方法可以设计为静态方法,
返之一旦方法体中有访问调用非静态成员(属性、方法),则该方法就必须设计为非静态方法。
2)、修饰属性
称为:静态属性、类属性
访问静态属性的格式:
类名.静态属性名
好处:
静态属性和类有关,不依赖于对象,不需要创建对象
理解:
1)、代码定义更加简洁;
2)、更加节省内存资源,提高开发效率。
【问题】:什么属性可以被定义为静态属性,什么属性可以被定义为非静态属性?
答:某属性对于该类所有对象都是唯一的值,则该属性可以被定义为静态属性;
否则就必须定义为非静态属性。
本电子书目录:《Java基础的重点知识点全集》
相关文章:
第5章-第3节-Java中对象的封装性以及局部变量、this、static
1、局部变量 【问题1】:什么是局部变量? 答:定义在局部位置的变量就是局部变量。 【问题2】:什么是局部位置? 答:方法的形参位置、方法体的内部。 【位置关系图】: class Xxx { //成员位…...
IP应用场景的规划
IP地址作为互联网通信的基石,在现代社会中扮演着至关重要的角色。本文将深入探讨IP地址在不同应用场景中的规划与拓展,探讨其在网络通信、安全、商业、医疗和智能城市等领域的关键作用与未来发展趋势。 IP地址的基本原理 IP地址是分配给网络上设备的数…...
27 redis 的 sentinel 集群
前言 redis 的哨兵的相关业务功能的实现 哨兵的主要作用是 检测 redis 主从集群中的 master 是否挂掉, 单个哨兵节点识别 master 下线为主管下线, 超过 quorum 个 哨兵节点 认为 master 挂掉, 识别为 客观下线 然后做 failover 的相关处理, 重新选举 master 节点 我们这里…...
计算机网络 网络安全技术
网络安全基本要素 机密性 不泄密完整性 信息不会被破坏可用性 授权用户 正常有效使用可控性 被控制可审查性 网络安全的结构层次 物理安全 物理介质安全控制 计算机操作系统安全服务 应用层次 被动攻击 :截获信息 主动攻击 : 中断信息,篡改,伪造 篡改 …...
WebAssembly 的魅力:高效、安全、跨平台(下)
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
二维码智慧门牌管理系统升级:确保公安机关数据安全无忧
文章目录 前言一、多重安全防护措施二、安全措施综述与展望 前言 数据安全挑战与重要性 在数字化社会,数据安全对公共管理机构,尤其是公安机关而言,至关重要。随着二维码技术在门牌管理系统中的广泛应用,管理变得更智能、更便捷。…...
Golang leetcode59 螺旋矩阵
螺旋矩阵 leetcode59 初次尝试,从中心向外 func main() {n : 3fmt.Println(generateMatrix(n)) }// 初版,我们从中心点开始 func generateMatrix(n int) [][]int {//1.nXn矩阵table : make([][]int, n)for i : 0; i < n; i {table[i] make([]int, …...
深度学习(Deep Learning) 简介
深度学习(Deep Learning) 深度学习在海量数据情况下的效果要比机器学习更为出色。 多层神经网络模型 神经网络 有监督机器学习模型 输入层隐藏层 (黑盒)输出层 概念: 神经元 Neuron A^(n1)网络权重 Weights W^n偏移 bias b^n 激活函数: ReLUtan…...
服务器raid中磁盘损坏或下线造成阵列降级更换新硬盘重建方法
可能引起磁盘阵列硬盘下线或故障的情况: 硬件故障: 硬盘物理损坏:包括但不限于坏道、电路板故障、磁头损坏、盘片划伤、电机故障等。连接问题:如接口损坏、数据线或电源线故障、SATA/SAS控制器问题等。热插拔错误:在不…...
Ubuntu 常用命令之 exit 命令用法介绍
📑Linux/Ubuntu 常用命令归类整理 exit命令在Ubuntu系统下用于结束一个终端会话。它可以用于退出当前的shell,结束当前的脚本执行,或者结束一个ssh会话。 exit命令的参数是一个可选的整数,用于指定退出状态。如果没有指定&#…...
依托亚马逊云科技构建韧性应用
背景 现代业务系统受到越来越多的韧性相关的挑战,特别是客户要求他们的业务系统 724 不间断的运行。因此,韧性对于云的基础设施和应用系统有着至关重要的作用。 亚马逊云科技把韧性视为一项最基本的工作,为了让我们的业务系统能持续优雅地提供…...
Prometheus-JVM
一. JVM监控 通过 jmx_exporter 启动端口来实现JVM的监控 Github Kubernetes Deployment Java 服务,修改 wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.19.0/jmx_prometheus_javaagent-0.19.0.jar# 编写配置文件࿰…...
flink sql1.18.0连接SASL_PLAINTEXT认证的kafka3.3.1
阅读此文默认读者对docker、docker-compose有一定了解。 环境 docker-compose运行了一个jobmanager、一个taskmanager和一个sql-client。 如下: version: "2.2" services:jobmanager:image: flink:1.18.0-scala_2.12container_name: jobmanagerports:…...
pytorch张量的创建
张量的创建 张量(Tensors)类似于NumPy的ndarrays ,但张量可以在GPU上进行计算。从本质上来说,PyTorch是一个处理张量的库。一个张量是一个数字、向量、矩阵或任何n维数组。 import torch import numpy torch.manual_seed(7) # 固…...
Web自动化测试工具的优势分析
Web自动化测试工具在现代软件开发中扮演着关键的角色,帮助团队确保Web应用程序的质量和稳定性。然而,选择合适的Web自动化测试工具对项目的成功至关重要。本文将介绍Web自动化测试工具优势是什么! 1. 自动化执行 Web自动化测试工具能够模拟用户的行为&am…...
黑豹程序员-读properties属性文件本地正常,打包jar后运行出错
读properties属性文件本地正常,打包jar后运行出错 java.io.FileNotFoundException:file:\D:\code\xml-load\target\XX.jar!\XXX(文件名、目录名或卷标语法不正确。)原因是读取方式不正确 当使用Spring Boot将应用打成jar时,需要读取resources目录下配置…...
PyQt6 QTimer计时器控件
锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计52条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…...
Vue:defineAsyncComponent(异步组件)、component(动态组件)、keep-alive(缓存组件)
异步组件:defineAsyncComponent Vue3 的 defineAsyncComponent 特性可以让我们延迟加载组件。因为在默认情况下,在构建项目或运行项目时,会将所有所需要的打包成一个整体,vue为单页面应用,同步加载大量的页面代码会导…...
14 款最佳文件恢复软件 [2024 年最佳精选工具]
顶级文件恢复软件的综合列表和比较。阅读此详细评论以选择最佳文件恢复工具并轻松恢复您的文件: 您在选择文件恢复工具时遇到困难吗?在阅读了对十大文件恢复软件的评论后,您可以做出正确的决定。 数据丢失是一个严重的问题,会损…...
Redis基础篇-004 Redis的Java客户端
Redis客户端分为三类: 命令行客户端图形化桌面客户端编程客户端(java客户端) redis可视化工具和客户端 1、 Jedis快速入门 Jedis的官网地址: https://github.com/redis/jedis 1.1 新建一个Maven工程并引入以下依赖 <!--引入…...
开源阅读鸿蒙版:打造你的专属数字图书馆
开源阅读鸿蒙版:打造你的专属数字图书馆 【免费下载链接】legado-Harmony 开源阅读鸿蒙版仓库 项目地址: https://gitcode.com/gh_mirrors/le/legado-Harmony 你是否厌倦了被商业阅读应用限制,无法自由选择想看的内容?开源阅读鸿蒙版&…...
基于AIGC的文本生成视频系统:从架构设计到工程实践
1. 项目概述:从文本到视频的自动化创作最近在折腾一个挺有意思的项目,叫“TextCreateVideo”,直译过来就是“文本生成视频”。这玩意儿听起来像是科幻电影里的概念,但现在已经有不少开源项目在尝试落地了。我关注的这个Anning01/T…...
StackEdit v6.0.7发布:懒加载、图片查看等功能升级,优化Markdown编辑体验
StackEdit v6.0.7:多维度功能升级StackEdit v6.0.7正式发布,此次更新涵盖了多个重要功能。在组件加载方面,优化非常用的组件为懒加载方式,这能有效提升编辑器的加载速度和性能。在线离线判断也得到调整,让用户在不同网…...
2026年金融性能测试平台选型推荐:安全合规与高稳定性适配指南
金融行业是关键行业,其系统涉及资金交易、用户信息、风控数据等核心敏感信息,对性能测试平台的要求较高,核心聚焦四大维度:高稳定性,支撑核心交易系统 724 小时稳定运行,无卡顿、无崩溃;安全合规…...
ONFI5.0实战避坑:VccQ电压选1.8V还是1.2V?DQS采样与ZQ校准那些事儿
ONFI5.0硬件设计实战:VccQ电压选择与信号完整性优化指南 在嵌入式存储系统设计中,ONFI5.0协议的采用正成为行业新标准,但随之而来的硬件兼容性问题也让不少工程师头疼。最近一位同行就遇到了典型的案例:他们的NV-DDR3接口NAND闪存…...
光栅散射光与仪器杂散光:成因、测量与系统级抑制策略
1. 项目概述:从“完美”光栅到现实噪声在光谱分析、激光系统乃至精密光学测量的世界里,我们常常把衍射光栅想象成一个完美的“光之指挥家”,它能将不同波长的光精准地分离开来,指向各自该去的方向。然而,任何一位有实际…...
接口测试从入门到精通:这2个工具+3个实战案例,快速掌握
一、接口测试的核心价值与入门基础在软件测试体系中,接口测试是保障系统稳定性、数据准确性和业务连续性的关键环节。相较于UI测试,接口测试更贴近系统底层逻辑,能够提前发现数据传输、业务规则实现等方面的问题,大幅降低后期修复…...
辐射4正式版.144G终极整合!含实验室355个绅士MOD.2026最新版免费下载(看到请立即转存 资源随时失效)pc手机通用
下载链接 在淘宝买160元 在游戏界,如果要选出一个“因玩家的无限创造力而获得第二次生命”的典范,Bethesda(B社)旗下的《辐射4》(Fallout 4)绝对名列前茅。尤其是被社区戏称…...
RGB565和RGB888到底差在哪?从嵌入式屏到网页设计都得懂的颜色格式选择
RGB565与RGB888:跨领域色彩编码的深度决策指南 当你在嵌入式系统的LCD屏幕上看到色彩失真的图像,或是在网页加载时遭遇性能瓶颈,背后可能隐藏着同一个关键选择——RGB565还是RGB888?这两种颜色编码格式如同数字世界的调色盘&#…...
吉他谱编辑神器TuxGuitar:5个简单步骤开启你的音乐创作之旅
吉他谱编辑神器TuxGuitar:5个简单步骤开启你的音乐创作之旅 【免费下载链接】tuxguitar Open source guitar tablature editor 项目地址: https://gitcode.com/gh_mirrors/tu/tuxguitar TuxGuitar是一款功能强大的开源吉他谱编辑器和播放器,专为吉…...
