Static关键字的详细用法
Posted 名字真的很急用
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Static关键字的详细用法相关的知识,希望对你有一定的参考价值。
1、static关键字基本概念我们可以一句话来概括:方便在没有创建对象的情况下来进行调用。也就是说:被static关键字修饰的不需要创建对象去调用,直接根据类名就可以去访问。对于这个概念,下面根据static关键字的四个基本使用来描述。然后在下一部分再来去分析static的原理,希望你能认真读完。
2、static关键字修饰类java里面static一般用来修饰成员变量或函数。但有一种特殊用法是用static修饰内部类,普通类是不允许声明为静态的,只有内部类才可以。
下面看看如何使用。
public class StaticTest {//static关键字修饰内部类public static class InnerClass{ InnerClass(){ System.out.println("====== 静态内部类======"); }
public void InnerMethod() { System.out.println("===== 静态内部方法====="); } }
public static void main(String[] args) { //直接通过StaticTest类名访问静态内部类InnerClass InnerClass inner=new StaticTest.InnerClass(); //静态内部类可以和普通类一样使用 inner.InnerMethod(); }}
如果没有用static修饰InterClass,则只能new 一个外部类实例。再通过外部实例创建内部类。
3、static关键字修饰方法修饰方法的时候,其实跟类一样,可以直接通过类名来进行调用:
public class StaticMethod { public static void test() {
System.out.println("======= 静态方法===="); };
public static void main(String[] args) { //方式一:直接通过类名 StaticMethod.test(); //方式二:
StaticMethod fdd=new StaticMethod();
fdd.test(); }}
4、static关键字修饰变量被static修饰的成员变量叫做静态变量,也叫做类变量,说明这个变量是属于这个类的,而不是属于是对象,没有被static修饰的成员变量叫做实例变量,说明这个变量是属于某个具体的对象的。我们同样可以使用上面的方式进行调用变量:
public class StaticVar { private static String name=“java的架构师技术栈”;
public static void main(String[] args) {
//直接通过类名 StaticVar.name; }}
5、static关键字修饰代码块静态代码块在类第一次被载入时执行,在这里主要是想验证一下,类初始化的顺序。父类静态变量父类静态代码块子类静态变量子类静态代码块父类普通变量父类普通代码块父类构造函数子类普通变量子类普通代码块子类构造函数代码验证一下:
首先我们定义一个父类
public class Father{
//父类静态代码块 static{ System.out.println(“Father static”); }
//父类构造函数 public Father(){ System.out.println(“Father constructor”);
}}
然后定义一个子类public class Son extends Father{//静态代码块 static{ System.out.println(“Son static”); }
//构造方法
public Son(){
System.out.println(“Son constructor”); }
public static void main(String[] args) {
new Son(); }}
以上是关于Static关键字的详细用法的主要内容,如果未能解决你的问题,请参考以下文章