学习java的static

1.static是什么,用来做什么?

static-静态,可以修饰成员变量和成员方法。

2.成员变量按照有无static修饰,分为两种

类变量:有static修饰,属于类,在计算机中,会被类的全部对象所共享。它属于类,与类一起加载一次,在内存中只有一份。

实例变量:无static修饰,对象的变量,属于每个对象。每个对象中都有一份。

如何访问类变量:

推荐使用:类名.类变量

还有一种方法:对象.类变量

如何访问实例变量:

对象.实例变量

3.static修饰成员变量(类变量)的应用场景。

在我们开发的时候,如果遇到某个数据只需要一份,并且希望能够被共享(访问,修改),则该数据可以定义成类变量来记住。

注意:在某一个类中,访问其他类里面的类变量,必须带类名访问

public class student {static String name;int age;
}
public class demo1 {public static void main(String[] args) {//类变量的使用//推荐使用student.name = "张三";//对象.类变量(不推荐)student s = new student();s.name = "李四";student student = new student();student.name = "王五";System.out.println(s.name);System.out.println(student.name);//实例变量的用法s.age=23;student.age=25;System.out.println(s.age);System.out.println(student.age);}
}

4.成员方法的分类

类方法:有static修饰的成员方法,属于类。访问方法:推荐使用类名.类方法();不推荐使用对象名.类方法();

实例方法:无static修饰的成员方法,属于对象。访问方法:对象.实例方法();

public class Student {public static  void print(){System.out.println("hello");System.out.println("hello");}public static void study() {System.out.println("study");System.out.println("study");}
}
public class demo2 {public static void main(String[] args) {Student student = new Student();//类方法的使用//推荐使用:类名.方法名()Student.study();//不推荐使用student.study();}
}

5.类方法的应用场景

类方法最常见的应用场景是用来做工具类。

什么是工具类?

工具类中的方法都是一些类方法,每个方法都是用来完成一个功能,工具类是给开发人员共同使用的。

使用类方法来设计根据类的好处:提高代码的复用,调用方便,提高了开发的效率。

工具类没有创建对象的需求,建议将工具类的构造器进行私有。

为什么不使用实例方法呢?

因为实例方法需要创建对象来调用,会浪费内存。

6.使用static的几点注意事项

1.类方法中可以直接访问类的成员,不可以直接访问实例对象。

2.实例方法既可以直接访问类成员,也可以直接访问实例成员。

3.实例方法中可以直接出现this关键字,类方法中不可以出现this关键字。

7.代码块

静态代码块

格式: static{};

特点:类加载时自动执行,由于类只会加载一次,所以静态代码块叶只会执行一次。

作用:完成类的初始化,例如:对类变量的初始化赋值。

实例代码块

格式:{}

特点:每次创建对象时,执行实例代码块,并在构造器前执行。

作用:和构造器一样,都是用来完成对象的初始化的,例如:对实例变量进行初始化赋值。

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

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

相关文章

基于php+mysql+html超市商品管理系统(含论文)

博主介绍: 大家好,本人精通Java、Python、Php、C#、C、C编程语言,同时也熟练掌握微信小程序、Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

【数据结构-之八大排序(下),冒泡排序,快速排序,挖坑法,归并排序】

🌈个人主页:努力学编程’ ⛅个人推荐:基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 …

eve 导入linux

mkdir /opt/unetlab/addons/qemu/linux-centos7 cd /opt/unetlab/addons/qemu/linux-centos7 上传hda.qcow2 /opt/unetlab/wrappers/unl_wrapper -a fixpermissions Linux images - (eve-ng.net) Due to very high demand of this section and problems with how to crea…

【车载开发系列】MCAL基本概念

【车载开发系列】MCAL基本概念 【车载开发系列】MCAL基本概念 【车载开发系列】MCAL基本概念一. BSW与MCAL1)BSW-服务层2)BSW-ECU抽象层3)MCAL驱动层 二. MCAL基本概念三. MCAL组成1)PORT2)DIO3)ADC4&#…

阿里云开源大模型开发环境搭建

ModelScope是阿里云通义千问开源的大模型开发者社区,本文主要描述AI大模型开发环境的搭建。 如上所示,安装ModelScope大模型基础库开发框架的命令行参数,使用清华大学提供的镜像地址 如上所示,在JetBrains PyCharm的项目工程终端控…

1688详情,搜索,店铺,图搜

简要描述\n根据商品id获取详情数据\n请求URL\nhttp://xxx.xxx.xxx.xxx:xxxx/get_item\n请求方式\nget\n请求Query参数\n参数名 示例值 必选 类型 说明\nitemid 590347769363 是 string 商品id\ntoken admin.api 是 string 权限token\nsales_data 2 是 string 2\nchannel 0 否 s…

