`

【转载】Java入门 之 static

阅读更多

转载地址:http://snkcxy.iteye.com/blog/1828950

概述:

  1. 修饰方法和成员变量,一旦修饰被修饰,就属类所有,可以通过类直接调用。
  2. 静态代码块:主要功能是做一些初始化工作。
  3. 代码块可以给变量赋初始值,但是千万不要把变量定义在代码块中。
  4. 代码块不能接受参数,所以它初始化的应当是公共的相同的信息,每个类或每个对象都是一样的信息。
  5. 静态成员(field、方法、代码块)不能访问非静态的成员,因为在他们运行的时候 非静态成员还不存在。
Java代码 复制代码 收藏代码
  1. package com.cxyapi.oo;   
  2.   
  3. /** static关键字演示  
  4.  * @author cxy @ www.cxyapi.com  
  5.  */  
  6. public class StaticTest   
  7. {   
  8.     public static void main(String[] args)   
  9.     {   
  10.         //静态成员变量    测试   
  11.         System.out.println(StaticTestObject.welcome);   
  12.         System.out.println("----------------------");   
  13.            
  14.         //静态方法    测试   
  15.         StaticTestObject.test();   
  16.         System.out.println("----------------------");   
  17.            
  18.         new StaticTestObject().test1();   
  19.         System.out.println("----------------------");   
  20.            
  21.         new StaticTestObject().test1();   
  22.         System.out.println("----------------------");   
  23.         /*  
  24.          * 执行上面方法会获得很多信息:  
  25.          * 1.有static修饰的代码块,在类被使用的时候,首先执行,并且只执行一次  
  26.          * 2.没有static修饰的代码块,在类实例化的时候会被调用,并且每次实例化都会被调用一次  
  27.          * 3.代码块的执行总是先于构造方法  
  28.          */  
  29.     }   
  30. }   
  31.   
  32. class StaticTestObject   
  33. {   
  34.     static  
  35.     {   
  36.         System.out.println("初始化代码块~");   
  37.     }   
  38.        
  39.     {   
  40.         System.out.println("一个代码块");   
  41.     }   
  42.        
  43.     //静态成员变量    属于类   
  44.     public static String welcome="www.cxyapi.com";   
  45.        
  46.     public StaticTestObject()   
  47.     {   
  48.         System.out.println("构造函数");   
  49.     }   
  50.        
  51.     public static void test(){ System.out.println("静态的test方法"); }   
  52.     public void test1(){ System.out.println("test1方法"); }   
  53. }  
package com.cxyapi.oo;

/** static关键字演示
 * @author cxy @ www.cxyapi.com
 */
public class StaticTest
{
	public static void main(String[] args)
	{
		//静态成员变量    测试
		System.out.println(StaticTestObject.welcome);
		System.out.println("----------------------");
		
		//静态方法    测试
		StaticTestObject.test();
		System.out.println("----------------------");
		
		new StaticTestObject().test1();
		System.out.println("----------------------");
		
		new StaticTestObject().test1();
		System.out.println("----------------------");
		/*
		 * 执行上面方法会获得很多信息:
		 * 1.有static修饰的代码块,在类被使用的时候,首先执行,并且只执行一次
		 * 2.没有static修饰的代码块,在类实例化的时候会被调用,并且每次实例化都会被调用一次
		 * 3.代码块的执行总是先于构造方法
		 */
	}
}

class StaticTestObject
{
	static
	{
		System.out.println("初始化代码块~");
	}
	
	{
		System.out.println("一个代码块");
	}
	
	//静态成员变量    属于类
	public static String welcome="www.cxyapi.com";
	
	public StaticTestObject()
	{
		System.out.println("构造函数");
	}
	
	public static void test(){ System.out.println("静态的test方法"); }
	public void test1(){ System.out.println("test1方法"); }
}

 

结果图:


    
 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics