【软件工程师从0到1】- Java面向对象基础 (知识汇总)

前言

介绍:大家好啊,我是hitzaki辰。

社区:(完全免费、欢迎加入)日常打卡、学习交流、资源共享的知识星球。

自媒体:我会在b站/抖音更新视频讲解 或 一些纯技术外的分享,账号同名:hitzaki辰。

正文开始,抓紧上车!


一 - 类的组成

Java类的成员有5类:属性(成员属性)、方法、构造器、代码块、内部类,主要由4部分组成:

1)类变量:类型本身具有的属性。

2)类方法:类型本身可以进行的操作。

3)实例变量:类型实例具有的属性。

4)实例方法:类型实例可以进行的操作。

拓展

1可以用类变量体现一个类的固有属性,这个固有属性通常是个常量

3)实例方法比类变量多一个隐含参数:self、即当前操作的实例本身。因为实例方法也是通过self间接调用实例中的属性的。

4)类中的成员变量在创建对象时会分配一个默认值,与数组类似。

5)成员变量是在堆内存中, 局部变量是在栈内存中的。   类中的局部变量:各种代码块内和方法形参

6)一般不将实例变量声明为public,而是只通过实例方法对它进行操作。

二 - static修饰符

1)在类中,用static声明的成员变量为静态成员变量,也称为类变量。

2)类变量的生命周期和类相同,在整个应用程序执行期间都有效。

3)被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

4static可以用来修饰类的成员方法、类的成员变量,另外也可以编写static代码块来优化程序性能。

5)子类不能重写静态方法,事实上只是将父类中的同名方法进行了隐藏。

6还能用来修饰内部类、用来静态导包

三 - 构造方法

构造方法又为构造函数,构造器,constructor  (同样可以重载)

Person p = new Person();  (在右侧Person后面出现的小括号, 其实就是在调用构造方法)

1)它的作用就是对象的初始化, 在创建对象时自动调用

2)构造方法无需设置返回值,默认是此类本身的实例。

 

3Java类必须至少存在一个构造方法,若没有明确编写则系统自动会生成一个无参的构造方法,但还是建议自己手动编写一个无参构造器,避免出错。

4)私有构造方法用途: (构造方法第一行必须调用this()super(),否则系统自动调用无参的super() ,若不存在,则编译错误。)

1.private修饰构造方法,提高代码复用。

2.只想让类被静态访问时,比如Math

3.当能创建类的实例,但只能被类的静态方法调用时,比如单例模式。静态方法去调用私有构造方法,若以创建过了,则将创建过的返回。

静态和实例的加载顺序

1)情况1:当类被加载时 输出顺序为静态代码块 实例代码块

    static{

        System.out.println("静态代码块");

    }

    public static Test test1=new Test();

    {

        System.out.println("实例代码块");

    }

2)情况2(将静态代码块与静态成员test1换位置):输出顺序变为实例代码块 静态代码块。

Java构造函数执行顺序:①类加载(父类静态代码块->子类静态代码块) 

    ③父类非静态代码块      ②父类构造方法       ③子类非静态代码块       ④执行构造方法的代码

四 - this关键字

this

1this是一个关键字,翻译为:这个。

2this是一个引用变量,this变量中保存了内存地址指向了自身实例,this存储在JVM堆内存中Java对象的内部。

3、可以用来调用对象本身的成员变量、成员方法。this.x     this.fun();

4、用this可以在构造方法中调用自身其他构造方法,但只能在其代码块第一行调用,并且只能调用一个。

结尾

感谢你看到这里,如果感觉内容不错的话请点赞支持一下!

如果小伙伴对我的讲解有疑问,欢迎评论区讨论。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无痛卸载流氓杀毒软件Avast

文章目录 1\. 引言2\. 操作 1. 引言 与其说Avast是一个杀毒软件,不如说它是一个流氓软件,对于常用的微信QQ也进行拦截,我真的不知道意义何在 此外如果不小心安装上它之后,会出现一个问题:鼠标正常,电脑打字…

buildadmin+tp8表格操作(7)表格的事件监听

buildadmin 中的事件都已经在 baTable类中定义好了。我们一般不会去修改,万一我们要在事件上有所操作, 我们可以通过事件的 前置和后置 钩子函数来处理 那么我们是如何使用这些钩子呢? 我们只需要在 创建对象的时候,定义好这些钩…

企业怎样申请SSL证书?

对于很多企业而言,使用SSL证书加密网站已经显得尤为重要,这不仅仅是关乎企业的网站安全,同时也关系着企业的形象以及用户的信赖。既然使用https协议已经众多企业认可,那么我们该如何给自己的网站申请以及安装SSL证书? …

Nginx 413 Request Entity Too Large

当出现上图时候 更改nginx config 文件 在http{}或者server{}或者location{}中增加client_max_body_size 100m; 然后重启nginx 服务就好了

二进制部署k8s集群-过程中的问题总结(接上篇的部署)

1、kube-apiserver部署过程中的问题 kube-apiserver.conf配置文件更改 2、calico的下载地址 curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O 这里如果kubernetes的节点服务器为多网卡配置会产生报错 修改calino.yaml配置文件 解决方法: 调…

Redis 学习

Redis 集群共3种集群模式: 1. 主从模式 (主写从读),写请求分配到主库,完后数据同步到从库,从库主要负责读请求 同步过程: 从库启动向主库发送同步请求,数据传输的形式是RDB文件&am…

CentOS安装nodejs

查看可安装的版本 dnf module list nodejs选择需要版本安装 dnf module install nodejs:<stream>查看版本

5分钟带你了解什么是敏捷测试?难点显而易见!

随着敏捷开发模式的普及&#xff0c;越来越多的测试同仁也开始了敏捷测试。那么究竟什么是敏捷测试&#xff1f;敏捷测试与传统测试的主要区别是什么&#xff1f;敏捷测试的难点又是什么&#xff1f;本文会对这三个问题进行讲解。注意&#xff1a;本文只是讲解敏捷测试概念相关…

同创永益联合红帽打造一站式数字韧性解决方案

随着AI技术的快速兴起&#xff0c;IT技术已成为推动业务持续增长的重要驱动力&#xff0c;这要求企业不断尝试新事物&#xff0c;改变固有流程&#xff0c;加强IT技术与业务的合作&#xff0c;同时提升数字韧性能力&#xff0c;以实现业务目标。10月26日&#xff0c;红帽2023中…

PC3329L DC-DC降压 10V-100V输入3A大流输出带EN功能实现零功耗只需极少元器件

1. PC3392L特性  通过使能脚关断实现零功耗  宽电压输入范围 10V 至 100V  最大输出电流 3A  集成功率 MOS 管  外围器件少  输出短路保护  温度保护  逐周期限流  输出电压灵活可靠  ESOP8 2. 描述 PC3392L 一款宽电压范围降压型 DC-DC 电源管…

Python 进程和线程详解(multiprocessing、threading)

文章目录 1 概述1.1 进程 VS 线程1.2 优缺点 2 进程2.1 三个步骤2.2 多进程2.3 带参数2.3.1 元组参数 args2.3.2 字典参数 kwargs 2.4 获取进程编号2.5 设置进程守护 3 线程3.1 三个步骤3.2 多线程3.3 带参数2.3.1 元组参数 args2.3.2 字典参数 kwargs 2.4 获取线程编号2.5 设置…

3D建模基础教程:编辑多边形功能命令快捷方式

一、打开3D软件并创建新模型 首先&#xff0c;打开你的3D建模软件&#xff0c;比如Blender、Maya或3ds Max。然后&#xff0c;创建一个新的3D模型。你可以使用基本几何体来创建模型&#xff0c;也可以导入现有的模型。 二、进入编辑多边形模式 在主工具栏中&#xff0c;找到并…

设置指定时间之前的时间不可选

1、el-date-picker设置今天之前的日期不可选 <el-date-picker style"width: 100%" type"date" v-model"form.resetDate" align"right" :value-format"yyyy-MM-dd" placeholder"选择调整日期":disabled"t…

【带头学C++】----- 七、链表 ---- 7.5 学生管理系统(链表--上)

目录 1.main函数设计 2.定义Node节点类型 3.链表插入结点 在main函数中调用插入函数、打印函数 插入结点函数实现&#xff08;头插法&#xff09; 插入结点函数实现&#xff08;尾插法&#xff09; 遍历链表函数实现 4.演示插入、遍历结果 目录 1.main函数设计 2.定义…

dgl的cuda版本安装+对应torch的cuda版本安装

优秀教程 1、pytorch 1.8.1 CUDA11.1 对应的DGL版本是0.6.1&#xff08;linux、windows也适用&#xff09; 2、CUDApytorchDGL安装 3、安装dgl-cuda 4、torch 安装备忘录 dgl文件下载 https://anaconda.org/dglteam/repo可以将下面网址中的cu111改成你想要的版本&#xff0…

Vue网页中使用PDF.js弹窗显示pdf文档所有内容

本文中使用的PDF.js组件版本为3.11.174&#xff08;最新版使用上会有所不同&#xff09;&#xff0c;引入文件如下&#xff1a; 首先页面定义一个隐藏的弹窗块&#xff08;此处用ElementUI的Dialog组件&#xff09; <el-dialog ref"dialogPDF" :title"pdffi…

Zookeeper中的Watch机制的原理?

前言 Zookeeper是一个分布式协调组件&#xff0c;为分布式架构下的多个应用组件提供了顺序访问控制能力。它的数据存储采用了类似于文件系统的树形结构&#xff0c;以节点的方式来管理存储在Zookeeper上的数据 Zookeeper提供了一个Watch机制&#xff0c;可以让客户端感知到Zook…

大批量合并识别成一个表或文档的方法

金鸣表格文字识别系统功能强大&#xff0c;其中可以将上百张图片或上百页PDF中的表格文字合并识别成一个表格或文档的功能尤其受到广大用户的欢迎&#xff0c;那应该怎么操作呢&#xff1f; 一、打开金鸣表格文字识别软件&#xff0c;点击左上角的“表格识别”&#xff0c;选择…

如何远程控制别人电脑进行技术支持?

怎么提供远程技术支持&#xff1f; “我朋友的电脑出了一些问题&#xff0c;问我是否可以远程控制他的电脑帮他解决。请问有什么办法能快速的远程控制别人的电脑进行故障排除呢&#xff1f;” 当电脑出问题时&#xff0c;多数情况下会采用电话沟通进行解决&#…

深度学习人体语义分割在弹幕防遮挡上的实现 - python 计算机竞赛

文章目录 1 前言1 课题背景2 技术原理和方法2.1基本原理2.2 技术选型和方法 3 实例分割4 实现效果5 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习人体语义分割在弹幕防遮挡上的应用 该项目较为新颖&#xff0c;适合作为竞…