当前位置: 首页 > news >正文

【Java学习】类和对象

目录

一、选择取块解

二、类变量

三、似复刻变量

四、类变量的指向对象

五、变量的解引用访问

1.new 类变量(参)

2.this(参)

3.类变量/似复刻变量.

六、代码块

七、复制变量的赋值顺序

八、访问限定符

1.private

2.default

九、导类


一、选择取块解

解引用都有可以取块选择解的性质,即我们有了指向该对象的地址,该对象的所有都可以解引用此地址所取到,但我们通常不需要对象的所有,更多时候一次只需要解到对象的一部分,即一次解引用里对所能解引用到的所有内容进行选择取块地解要解的部分内容

二、类变量

class(类)是一种类型,用class(类)可以创建类变量类变量里存储变量与方法,创建类变量时都有开辟空间,类变量里的存储的成员变量都存储在堆区,类变量里存储的成员方法都存储在方法区类变量本身也是个变量存有空间,它里面存储这些成员变量与成员方法,不过类变量开辟的存储空间有部分在堆上(变量),有部分在方法区上(方法),是在两个不同区域开辟空间创建来的变量,类变量创建后相应地它也有哈希值,指向创建的这个类变量,能访问这个类变量的所有

三、似复刻变量

类变量创建好后,类变量也可作为一种类型,以此类变量为类型创建似复刻变量,似复刻变量按照类变量里的非静态变量模具变量创建复制变量、在堆上开辟空间存储有类变量里的静态变量、类变量里的所有方法的访问路径信息,用类变量创建的似复刻变量在堆区,复刻变量里存储复制变量与访问类变量路径信息两块内容,创建好似复刻变量后,相应地有指向此似复刻变量的哈希值,能访问与管理到此似复刻变量的所有内容似复刻变量的存哈希值引用类型与类变量存哈希值引用类型是共用的,因为它们最终的指向对象类型都是相同的

四、类变量的指向对象

类变量里面存储有静态变量非静态变量静态方法非静态方法

  • 静态变量与非静态变量都是存储在类变量的堆区部分,静态变量用来类变量里的存值的,而非静态变量对于类变量来说不存值,它作为复刻模具变量用来给似复刻变量照着复制出变量的
  • 静态方法与非静态方法都存储在类变量里的方法区那块部分,都是类变量里面创建好的方法,非静态方法的形参有专门接似复刻变量哈希值的形参,这也就决定了非静态方法必须得有似复刻变量传它哈希值下才可调用(此形参this往往隐藏起来的),而静态变量就普通没有这一形参

五、变量的解引用访问

类变量、似复刻变量都是引用变量,里面存指向对应空间的哈希值,通过哈希值来访问、管理的

类在文件里写好的,文件里写好后在允许访问的范围内程序一加载该类,该类变量就已经创建好了,类变量里就装有了此类变量的哈希值,在能访问到的范围内,类变量.或类变量()即可解引用此哈希值使用访问类变量


1.new 类变量(参)

—— 创建似复刻变量时

解引用类变量里的哈希值得到类变量内容进行创建似复刻变量

创建好似复刻变量后(此时里面的复制变量都设置好初始值为0)就有了指向其的哈希值(似复刻变量里面不仅有复制变量,还有路径信息),再将似复刻变量的哈希值与参数传到类变量里的构造方法中进行初始构造此似复刻变量,最后返回指向该创建好的似复刻变量的哈希值同用类变量的引用类型来接,此时此类变量创建的变量就是似复刻变量,里面装的是指向似复刻变量空间的哈希值


2.this(参)

—— 似复刻变量去构造方法时

一个似复刻变量刚创建好后即会被自动去调用执行它的构造方法,构造方法对于一个似复刻变量来说只有在这一过程中可被执行,构造方法这一过程结束之后,之后都不可再调用构造方法,在构造方法里执行时,构造方法有隐藏的形参this,是来接此似复刻变量哈希值的,所以在构造方法里,可用this.解似复刻变量哈希值得里面的复制变量this(参)解引用似复刻变量里的哈希值,取块选择解其路径信息中的指向类变量里方法区非静态方法中的构造方法实现再次调用构造方法


3.类变量/似复刻变量.

—— 访问使用其指向内容时

解引用类变量或似复刻变量里的哈希值得到引用对象指向的对应对象的内容


六、代码块

  • 静态代码块是类变量创建时执行给静态变量初始化
  • 实例代码块给似复刻变量自动初始化里面复制变量的,静态代码块先,实例代码块后

七、复制变量的赋值顺序

似复刻变量在创建时首先给复制变量设置好初始值为0,接着是就地初始化的赋值,实例代码块的赋值,最后是构造方法的赋值

