栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA之static

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA之static

一、static ①属性上

1.加上static的属性是类的静态属性

--创建模板类Person并定义俩个变量

--创建俩个对象并输出对应变量值

--探究结果为:张三、李四、男、女?

--结果为:

--但是把修饰sex的static去掉

--结果就转为:

  

--为什么?

 引出概念图

--static修饰的属性在共享区内,即各个对象共用的公式

--堆内存内存储的为非static修饰的属性

--而由代码可只,共享的sex属性,输出值由‘男’转变为‘女’

--换句话说,即在static的修饰下,sex的输出值总是为最后一次定义的值

--这里男女的输出值就对换了,因为最后一次定义的sex输出值为‘男’

 

 

 

2.特点:

@static修饰的类属性的访问可以通过:类名.类属性,还可以通过对象来访问

--即可以直接自主定义输出,无视static的修饰

--但是,因为这是在后文定义的,可以自主输出,如果在前面跟其他person属性一起定义,则输出结果仍参照static共享区原则

--所以static修饰的属性输出值也得考虑先后顺序

--因为name属性没有被static修饰,所以无法直接通过类名.属性来访问

-static修饰的属性,可以通过【类名.属性名】来操作,

而其他普通(非static)属性,得先new一下,即通过【对象.属性名】来操作

  • static修饰的属性在共享区
  • 非static修饰的属性在堆内存

--编译器也会给我们提示,person1/2.sex,可以直接通过类名.属性调用,不需再new

@static修饰的类属性在当前的class文件加载到 jvm的时候就被初始化

@当jvm销毁了这个类,那么这个类的static属性也被销毁

②方法上:

1.语法:

public static(返回值) 方法名(数据类型 变量){

方法体

return 结果}

--首先创建俩个语法,区别是有无static修饰

2.static修饰的方法是静态方法,可以直接通过【类名.方法名】调用

同理,非static修饰的方法,只能通过【对象.方法名】调用

 

③注意点:

1.类方法初始化很早,类被jvm加载后,就初始化了类方法,而普通方法(对象的方法)也加载进入了jvm,但是要等到对象被实例化后,这个方法才能被使用

2.普通方法中访问该属性时,隐藏了this,如果没有实例化,这个this就不存在

--例如

--this是隐藏的,不主动写出来就不会输出

--static修饰的,里面没有this

3.static修饰的方法不能访问static修饰的类属性,即类方法不能访问对象非static修饰的属性,也不能调用非static修饰的方法

--static修饰的方法只能使用static修饰的成员变量(属性)

--即因为static修饰了sex,所以sex是现在式,现在即可调用

--而name没有static修饰,所以name是未来式,得先new才能使用

4.对象方法可以访问类的所有属性和方法

④静态代码块

1.语法:

--例如在模板Person定义一个静态代码块

--任意执行后,static都会输出

 

2.静态代码块主要用于初始化资源

3.静态代码块在main之前执行

--先输出static代码块

--只输出一次

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1021549.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号