java static

1、static概念

(1)static 关键字是静态的意思,可以修饰成员方法,成员变量

(2)static 修饰的特点

      ① 被类的所有对象共享,这也是我们判断是否使用静态关键字的条件。

      ② 可以通过类名调用,当然,也可以通过对象名调用,不过推荐使用类名调用。

2、代码实现

(1)Student类

public class Student {
    public static int age = 20;

    public static void show(){
        System.out.println(age);
    }

}

(2)Test类

public class Test {
    public static void main(String[] args) {
        Student s = new Student();
        //通过类名访问成员变量
        Student.age = 200;
        //通过对象名访问成员变量
        s.age =100;

        //通过类名访问成员方法
        Student.show();
        //通过对象名访问成员方法
        s.show();
    }
}

(3)运行结果

3、static访问特点

3.1 代码实现

public class Student {
    public static int age = 20;
    
    public String name ="张三";

    public static void show1(){
        System.out.println(age);
        System.out.println(name);
    }
    public  void show2(){
        System.out.println(age);
        System.out.println(name);
    }
}

上面的代码会有下图报错

原因是在静态方法里面访问了非静态的成员变量。

3.2 访问特点

(1)非静态的成员方法

       ① 能访问静态和非静态的成员变量、成员方法

(2)静态的成员方法

       ① 只能访问静态的成员变量和成员方法

总结成一句话就是:静态成员方法只能访问静态成员(包括变量和方法)。

为什么静态成员方法只能访问静态成员(包括变量和方法)?答案是,静态的内容是随着类的加载而加载,所以当类加载时,静态成员(包括变量和方法)是先进入内存的,而此时的非静态成员(包括变量和方法)是不在内存里的,因此静态成员方法如果想访问其它非静态成员(包括变量和方法)是访问不了的。

4、静态方法和实例方法的区别,参考 Java 中的 static:静态变量、静态方法,一切都在掌握中_java静态方法里的变量-CSDN博客

(1)关联性:静态方法与类本身相关,而实例方法与类的实例相关。

(2)调用方式:静态方法可以通过类名和对象实例调用,而实例方法只能通过对象实例来调用。

(3)访问权限:静态方法可以访问类的静态成员,但不能访问非静态成员(实例成员)。实例方法可以访问类的静态和非静态成员。

(4)内部引用:静态方法中不能使用this关键字,因为它没有当前对象的引用。实例方法可以使用this来引用当前对象。

(5)生命周期:静态方法在类加载时初始化,而实例方法在对象创建时初始化。


 

本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!

创作不易,如果对你有点帮助的话麻烦点个赞支持一下!

新手小白,欢迎留言指正!

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

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

相关文章

ActiViz三维场景的基本要素——相机

文章目录 前言一、基本属性和方法二、相机操作三、高级功能四、 示例代码和应用五、总结前言 在ActiViz中,vtkCamera是一个非常重要的类,用于定义观察场景的视角和位置。作为三维可视化的核心组件之一,vtkCamera决定了用户在三维场景中所看到的图像内容和视角,因此它对于呈…

Linux之文件管理与重定向

文件的管理 最开始说到过, 一个进程是可以打开多个文件的并且可以对这些文件做出不同的操作, 也就是说加载到内存中的文件可能存在多个. 操作系统要不要管理这些打开的文件呢? 当我们在程序里面打开多个文件时, 操作系统肯定是得对这些文件进行管理的, 而管理的本质就是对数…

openKylin系统安装ssh服务结合内网穿透实现固定公网地址访问

文章目录 1. 安装SSH服务2. 本地SSH连接测试3. openKylin安装Cpolar4. 配置 SSH公网地址5. 公网远程SSH连接小结 6. 固定SSH公网地址7. SSH固定地址连接 openKylin是中国首个基于Linux 的桌面操作系统开发者平台,通过开放操作系统源代码的方式,打造具有自…

cnetos7将普通用户的权限提升为超级用户

将普通用户的权限提升为超级用户 现象:当我们初次使用sudo命令时,会遇到下面的问题 解决步骤: 显示你当前登录用户的用户名。 whoami将自己的用户切为超级用户,密码为你第一次使用Linux登录时的密码 su -使用vim编辑器打开配…

Dockerfile Docker Compose(实战总结)

Dockerfile & Docker Compose(实战总结) Dockerfile Dockerfile 是用来构建Docker镜像文件,是由一条条构建镜像所需的指令构成的脚步。 步骤: 编写Dockerfile 文件docker build 构建镜像docker run 运行镜像docker push 发…

Hive SQL必刷练习题:日期交叉问题(两种思路)

思路一: ​ 首先想到的是借助炸裂函数,一行变成多行,就可以进行去重操作,然后再统计日期。 用到炸裂函数,就首先需要可以拿到起始和终止日期差大小的数组,然后再炸裂​ 那这个指定长度数组怎么获取呢&…