八、访问限定符

1.private

被private修饰的限制在只能在同一个类中访问,在类里能访问,在类中就要封装好对外能间接访问到的接口

2.default

默认权限是default,同包的范围都可访问


九、导类

文件里写好的类都是创好了类变量的,把类文件导入进来就有了类变量(在可访问到范围),然后类变量一加载就有了一系列的功能,包括可直接使用类变量里的静态方法(类变量.),也可以用类变量创建似复刻变量就可以使用到里面的类变量里的全部方法包括非静态的方法(用类变量new完的似复刻变量.)

  • import java.util.* —— 导入包,会按实际使用情况自动导入包中的类

  • import java.util.Arrays; —— 导入类,导入要使用的Arrays这个类这个类变量

也可以手动解引用来一次解到一个类:

java.util.Date date = new java.util.Date();

导入类时可以以静态导入类,即只导入一个类变量里面静态的内容,导入后静态的内容直接进文件,不需要去解类变量的哈希值去得里面类变量的静态方法了,可以直接使用类里面导进来的的静态方法静态导只能导类,一次导入一个类变量里面的静态内容

java.lang这个包的这层包下的所有类都已经自动导入有了 

相关文章:

【Java学习】类和对象

目录 一、选择取块解 二、类变量 三、似复刻变量 四、类变量的指向对象 五、变量的解引用访问 1.new 类变量(参) 2.this(参) 3.类变量/似复刻变量. 六、代码块 七、复制变量的赋值顺序 八、访问限定符 1.private 2.default 九、导类 一、选择取块解 解引用都有可以…...

TestHubo基础教程-创建项目

TestHubo是一款国产开源一站式测试工具,涵盖功能测试、接口测试、性能测试,以及 Web 和 App 测试,可以满足不同类型项目的测试需求。本文将介绍如何快速创建第一个项目,以快速入门上手。 1、创建项目 在 TestHubo 中,…...

JS 链表

文章目录 链表题的一些总结两种链表定义set存储链表节点,存的是整个空间同时处理长短不一的两个链表处理方法 while(l1 || l2)处理方法 while(l1 & l2) dummyhead的使用 链表题的一些总结 两种链表定义 class class ListNode {val;next null;constructor(va…...

数据结构(陈越,何钦铭)第三讲 树(上)

3.1 树与数的表示 3.1.1 顺序查找 int SequentialSearch(List Tbl,ElementType K){int i;Tbl->Element[0]K;for(iTbl->Length;Tbl->Element[i]!K;i--);return i; } typedef struct LNode *List; struct LNode{ElementType Element[MAXSIZE];int Length; };3.1.2 二分…...

企业文件安全:零信任架构下的文件访问控制

在企业数字化转型的进程中,传统的文件访问控制模型已难以满足日益复杂的网络安全需求。零信任架构作为一种新兴的安全理念,为企业的文件安全访问提供了全新的解决方案。 一、传统文件访问控制的局限性 传统的文件访问控制主要基于网络边界,…...

性格测评小程序06用户注册校验

目录 1 必填校验2 验证密码强度3 账号唯一性校验最终效果总结 上一篇我们介绍了用户注册的功能,注册的时候对密码进行了加密。除了密码加密外还需要验证账号的唯一性和密码强度的问题,本篇我们介绍一下如何在表单提交的时候增加自定义校验的能力。 1 必填…...

$符(前端)

1‌. jQuery 的别名 用途&#xff1a;$ 是 jQuery 的核心标识符&#xff0c;用于快速选择 DOM 元素或调用 jQuery 方法。 // 选择所有 <div> 元素并隐藏 $(div).hide(); // 发起 AJAX 请求 $.get(/api/data, response > console.log(response)); 注意&#xff1a;虽然…...

Windows 11如何显示全部右键菜单?

在Windows 11系统中&#xff0c;默认的右键菜单进行了简化&#xff0c;若你想要显示全部右键菜单&#xff0c;可以通过以下几种方法实现&#xff1a; 方法一&#xff1a;临时显示完整右键菜单 在需要操作的区域按下Shift键的同时点击鼠标右键&#xff0c;此时弹出的就是完整的…...

离线量化算法和工具 --学习记录1

离线量化算法和工具 一、离线量化的基础概念1.1、基本流程1.2、量化的优点和缺点1.3、如何生产一个硬件能跑的量化模型1.4、PTQ的概念以及和QAT的区别1.5、离线量化的标准流程1.6、校准数据的选择1.7、量化模式的选择1.8、校准方式的选择1.9、量化算法的选择1.10、写入量化参数…...

python第七课

WSGI Middleware 中间件&#xff0c;可以理解称对应用程序的一组装饰器&#xff0c;对两边都起作用的元素。 重写environ&#xff0c;然后基于URL&#xff0c;将请求对象路由给不同的应用对象支持多个应用或者框架顺序地运行于同一个进程中通过转发请求和相应&#xff0c;支持负…...

华为IPD简介

创作灵感 现在“熟悉华为IPD”经常出现在高级招聘岗位能力要求上&#xff0c;于是作者写下此文章以此巩固相关知识储备 名词解释 华为IPD&#xff08;Integrated Product Development&#xff0c;集成产品开发&#xff09;是华为引入并优化的一套产品开发管理体系&#xff0…...

如何在Spring Boot中配置分布式配置中心

文章目录 如何在Spring Boot中配置分布式配置中心分布式配置中心的概念1. 集中管理2. 动态配置3. 环境隔离4. 安全性5. 可扩展性与适应性6. 与 CI/CD 流程的集成Spring Cloud Config 概述1. 集中式配置管理2. 多环境支持3. 版本控制4. 动态刷新5. 安全性6. 与微服务架构的无缝集…...

Golang internals

To be continued... time.Time golang的时区和神奇的time.Parse context.Context Go Context的踩坑经历 sync.Pool sync.Pool workflow in Go 1.12 new shared pools in Go 1.13 什么是cpu cache理解 Go 1.13 中 sync.Pool 的设计与实现Go: Understand the Design of Sync.Pool…...

天翼云910B部署DeepSeek蒸馏70B LLaMA模型实践总结

一、项目背景与目标 本文记录在天翼云昇腾910B服务器上部署DeepSeek 70B模型的全过程。该模型是基于LLaMA架构的知识蒸馏版本&#xff0c;模型大小约132GB。 1.1 硬件环境 - 服务器配置&#xff1a;天翼云910B服务器 - NPU&#xff1a;8昇腾910B (每卡64GB显存) - 系统内存&…...

数据治理常用的开源项目有哪些?

数据治理是企业在大数据时代中确保数据质量、安全性和可用性的关键环节。开源项目在数据治理中扮演着重要角色&#xff0c;提供了灵活、经济高效且功能强大的解决方案。以下是一些常用的开源数据治理项目&#xff1a; Apache Atlas&#xff1a; 功能&#xff1a;元数据管理、数…...

数据结构与算法之排序算法-(计数,桶,基数排序)

排序算法是数据结构与算法中最基本的算法之一&#xff0c;其作用就是将一些可以比较大小的数据进行有规律的排序&#xff0c;而想要实现这种排序就拥有很多种方法~ &#x1f4da; 非线性时间比较类&#xff1a; 那么我将通过几篇文章&#xff0c;将排序算法中各种算法细化的&a…...

Word正文中每两个字符之间插入一个英文半角空格

Word正文中每两个字符之间插入一个英文半角空格 修改前 修改后 替换方法 快捷键 Ctrl H 唤出查找和替换界面依次输入上述内容全部替换即可 参考链接 【【2025年3月】计算机二级MS Office 2016 真题讲解视频打卡】 【精准空降到 25:27】...

把 DeepSeek1.5b 部署在显卡小于4G的电脑上

这里写自定义目录标题 介绍准备安装 Ollama查看CUDA需要版本安装CudaToolkit检查Cuda是否装好设置Ollama环境变量验证是否跑在GPU上ollama如何导入本地下载的模型安装及配置docker安装open-webui启动open-webui开始对话 调整gpu精度 介绍 Deepseek1.5b能够运行在只用cpu和gpu内…...

A4988一款带转换器和过流保护的 DMOS 微步驱动器的使用方式

A4988是一款带转换器和过流保护的 DMOS 微步驱动器&#xff0c;用于驱动双极步进电动机。它支持全、半、1/4、1/8 及 1/16 步进模式&#xff0c;输出驱动性能可达 35 V 及 2 A。其特点包括简单的步进和方向控制接口、可调电位器调节最大电流输出、自动电流衰减模式检测/选择以及…...

一口井深7米,一只蜗牛从井底往上爬每天爬3米掉下去1米,问几天能爬上井口?

一个井深7米&#xff0c;一只蜗牛从井底往上爬每天爬3米掉下去1米&#xff0c;问几天能爬上井口&#xff1f; 1. 通用解法 构建一个通用的解法&#xff0c;适用于任何井深和蜗牛的爬升、下滑距离。 问题描述&#xff1a; 井深为 H H H 米。蜗牛每天向上爬升 U U U 米。每…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...