A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© linder_qzy 中级黑马   /  2015-3-8 19:09  /  805 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static

静态使用方法:
是一个修饰符,用于修饰成员(成员变量、成员函数)
当成员被静态修饰后就多了一种调用方式,除了可以被对象调用外还可以用类名.静态成员的方法调用。

注意:
1.静态方法只能访问静态成员
非静态方法既可以访问静态方法也可以访问非静态方法。
2.静态方法中不可以出现this、super关键字。
因为静态方法优先于对象存在所以不可以出现this、super。

静态特点:
1:随着类的加载而被加载
2:优先于对象存在
3:被所有对象共享
4:可以直接类名.静态成员的方法调用
静态方法的有弊:
利:将对象的共享数据进行单独存储,节省内存空间。
弊:1生命周期过长
2访问有局限性(静态不能访问非静态)
3主函数是静态的
什么时候使用静态成员变量和函数
1:静态成员变量
当数据中出现共享数据时,改数据需要被静态所修饰,
对象中的特有数据要定义成非静态存在于堆内存中。
2:静态函数
当功能内部没有访问非静态数据,那么该功能可以定义成静态函数

通常工具类中定义的都是静态方法。

静态代码块
特点:类一被加载就执行,且只执行一次,优先于主函数执行。用于给类进行初始化
  1. class StaticCode   
  2. {  
  3.     //静态代码块 给类初始化  
  4.     static{  
  5.         System.out.println("a");  
  6.     }  
  7.     //构造代码块 给所有对象进行初始化  
  8.     {  
  9.         System.out.println("b");  
  10.     }  
  11.     //构造函数 给创建的对象进行初始化  
  12.     StaticCode(){  
  13.         System.out.println("c");  
  14.     }  
  15.     StaticCode(int x){  
  16.         System.out.println("d");  
  17.     }  
  18.     public static void show(){  
  19.         System.out.println("show run");  
  20.     }  
  21. }  
  22. class Demo04_StaticCode  
  23. {  
  24.     public static void main(String[] args){  
  25.             new StaticCode(4);//输出结果:a b d  
  26.     }  
  27. }  
复制代码

1 个回复

倒序浏览
虽然知道一点,不过还是长见识了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马