第六十六章 Apache 的替代选项 (Windows) - Microsoft Windows 的锁定 Apache 环境

文章目录 第六十六章 Apache 的替代选项 (Windows) - Microsoft Windows 的锁定 Apache 环境Microsoft Windows 的锁定 Apache 环境推荐选项的配置:Apache API 模块 (CSPa24.dll)替代选项 2 的配置:带有 NSD 的 CGI 模块 (nph-CSPcgi.exe)替代选项 3 的配…

【SSL 1974】鹊桥(DFS)

题目大意 据说银河是一个树形结构,共有 N N N 个星球,每到七夕时,喜鹊会在星球之间搭起桥,共有 N − 1 N−1 N−1 座鹊桥。 牛郎和织女就会从两个不同的位置出发,沿着最短路相向而行,并在途中相会。 假设…

机器人正反向运动学(FK和IK)

绕第一个顶点可以沿Z轴转动,角度用alpha表示 绕第二个点沿X轴转动,角度为Beta 第三个点沿X轴转动,记作gama 这三个点构成姿态(pose) 我们记第一个点为P0,画出它的本地坐标系,和世界坐标系一样红…

SpringCloud知识点梳理

1. Spring Cloud 综述 1.1 Spring Cloud 是什么 [百度百科]Spring Cloud是⼀系列框架的有序集合。它利⽤Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中⼼、消息总线、负载均衡、断路器、数据监控等,都可以⽤ Spring Boot的开发⻛格…

(C语言)文件操作与函数,超详解

目录 1. 文件 1.1 为什么使用文件? 1.2 什么是文件? 1.2.1 程序文件 1.2.2 数据文件 1.3 文件名 1.4 二进制文件和文本文件 2. 文件的打开和关闭 2.1 流和标准流 2.1.1 流 2.1.2 标准流 2.2 文件指针 2.3 文件的打开和关闭 3. 文件的顺序…

更改 DeepXDE 的后端

DeepXDE 库为科学计算和工程优化等领域提供了深度学习方法,是一个非常有用的工具。其中一个重要的功能是它允许用户自定义后端。在本文中,我们将指导如何更改 DeepXDE 的后端,并且验证更改是否成功。 更改 DeepXDE 的后端 DeepXDE 支持多种…

Go Web 开发【Gin 框架快速开发】

1、Gin Web 快速开发 1.1、环境准备 1.1.1、导入 gin 依赖 这里就叫 gin 依赖了,在 Goland 命令行中输入下面的命令: go get -u github.com/gin-gonic/gin 1.1.2、设置代理 如果下载失败,最好设置一下代理,在 cmd 命令行中输…

深度学习论文:Local Feature Matching Using Deep Learning: A Survey

深度学习论文: Local Feature Matching Using Deep Learning: A Survey Local Feature Matching Using Deep Learning: A Survey PDF: https://arxiv.org/pdf/2401.17592 1 概述 近年来,深度学习模型的引入引发了对局部特征匹配技术的广泛探索。本文旨在全面概述局…

创建并管理Python虚拟环境:深入理解venv

引言 Python作为一门广泛应用于Web开发、数据分析、人工智能等领域的编程语言,其生态系统中的第三方库数量庞大且种类繁多。随着项目复杂度的增加,管理不同项目间的依赖关系变得尤为重要。venv,全称为Virtual Environment,是Pyth…

爬虫学习:基本网络请求库的使用

目录 一、urllib网络库 1.urlopen()方法 2.request方法 二、requests网络请求库 1.主要方法 2.requests.get()和requests.post() 一、urllib网络库 1.urlopen()方法 语法格式: urlopen(url,data,timeout,cafile,capath,context) # url:地址 # data:要提交的数据…

POWERBI==官网教程

地址 COVID-19 tracking sample for US state and local governments - Power BI | Microsoft Learn 已经非常全面了

JSON教程(非常详细)

参考文章来源:JSON教程(非常详细) 目录 JSON JSON 发展史 为什么要使用 JSON? JSON 的不足 存储格式 使用场景 1) 定义接口 2) 序列化 3) 生成 Token 4) 配置文件 JSON语法规则 JSON 与 JavaScript 对象的区别 JSON数…

解决Pycharm全局搜索与输入法简繁切换快捷键冲突问题

Pycharm中全局搜索快捷键Ctrl Shift F 如图所示: 微软输入法简繁切换快捷键设置: 解决办法: 关掉输入法的切换功能即可,或者更改简繁切换快捷键,毕竟简繁切换使用频率极低。

骑缝电子章怎么盖?

盖骑缝电子章通常涉及几个基本步骤,这里提供一个通用的流程,适用于大多数电子文档处理软件,尤其是那些支持电子签名和印章功能的软件,比如Adobe Acrobat Pro DC、e-章宝(易友EU3000智能盖章软件)等。请注意,具体操作可…