一、基本解释
静态变量的定义,静态化的变量 方法 代码块属于类本身,不属于对象。虽然使用起来方便,不宜过多使用,对资源消耗大,但是使用起来效率高;以空间 换时间
可以定义
1、静态内部类类,方法
2、静态变量,
3、静态代码块,
4、静态导入
在内存中静态方法,静态变量只有一份。 不会随着类的实例化而创建,在类加载的时候,自动初始化并创建。
二、用途:
1、变量静态化,作为多线程共享变量
2、代码块静态化,初始化一个方法。类,变量
3、静态导入,简化程序员的工作
三、下面是Java、类 的各种实现
package ****;
//静态导入,import +空格+static +空格+静态函数
import static java.lang.System.out;
/**
* 父类
*
* @author Administrator 关键字 package ,import,static,class entends,super,new,void
*/
class Father {
public Father() {
System.err.println("Father 初始化父类");
}
public void test() {
System.err.println("测试方法");
}
}
/**
* 关键字 public
*
* @author Administrator
*
*/
public class StaticDemo extends Father {
public static String A = "AA";
static {
// 类加载的时候,调用
out.println("这是静态代码块");
}
public StaticDemo() {
// 调用父类初始化
super();
// 调用父类的方法
super.test();
// 调用自己的方法
this.test();
System.err.println("StaticDemo 初始化");
}
/**
* 程序入口,而且JDK自动加载该静态方法
*
* @param args
*/
public static void main(String[] args) {
// 等同于system.out.println()
out.println("out.println 这是静态方法;main是一种常见的 静态函数,而且还是Java代码的入口,由JDK调用");
//完全的输入法
System.out
.println("System.out.println 这是静态方法;main是一种常见的 静态函数,而且还是Java代码的入口,由JDK调用");
//静态方法调用,在方法内部可以用this代替
StaticDemo.staticd();
//非静态方法调用
new StaticDemo().comd();
//静态内部类调用
new StaticInnerClass();
//非静态内部类调用
new StaticDemo().new NonStaticInnerClass();
}
//静态内部类
public static class StaticInnerClass {
public StaticInnerClass() {
System.err.println("StaticInnerClass---测试方法");
}
}
//非静态内部类
public class NonStaticInnerClass {
public NonStaticInnerClass() {
System.err.println("StaticInnerClass---测试方法");
}
}
/**
* 类加载的时候,初始化该类,关键字 static,void
*/
public static void staticd() {
System.out.println("System.out.println 静态类,无需new 通过类方法调用");
}
/**
* 只有在示例后 才会加载
*/
public void comd() {
System.out.println("System.out.println 普通类,需要new实例化 后调用");
}
@Override
public void test() {
System.err.println("子类---测试方法");
}
}
Father 初始化父类
测试方法
子类---测试方法
StaticDemo 初始化
这是静态代码块
StaticInnerClass---测试方法
out.println 这是静态方法;main是一种常见的 静态函数,而且还是Java代码的入口,由JDK调用
System.out.println 这是静态方法;main是一种常见的 静态函数,而且还是Java代码的入口,由JDK调用
System.out.println 静态类,无需new 通过类方法调用
System.out.println 普通类,需要new实例化 后调用
Father 初始化父类
测试方法
子类---测试方法
StaticDemo 初始化
StaticInnerClass---测试方法