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

【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这个包的这层包下的所有类都已经自动导入有了 


http://www.kler.cn/a/547780.html

相关文章:

  • 【第9章:计算机视觉实战—9.4 计算机视觉在其他领域的应用探索】
  • Linux系统编程之基本信号处理
  • linux--关于makefile
  • 如何使用UniApp实现页面跳转和数据传递?
  • iOS实现生物识别
  • 【k8s应用管理】kubernetes 安全机制
  • 【prompt实战】旅行攻略顾问
  • PHP 基础介绍
  • 青少年编程与数学 02-009 Django 5 Web 编程 14课题、命名空间
  • 2024-arXiv-LlamaFactory: 统一高效微调100多种语言模型
  • 英码科技基于昇腾算力实现DeepSeek离线部署
  • 第十五届蓝桥杯嵌入式省赛真题(满分)
  • 【办公类-91-01】20250214“每周安排表”批量填写——数字“年月日”、文字“休息、节假日”
  • SYN-TFO伪造攻击.c
  • 算法面试题
  • 17.企业级知识图谱中的知识库全景解析(基本概念、 5W2H视角知识库、存储格式分类与技术对比、实践路径与架构设计、案例)
  • 《On Java中文版基础卷+进阶卷》
  • typecho快速发布文章
  • Acwing-基础算法课笔记之基础算法(双指针)
  • 系统不是基于UEFI的win11,硬盘格式MBR,我如何更改为GPT模式添加UEFI启动?