概述:
- 修饰方法和成员变量,一旦修饰被修饰,就属类所有,可以通过类直接调用。
- 静态代码块:主要功能是做一些初始化工作。
- 代码块可以给变量赋初始值,但是千万不要把变量定义在代码块中。
- 代码块不能接受参数,所以它初始化的应当是公共的相同的信息,每个类或每个对象都是一样的信息。
- 静态成员(field、方法、代码块)不能访问非静态的成员,因为在他们运行的时候 非静态成员还不存在。
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方法"); }
}
结果图:
声明:
1.原创文章,转载请标明并加本文连接。
2.文章反映个人愚见,如有异议欢迎讨论指正
3.更多的内容请看我的 个人博客(测试版)