Java入门:08.Java中的static关键字

news2024/11/15 10:43:01

1 static关键字

  • 可以修饰属性变量,方法和代码段

    • static修饰的属性称为静态属性或类属性, 在类加载时就在方法区为属性开辟存储空间,无论创建多少个对象,静态属性在内存中只有一份。

      可以使用 类名.静态属性 的方式引用

    • static修饰的方法称为静态方法或类方法,在类加载时就在方法区中开辟存储空间,存储方法中信息,在调用静态方法时,不会默认传递this参数。

      可以使用 类名.方法() 的方式引用

    • static修饰的代码段称为静态代码段,在类加载时就自动执行,且仅执行一次。

      一般初始化操作可以写在静态代码段中。

1.1 对象属性与静态属性

对象属性:

class A{
    int i ;    
}
​
class Test{
    main(){
        A a= new A();
        a.i = 10 ;
    }
}

静态属性

class A{
    static int i ;
}
​
class Test{
    main(){ 
        A.j = 20 ;
    }
}
  • 对象属性:只有创建对象,才能引用。

  • 静态属性:可以通过类名直接引用。不需要创建对象。 通过对象也可以引用。

    类加载时开辟存储空间, 只有一份, 可以数据共享。

1.2 对象方法与静态方法

特点1

无论是静态方法还是对象方法,都是在类加载的时候,就在方法区中分配了存储空间

无论创建多少个对象,方法在内存中只存储一次。

特点2

在使用上, 对象方法的使用,必须先创建对象,才能调用。

而静态方法,可以通过类名直接调用

特点3

尽然对象方法在内存中只有1份,怎么做到不同对象调用,可以访问不同对象的属性呢?

  • 当通过对象调用对象方法时,会默认传递一个参数,这个实参就是当前对象的地址。这个形参就是this

  • 当通过类调用类方法时,就不会传递对象地址(此时没有对象),静态方法也没有this这个默认参数

简单来说,对象方法和静态方法的区别就在于是否需要引用对象自己的属性变量。

扩展1

静态方法中,不能使用this关键字。(压根就没有)

静态方法中只能直接使用静态成员(属性和方法),不能直接使用非静态成员。

在对象方法中,可以使用对象成员,也可以使用静态成员。

扩展2

对象方法中会有一个默认的参数叫this,存储的是调用当前方法的那个对象的地址

所以可以通过this,访问指定对象的属性。

默认情况下,访问对象的属性和其他方法时,jvm会自动的根据this的地址访问,而不需要编码时必须使用this关键字

class A{
    int i  ;
    public void t1(){
        i = 20 ; //等价于 this.i = 20 ;
    }
}

什么情况下必须写this呢?

  1. 局部变量与属性变量同名时,默认引用的是局部变量

  2. 调用重载的构造方法的时候

扩展3

方法到底是如何起作用的,以及有与属性同名的变量和没有同名变量的引用过程

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

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

相关文章

图的基础概念

图和树一样,是一种十分重要的算法思想,是很多算法比如floyd算法,Dijkstra算法等的实现基础 一、节点和边 节点和边是图的基本组成部分,以公交路线图为例,每一个站点相当与图的节点,连接每一个站点的路线相…

【03】深度学习——神经网络原理 | 多层感知机 | 前向传播和反向传播 | 多层感知机代码实现 | 回归问题、分类问题 | 多分类问题代码实现

深度学习 1.神经网络原理1.1神经元模型1.2神经网络结构1.3隐藏层1.3.1激活函数层 1.4输出层1.4.1softmax层 1.5损失函数1.6反向传播 2.多层感知机2.1线性网络的局限性2.2引入非线性2.3多层感知机(Multi-Layer Perceptron,MLP)2.4激活函数&…

卷轴模式系统源码开发在当今时代的多重益处

随着信息技术的飞速发展,数字化转型已成为各行各业不可逆转的趋势。在这一背景下,卷轴模式系统(这里的“卷轴模式”可理解为一种以滚动、分层或模块化展示信息的界面设计方式,类似于古代卷轴展开的过程,但更多地是指其…

2024金砖展 | 蓝卓:“1+2+N”智能企业新架构,赋能全球工业数字化转型

2024金砖国家新工业革命展——工业互联网专题展览作为2024金砖国家新工业革命展聚焦工业互联网的专题展示区域,全面展示工业互联网新技术、新产品、新方案、新应用、新项目、新生态等。 展览时间:2024年9月8日-9月11日 展览地点:厦门国际会展…

FreeRTOS学习记录——持续更新

目录 入门知识: 裸机与FreeRTOS: 裸机: RTOS系统: 基础知识: 任务调度: 分类: 时间片调度: 任务状态(四种): 四种状态图片: 入门知识: …

AV1 Bitstream Decoding Process Specification:术语和定义

原文地址:https://aomediacodec.github.io/av1-spec/av1-spec.pdf没有梯子的下载地址:AV1 Bitstream & Decoding Process Specification摘要:这份文档定义了开放媒体联盟(Alliance for Open Media)AV1视频编解码器…

上海市皮肤病医院引入AcrelEMS-MED平台打造绿色医院

在数字化转型的浪潮中,上海市皮肤病医院再次走在前列,宣布对其能源管理系统进行全面升级,引入AcrelEMS-MED医院能源管理平台,以科技力量推动绿色医院建设,为患者和医护人员打造更加安全、高效、环保的就医与工作环境。…

2024.9.9(极客大挑战 2019]EasySQL,[极客大挑战 2019]Knife)

