JAVA类和对象重点笔记及理解

news2024/9/27 7:23:15

1.类创建对象的详细过程

创建完成,dog就成了一个实例(对象),具有属性和方法

Dog类的属性:一般叫做成员变量

Dog类的方法:一般叫做成员方法

类是对象的抽象,对象是类的具体实例。

2.JAVA的数据类型

3.JAVA对象的生命周期和垃圾自动回收机制

注意什么叫做垃圾,rect为空后,不能进行引用属性和方法,对象就成了垃圾,

此时不能引用否则会报空指针异常。

①也可以手动,把某个实例对象赋值为空,然后再用System.gc()人为干预清理垃圾,节省资源。

 ②一般自定义的类,全部都默认继承Object类,每一个自己定义的类都有finalize方法,每次释放都会执行,如果想要看到finalize的效果可以在类中重写,可用source菜单中的override重写,

如图

 

 

当不动手写System.gc时,主线程没有任何任务,整体也全部被回收(这个地方不够细致以后再补充)。

 

 4.成员变量与局部变量

①作用域 

成员变量:可以放在一个类的成员方法后面,和成员方法没有先后,都是先编译成员变量。

局部变量:就是方法范围,且顺序不能调,先声明后使用。

②初始值

成员变量:一创建对象就会赋初始值。

局部变量:如果没赋值,直接用是非法的

③隐藏

局部和成员重名时,局部变量会覆盖成员变量,如果要加以区分就用this

如图

 test方法是在方法中新定义a的成员方法,但a已经是成员变量,

如果这时候在主方法中直接打印a则局部覆盖成员变量。

如果这时非要打印成员变量,就用this加以区分,this代表当前对象。

④赋值

对于成员变量来说,属性可以不赋值,那么创建对象时就是默认值,但是属性也可以赋值,那么一创建对象,就赋值完成了。

⑤分类

实例变量:用类创建的对象,对象拥有的属性就是该实例的变量,用 变量名.属性即可引用,一般创建实例的时候才会产生。

类变量:类中用static修饰的属性,可以用类.属性应用,也可用变量名.属性引用,所有该类的变量都可引用该变量,一般在类生成字节码的时候就会定义赋值,比实例要早,在静态方法中可以直接使用静态变量,去掉属性前面的引用,而实例变量必须用变量名.属性引用。

5.构造方法

 

 

  

6.成员方法

注意两点:返回值也可以是对象,传入参数也可以是对象,是一种地址传递。

 以上是对于不定长参数的定义方法,一个是单一不定长,一个是最后一个参数是不定长参数,相当于传进去一个数组。

具体使用如下

 3,4都给了多参数变量,最后的数组也是给了多参数变量,熟悉这种用法,不定长参数不能放到最后。

7.成员方法的值传递和引用传递

 8.方法的重载

9.(静态)类方法和实例方法的区别

 

静态方法和变量优先分配空间,实例方法和变量因此可以调用他们,反过来则不行。

10.关于static的用法

 静态成员使用注意事项

 注意分配空间时间是不同的。

注意类字节码一有类就会加载,但是实例的方法和变量,只有创建时才会出现。

 11.对象的组合关系

就是一个类中去定义另一个类作为了成员变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/97434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mycat(4):mycat名词解释

1、逻辑库 对实际应用来说,并不需要知道中间件的存在,业务开发人员只需要知道数据库的概念,所以数据库中间件可以被看做是一个或多个数据库集群构成的逻辑库。 如图一中,在MYCAT服务区中的TESTDB库,只是逻辑上存在的数…

使用GraalVM 构建 Spring Boot 3.0 原生可执行文件

GraalVM 介绍 既然是VM,那肯定也是一个虚拟机,那它跟JVM有关系吗?有一定关系,GraalVM 可以完全取代上面提到的那几种虚拟机,比如 HotSpot。把你之前运行在 HotSpot 上的代码直接平移到 GraalVM 上,不用做任…

【GRU回归预测】基于麻雀算法优化门控循环单元SSA-GRU神经网络实现多输入单输出回归预测附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

java秋招被问到的八股文

投递的岗位是Java后端开发,八股文背了很多,现在面过三十场,做一个总结,整理出一些我确实被问到的问题。 该准备什么 首先是简历里的项目,一定要好好整理,项目的架构是怎样的,开发过程中遇到的…

国产实时操作系统+intel x86/龙芯平台超边缘计算机方案

引言 近年来,物联网、云计算、机器学习和网络安全等技术不断推动工业 4.0 的发展,“云边端” 的架构正逐步替代 “云管端”,边缘计算成为新时代许多领域转型的关键要素。以智能制造为例,不同于为互联网服务的 CDN 边缘计算技术&a…

Spring(二):Spring的创建和使用

目录一、创建Spring项目1.1 创建一个Maven项目1.2 添加Spring框架支持1.3 创建启动类二、使用Spring存储对象2.1 创建Bean2.2 将Bean注册到容器三、获取并使用Bean对象3.1 创建Spring的上下文3.2 从Spring上下文对象中取出Bean对象3.3 使用Bean一、创建Spring项目 1.1 创建一个…

