静态 static关键字

本文探讨了Java中static关键字的使用,解释了为何引入static以节省内存资源。static修饰的成员变量作为类变量被所有对象共享,而静态方法无法访问非静态成员。静态成员在类加载时即存在,可通过类名直接访问。理解static的特性对于优化代码和避免潜在问题至关重要。
摘要由CSDN通过智能技术生成

概述

该单词是“静态”的意思,可以用来修饰成员变量和方法

为什么出现static?

​ 比如:

有一个Person类代表所有的男人,这个类的所有对象的性别属性的值是 “ 男 ” ,类中按正常的属性描述 “ 男 ” ,创建具体的人 对象的时候,每一个对象的空间中都得开辟一个属性空间用来存放 “ 男 ” 这个性别。不同的对象开辟了相同属性的空间,用来存放相同的值,是一个重复的动作,而且占用了内存空间,有点多余,浪费资源【时间和空间】。static解决这个问题:所有的对象都是一样,把这个属性在类描述的时候单独拧出来放一个地方【不属于任何的对象】所有的对象不需要开辟空间存放属性(存在于方法区的静态区),都来共享一个数据就可以。

类描述的时候把属性单独化,不是普通的描述,体现单独性,java就使用关键字static来修饰这个属性

static修饰的内容

​ 成员变量: 类变量

​ 成员方法: 类方法



static修饰的成员变量:

该变量叫静态变量(类变量),静态变量被该类下所有的对象所共享

注意事项:

随意修改静态变量(类变量)的值是有风险的,为了降低风险,可以同时用final关键字修饰,即公有静态常量(注意命名的变化)




static修饰成员方法

静态方法

静态方法中没有对象this,所以不能访问非静态成员

静态方法使用场景

只需要访问静态成员时;

不需要访问对象状态,所需参数都由参数列表显示提供



共性特点:

​ 1、属于类

​ 2、可以被所有的对象共享

​ 3、优先于对象存在

​ 4、随着类的加载而加载【创建】

​ 5、使用:类名调用

调用方式

​ 类名.成员变量名

​ 类名.成员方法名(参数)

为什么静态成员访问不了非静态成员?

类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问(类名.方法|类名.变量);

非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。

在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类的静态成员就已经存在了,访问一个内存中不存在的东西当然会出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值