更新时间:2020-11-18 17:17:52 来源:极悦 浏览915次
无论是在平时的开发中还是求职面试的过程中,我们都会经常遇见static关键字。因此,掌握static关键字的用法成为了我们的当务之急,本文就来向大家介绍static关键字用法以解燃眉之急。
在正式学习static关键字的用法之前,我们先要弄懂static关键字的基本概念,不然学起static关键字的用法就像是无萍之水,知其然而不知其所以然。我们可以一句话来概括static关键字:方便在没有创建对象的情况下来进行调用。也就是说:被static关键字修饰的不需要创建对象去调用,直接根据类名就可以去访问。对于这个概念,下面根据static关键字的四个基本使用来描述。
了解了static关键字的基本概念,然后我们再来学习static关键字用法。
1、static关键字修饰类
java里面static一般用来修饰成员变量或函数。但有一种特殊用法是用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 一个外部类实例。再通过外部实例创建内部类。
2、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();
}
}
3、static关键字修饰变量
被static修饰的成员变量叫做静态变量,也叫做类变量,说明这个变量是属于这个类的,而不是属于是对象,没有被static修饰的成员变量叫做实例变量,说明这个变量是属于某个具体的对象的。
我们同样可以使用上面的方式进行调用变量:
public class StaticVar {
private static String name="java的架构师技术栈";
public static void main(String[] args) {
//直接通过类名
StaticVar.name;
}
}
4、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关键字用法的介绍,总的来说还是很简单的吗,我们只要牢记概念,梳清条理,就能掌握static关键字用法。想要掌握更多的Java关键字用法的相关知识可以观看本站的Java SE教程,超高质量的Java关键字用法教程等你来学!
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习