传统数据治理的常见陷阱有哪些?

一、传统的数据治理 传统的数据治理是一种数据优先的治理方法。这种传统方法缺乏响应数据用户需求的流动性——或者在新法规出现时适应新法规的灵活性。传统方法概述角色、创建数据标准、分配责任并创建公司范围的数据策略。因为它强调对数据的控制,这种方法威胁工…

Java程序接入ChatGPT

Java程序接入ChatGPT0 前言1 还想体验的小伙伴可以试试2 Java接入前准备3 官方支持接入语言4 调用费用5 接口调用说明6 代码实现6.1 postman调用6.2 Java调用7 小结0 前言 之前文章中我们聊过怎么注册使用最近很火的ChatGPT?这期我们来看看怎么在Java中调用ChatGPT…

openssl aes加密例子

openssl OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 首先,要安装 openssl: centos命令: sudo yum install openssl-devel ubuntu命令&#x…

重学webpack系列(一) -- 前端模块化的演变历史

前言 任何事物的产生都有他的必然性,就像是冥冥之中注定了一样,在JavaScript刀耕火种的时代,前端是被定义为切图的一项工作,页面逻辑与交互全部由服务端工程师完成,前端开发几乎不受服务端开发重视,那时候…

免费教你如何设计商品主图,手把手教学!

好看的电商主图都是怎么设计出来的?有什么办法能快速设计出爆款的同款商品主图吗?跟着小编的教学步骤,教你轻松在线设计,不需要任何门槛也能掌握的电商设计工具,轻松搞定各种类型的商品主图,下面跟着小编的…

Spring BOOT 手写一个starter并使用这个starter

1、stater工程的命名 starter 是一个开箱即用的组件,减少不必要的重复代码,重复配置。例如,在mavne项目进行配置的时候,我们需要引用 spring-boot-starter-parent。 Spring 官方定义的 starter 通常命名遵循的格式为 spring-bo…

Linux——日志管理

基本介绍 日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括信息的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等;日志对于安全来说也很重要,它记录了系统每天发生的各种事情&…

ASP.NET Core —选项系统

ASP.NET Core — 选项系统1. 选项2. 选项配置方式2.1 手动绑定2.2 依赖注入配置2.2.1 配置文件节点转换选项2.2.1 硬编码配置选项2.2.3 使用DI服务配置选项2.2.4 命名选项2.2.4 后期配置3. 使用3.1 IOptions<TOptions>3.2 IOptionsMonitor<TOptions>3.3 IOptionsSn…

零基础小白:为什么要学习编程?如何入门编程?!

这篇文章回答以下几个问题&#xff1a; ★我们为什么要学习编程&#xff1f; ★非计算机学生&#xff0c;如何对编程产生兴趣&#xff1f; ★零基础&#xff0c;如何入门编程&#xff1f; 第一个问题&#xff1a;我们为什么要学习编程&#xff1f; 如果说和编程有关的最经常收…

QT mysql 数据库的使用

1.首先我是用的是 网上的免费的mysql 数据库 &#xff0c; 1.申请步骤 2.链接 &#xff1a;SQLPub - 免费的MySQL数据库 2..测试数据库是否可以使用 头文件&#xff1a; #include <QSqlDatabase>//数据库 #include <QDebug>//输出 #include <QStringList&g…

【原创】Unity结合OpenAI官方api实现类似chatGPT的AI聊天机器人

一、什么是ChatGPT 最近chatGPT爆火&#xff0c;网络铺天盖地的各种文章视频&#xff0c;各种牛逼之声。倒算不上第一时间使用&#xff0c;发布隔了一周多&#xff0c;才从同事那里听说了这么个神奇的技术。这周阳了&#xff0c;持续发烧在家&#xff0c;忙着养病也没时间去了解…

[oeasy]python0030_设置路径_export_PATH_zsh_系统路径设置_export

放入路径 回忆上次内容 我们要在任意路径下直接执行 sleep.py 把 sleep.py 放在 /usr/bin/ 下面最终可以在任意位置执行程序sleep.py 但是 /usr/bin 里面放的一般都是二进制命令文件命令实在是太多太乱最终还是删除了sleep.py 我想 把宿主目录添加到系统变量 $PATH 中这样有可…

winform中使用SqlSugar和SQLite

winform虽然是老古董了&#xff0c;但是在开发桌面方面&#xff0c;还是得心应手的&#xff0c;比如开发一个小工具&#xff0c;小demo之类的。接下来&#xff0c;我们使用SqlSugar和SQLite数据库&#xff0c;在winform中运用。 1.首先建立一个程序 2.安装 System.Data.SQLite…

宿舍管理系统的设计与实现

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 1登录&#xff1a;学生进行用户登陆密码核对&#xff0c;并可对自己的信息进行修改。 2.宿舍水电费管理&#xff1a;学生…