如何利用生成式AI准备面试?

面试准备的重要性 面试是求职过程中至关重要的一环,它是你与梦想职位之间的桥梁。充分的准备不仅能够增加你获得工作的机会,还能提高你在面试中的自信心。为什么要重视面试准备?因为通过它,你能更好地展示自己的专业能力、个人魅…

Linux chapter1 常用命令 cp

note 1 : netstat、curl、ip、nmap、dig 这些都是常用的网络诊断工具,它们的全称如下: netstat:Network Statistics,网络统计,用于显示网络连接,路由表,网络接口统计等网络信息。curl&#xf…

第七节:使用SMB发布Web前端程序

一、概述 一直以来,多数人都使用Apache、IIS、Tomcat等开源或商业Web服务器来运行Web程序,各种参数太多,与我们简单易用逻辑相左。所以在架构设计的时候,我们也在考虑,我们公司的Web程序是否能运行在SMB中,…

维度建模理论之维度表

维度表概述 维度表是维度建模的基础和灵魂。前文提到,事实表紧紧围绕业务过程进行设计,而维度表则围绕业务过程所处的环境进行设计。维度表主要包含一个主键和各种维度字段,维度字段称为维度属性。 维度表设计步骤 1)确定维度&…

接口冒烟测试方法

接口冒烟测试方法 今年遇到了几个问题,与接口的功能和性能相关,恰巧最近公司也在组织以冒烟测试为主题的活动,于是乎突发奇想,寻思着能否将接口测试与冒烟测试结合起来,发掘一些新的接口测试思路与方法。 平时对接口…

canoe 以太网配置

canoe vn5620 以太网配置 首先电脑连接上VN5620,配置了License才能进行端口设置 从开始菜单中打开Vector Hardware Configuration 进入到配置页面,会出现VN5620,选择进行右击,点击第一个选项Ethernet device configuration ca…

TCP协议 及 重要机制

目录 1.TCP 协议报文格式 1.1.端口号 1.2 首部长度 和 选项 1.3 保留位 1.4 检验和 1.5 32位序号和确认序号 2. TCP的重要机制 2.1 确认应答 2.2 超时重传 2.3 连接管理 2.3.1 三次握手 2.3.2 四次挥手 2.4 滑动窗口 2.5 流量控制 2.6 拥塞控制 2.7 延时应答 2…

el-transfer 穿梭框

用到了jquery&#xff0c;所以需要下载jquery包&#xff0c;"jquery": "^3.6.0" <template><div>选中的{{result}}---数据<el-transfer v-model"result" :data"transferData" filter-placeholder"冷冻盒编号&qu…

全网最详细介绍如何实现图片存储阿里OSS实现资源持久化存储

什么是阿里云OSS 阿里云OSS&#xff08;Object Storage Service&#xff0c;对象存储服务&#xff09;是阿里云提供的一种存储服务&#xff0c;它支持任意类型的数据存储&#xff0c;如图片、视频、日志文件等。OSS以对象&#xff08;Object&#xff09;的形式组织数据&#x…

【深度学习】手动实现RNN循环神经网络

&#x1f33b;个人主页&#xff1a;相洋同学 &#x1f947;学习在于行动、总结和坚持&#xff0c;共勉&#xff01; 目录 01 回顾 02 RNN神经网络原理 03 RNN神经网络实现 04 RNN神经网络实验 RNN的特别结构使得RNN具备了短期记忆能力&#xff0c;使其能够学习部分语义信息…

Teamcenter自定义Send To命令列表

需求 在TC中&#xff0c;选中目标后&#xff0c;右击&#xff0c;出现"Send To"&#xff0c;有时候需要对其进行添加或删减。以隐藏“Validation Manager”为例。 技术细节 进入“Command Suppression”应用。 设置需要隐藏的命令&#xff0c;以隐藏“Validation…

全栈的自我修养 ———— 微信小程序开发电脑测试api请求正常,移动端请求异常!!

小编今天也是在电脑测试时候发送请求http到服务器是可以通的&#xff0c;但是到了手机端就不可以了&#xff0c;经过小编仔细钻研&#xff0c;终于发现了以下问题&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff0…

数据库学习之关系数据库与关系

2.1关系数据库与关系 1. 什么是数据模型&#xff1f;什么是关系数据模型 数据模型是对现实世界物体的一种抽象&#xff0c;是严格定义的一组概念的集合&#xff0c;这些概念精确描述了物体的静态特性&#xff0c;动态特性和完整性约束。 静态特性&#xff1a;数据结构 动态特…

Java - 数组 Array

一、概念 结构是一种线性表&#xff08;元素排列成直线的结构&#xff09;&#xff0c;创建数组会开辟一块连续的内存空间&#xff0c;长度固定无法更改&#xff0c;元素可以重复且只能是同一种类型&#xff08;Object类型数组除外&#xff09;。优点查询快&#xff1a;由于元…