static关键字基础

static修饰变量

​ static关键字表示全局的,静态的,用它修饰的变量称为静态变量

  • 静态变量也被称为类变量,静态变量属于类所属,由类来直接调用static修饰的变量,它不需要手动实例化类进行调用。即static关键字只能定义在类的{}中,而不定义在任何方法中。
public class StaticDemo {
    private int a=10;
	private static int b = 20;
	
	public static void method() {
		//以下定义编译报错
//		static int i = 10;
		
		System.out.println("method is invoke");
	}
}

​ 就算去掉method()中的static也是一样的

static修饰方法

​ static 方法就是没有this方法,在static内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法,这实际上是static方法的主要用途。

main方法必须是static的,因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名来访问。

  • 修饰方法的注意事项
    • 常用:不用创建对象,直接类名.变量/方法即可访问
    • static修饰的方法内部不能调用非静态方法
    • 非静态方法内部可以调用static静态方法
public class StaticDemo {
	
	private int a=10;
	private static int b = 20;
	
	public static class StaticClass{
		public static int c = 30;
		public int d = 40;
		
		public static void out1() {
			//以下代码会报错,静态内部类不能访问外部类实例成员
//			System.out.println("a="+a);
			System.out.println("b="+b);
		}
		
		public void out2() {
			out1();
		}	
	}
	
	
	public static void staticMethod() {
		System.out.println("staticMethod is invoke");
		//以下调用编译报错,静态方法不能调用非静态方法
//		method2();
	}
	
	public void method() {
		System.out.println("method is invoke");
		staticMethod();
	}
    
	public static void main(String[] args) {
		StaticDemo.staticMethod();
	}

}

static修饰代码块

  • 静态游离块(初始化块),静态代码块可以置于类中的任何地方,类中也可以有多个static块,在类初次被加载的时候,会按照static代码块的顺序来执行,每个static修饰的代码块只能执行一次。
  • 静态代码块可以用来优化程序执行顺序

static用作静态内部类

  • 静态内部类可以包含静态成员,也可以包含非静态成员,但是在非静态内部内中不可以声明静态成员。
  • 由于非静态内部类的实例创建需要有外部类对象的引用,所以非静态内部类对象的创建必须依托于外部类的实例;而静态内部类的实例创建只需依托外部类。
  • 由于非静态内部类对象持有了外部类对象的引用,因此非静态内部类可以访问外部类的非静态成员;而静态内部类只能访问外部类的静态成员。
    • 内部类需要脱离外部类对象来创建实例
    • 避免内部类使用过程中出现内存溢出

静态导包

​ 静态导包就是使用import static用来导入某个类或者某个包中的静态方法或者静态变量。

/**静态导包*/
import static java.lang.Integer.*;

public class StaticTest {
	
	public static void main(String[] args) {
		
		System.out.println(MAX_VALUE);
		System.out.println(toHexString(111));
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值