题目一:极客大挑战 2019]EasySQL 1、点开题目链接,来到下面的界面 2、遇到这样的登录界面,先尝试admin和万能密码(1 or 11#),拿到flag 题目二:[极客大挑战 2019]Knife 1、点开链接&#xff0c…

【C++】模板:进阶(仿函数深度剖析)

目录 一.仿函数的概念 二.仿函数的作用 三.模板的非类型模板参数 四.array 五.模板的特化 六.函数模板 七.类模板 1.全特化 2.偏特化 八.模板分离编译 一.仿函数的概念 仿函数本质就是一个类,此类中重载了运算() ,因此它使用起来就和函数很像&a…

新160个crackme - 053-devilz KeyGen me#3

运行分析 解压出来4个文件运行程序发现要破解Name和Serial PE分析 32位,petite壳 手动脱壳 使用windows XP虚拟机OD打开程序按2下F8,发现ESP变红,根据ESP定律,在该地址右键 -> HW break下断点 继续按2下F9,来到灰色…

从0到1:中小企业如何用内容营销吸引客户,塑造品牌魅力?

今天咱们来聊聊中小企业如何通过内容营销这把“金钥匙”,打开客户的心门,同时塑造出独特的品牌魅力。别紧张,这其实就是一场精彩的交流盛宴,让我们一起探索其中的奥秘吧! 一、内容营销:真诚对话的开始 想象…

OAuth 2.0 授权流程详解与 FastAPI 实现

在现代网络应用中,OAuth 2.0 已成为授权和认证的标准协议。它允许用户将访问权限授予第三方应用,而无需暴露自己的用户名和密码。本文将详细介绍 OAuth 2.0 的常见授权流程,并展示如何在 FastAPI 中实现这些流程。 OAuth 2.0 简介 OAuth 2…

数字化转型不是终点,数字技术服务平台如何陪伴企业持续进化?

数字化转型确实不是终点,而是一个持续的过程,它要求企业不断适应变化、优化流程、创新业务模式。数字技术服务平台在陪伴企业持续进化方面扮演着至关重要的角色,具体体现在以下几个方面: 灵活性与可扩展性:数字技术服…

误删文件后的数据救赎实战恢复指南

误删文件的痛与思 在数字化时代,数据已成为我们生活与工作中不可或缺的一部分。无论是个人用户保存的家庭照片、工作文档,还是企业用户存储的财务数据、客户资料,都承载着无法估量的价值。然而,误删文件这一简单却致命的操作&…

【数组与广义表】(基本概念与思路)

1.数组的定义及特点 数组:按一定格式排列起来的,具有相同类型的数据元素的集合。 1.1一维数组 若线性表中的数据元素为非结构的简单元素,则称为一维数组。一维数组的逻辑结构:线性结构,定长的线性表声明格式:数据类型 变量名称…

仪表板展示丨DataEase看中国:中国月饼行业消费趋势报告

中秋节是中国最重要的传统节日之一,月饼是具有浓厚节日特色的传统美食。近年来,月饼市场呈现出诸多新趋势和消费特点。在本文中,我们使用DataEase开源BI工具(http://github.com/dataease)对中国月饼行业的消费趋势进行…

敏捷开发方法例题

答案:B 敏捷方法 特点 极限编程XP 4大价值观,5大原则,12个最佳实践 水晶法 认为每一个不同的项目都需要一套不同的策略,约定和方法论,认为人对软件质量有重要影响,因此随着项目质量和开发人员须知的提…

洛谷 P7391 「TOCO Round 1」自适应 PVZ

原题链接t 题目来源于:洛谷 题目本质:贪心,排序,平衡树 题目思路:把僵尸出现时刻和走进房子时刻想成左端点和右端点,按照右端点从小到大排序。第二对于同样可以使用的豌豆射手,我们一定选择上…

在 HKCR 新增项和值

; 1. Win11 HKCR 根键默认是 System 所有, Win10 HKCR 根键默认是 Administrators 所有。 ; 2. 以 System、管理员 还是 普通用户 登录系统? ; 在注册表里,操作 HKCR 行为与以上两项无关,都统一如下: ; 项 查权限所有者 当…

QT5实现https的post请求(QNetworkAccessManager、QNetworkRequest和QNetworkReply)

QT5实现https的post请求 前言一、一定要有sslErrors处理1、问题经过2、代码示例 二、要利用抓包工具1、问题经过2、wireshark的使用3、利用wireshark查看服务器地址4、利用wireshark查看自己构建的请求报文 三、返回数据只能读一次1、问题描述2、部分代码 总结 前言 QNetworkA…