Java基础之static和final的用法
来源:互联网 发布:淘宝没发票可以投诉吗 编辑:程序博客网 时间:2024/05/17 09:09
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);"> 在java中,变量、方法和类有很多修饰词来限定它们的范围(或者限定权限),常有的public、protected、private和默认(default),相信童鞋们对这几个修饰词并不陌生,那么,除此之外还有俩个修饰词相信大家也都经常见到,但是并不会经常用,现在,就来简单说说这俩个修饰词的用法,即static和final的用法。</span>
static:意味静态的。它可以修饰成员变量、方法和代码块。
1)修饰成员变量:static修饰成员变量时,成员变量就属于类的了,不再属于对象,可以通过类点访问,也可以通过对象访问,但是不建议。比如:
public class A{
static int a;
int b;
}
public class B{
public static void main(String[] args){
A aa =new A();
aa.b;//访问没有static修饰的成员变量,也叫实例变量
aa.a;//不报错,但不建议
A.a;//不报错,建议
}
}
当类的所有对象都有一样的数据时,将该成员变量修饰为静态的,这样该静态变量就和方法存储到同一内存区中了,而且只有一份,无论类的哪一个对象来访问该变量时,都无需重新赋值。
2)修饰方法:static修饰方法时,方法同样属于类的了,不再属于对象,可以通过类点访问,也可以通过对象访问,但是不建议。比如:
public class A{
static int a;
int b;
public static void test(){
a=1;//正确
b=1;//报错
}
}
public class B{
public static void main(String[] args){
A aa =new A();
aa.test();//不报错,但不建议
A.test();//不报错,建议
test();//报错
}
public void test(){
}
}
在静态方法中,没有隐式的this,所以不能直接访问静态变量或静态方法。当方法跟对象无关,只与参数有关时,可以设为静态的,比如Arrays.sort()的sort()和Math.random()的random(),因为无论哪个对象调用,结果都是一样的,跟谁调用无关,所以设为静态的。
3)修饰代码块:static修饰的一段代码,属于类,在类被加载时自动执行,因为类只被加载一次,所以静态代码块只被执行一次,它的形式如:
public class A {
static{
//加载静态资源
}
}
静态代码块主要是用来加载静态资源,比如音频、视频、图片等。
final:最终的,不变的,可以修饰类、方法和成员变量。
1)修饰类:final修饰类,该类不能被继承。
2)修饰方法:final修饰方法,该方法不能被重写。
3)修饰成员变量:final修饰的成员变量必须初始化或在构造方法中初始化,修饰局部变量时,在使用时需初始化,特别注意的是内部类访问局部变量时,该变量必须是final修饰的。
static和final同时使用,常常用来修饰成员变量,那么此时被static和final同时修饰的变量叫做常量,该常量必须初始化,且不能改变。
0 0
- Java基础之static和final的用法
- java基础--static和final的用法
- java基础关键字之Static和final
- java static和final的用法总结
- java 中 static 和 final 的用法
- Java中final和static的用法
- JAVA基础:static和final
- static和final的用法
- java基础面试题之static和final总结
- java之static 和 final
- Java之static和final
- java中final和static关键字的用法
- 关于Java中static和final关键字的用法总结
- 【java】final和final static的区别
- java---final 关键字 和 static 用法
- java---final 关键字 和 static 用法
- Java中的final和static用法总结
- java---final 关键字 和 static 用法
- ubuntu设置vim高亮和缩进
- 第7周 C语言程序设计(新2版) 练习1-19 颠倒字符串中的字符
- Java学习笔记(七)之―认识Java API
- 存储过程详解
- 在Android studio IDE中采用自己编写的Android.mk
- Java基础之static和final的用法
- 教你使用Spy++查看软件的流氓行径(talimama/Dandelion.exe)
- 可修改UID的白卡,请问为什么一般读写器不能修改这种卡的UID,必须要特定的读写器才能修改?
- iOS基础开发-九宫格显示数据页面
- 排序-快速排序(c)
- 【HUSTOJ】1114: 高精度加法之二
- 优化SQL Server数据库的50种方法
- Codeforces Round #352 (Div. 1) B. Robin Hood
- Linux(CentOS)安装SVN服务端