Static关键字的用法(小白整理)
来源:互联网 发布:网络测试 编辑:程序博客网 时间:2024/06/07 13:03
就我现在知道的static关键字的用法有如下几点:
1).修饰类成员变量和成员方法(static只能修饰类成员变量),使其成为静态成员变量和静态方法;静态成员变量和静态方法可以把它们理解为类的属性和方法,是类的所拥有的东西,它们是先于对象创建的,在类加载(类加载是在创建对象之前进行加载)的时候就在系统内存中为其分配了相应的空间;因为它们是先与对象创建的,所有可以不用创建对象就可以对其进行调用;创建对象后,也可以通过对象调用,所有的对象都是共享静态成员变量和方法的;也就是说,其中一个对象对变量的值进行了修改,其他对象调用这个变量得到的就是修改后的变量。
代码测试如下:
public class TestStatic { public static void main(String[] args) { System.out.println(Static_.a);//类直接调用变量 Static_.fun();//类直接调用方法 //创建2个对象 Static_ s1 =new Static_(); Static_ s2 = new Static_(); //对象调用属性 System.out.println(s1.a); System.out.println(s2.a); //修改过后,重新输出 s1.a = 10; System.out.println(s1.a); System.out.println(s2.a); }}class Static_{ //静态变量 public static int a = 3; public Static_() { } public static void fun(){ System.out.println("静态方法"); }}
2).static修饰代码块,表示静态代码块,代码块就是写在一对大括号中的一段代码,在大括号前加个static关键字修饰,就成了静态代码块;静态代码块的执行时机也是在对象创建前(类加载的时候)执行,并且在整个程序运行过程中只执行一次;
代码测试如下:
public class TestStatic { public static void main(String[] args) { //创建2个对象,测试静态代码块的执行顺序 Static_ s1 = new Static_(); Static_ s2 = new Static_(); }}class Static_{ static {System.out.println("静态代码块1被执行!");} public Static_() { // TODO Auto-generated constructor stub System.out.println("对象创建成功!"); } static {System.out.println("静态代码块2被执行!");}}
3)修饰成员内部类:自动升级为普通类,相当于一个独立的类。当static修饰成员内部类的时候,不用创建外部类对象,可直接创建成员内部类对象。但是需要导包。
import TestStatic.Static_.Inner;public class TestStatic { public static void main(String[] args) { Static_.Inner inner = new Inner(); }}class Static_{ public Static_() { // TODO Auto-generated constructor stub } public static class Inner{ public Inner(){ System.out.println("成员内部类创建成功!"); } }}
在java中,如果一个类中的所有方法,属性都是用static修饰的话,那么这个类被叫做工具类;
阅读全文
0 0
- Static关键字的用法(小白整理)
- 关键字static的小用法
- static关键字的用法
- static 关键字的用法
- Static关键字的用法
- 关键字static的用法
- static 关键字的用法
- static关键字的用法
- static关键字的用法
- static关键字的用法
- static 关键字的用法
- static关键字的用法
- static关键字的用法
- static关键字的用法
- static关键字的用法
- 关键字static的用法
- static关键字的用法(C++)
- static 关键字的用法(c语言)
- Oracle资源管理器在HIS系统中的应用
- Spring Security 快速入门
- 判断数字/字符串/实例的类型
- Duilib 源码分析之字体篇
- Linux搭建DNS服务器简要步骤
- Static关键字的用法(小白整理)
- 学习Unity Shader使用CG 标准函数
- Unity3D error: ArgumentException: Key duplication when adding: XXX
- Vue.js前后端同构方案之准备篇——代码优化
- Linux最小安装
- http请求方法get和post的区别
- 永恒之蓝 网管必备知识库 分分钟排除险情
- ECNU Problem #3263 丽娃河的狼人传说(区间贪心)
- C# 客户端 调用Java版的REST风格的web Service