关键词static :类变量、对象变量、类方法、对象方法

关键字static用来区分成员变量、成员方法、内部类、初始化块是属于类还是对象的,有static修饰的成员属于类,否则属于对象。static关键字不能用来修饰方法中的局部变量。

1.类成员变量和对象成员变量

  • 类成员变量描述了该类的所有对象的共同特征。
  • 类成员变量相当于全局变量,为所有对象共享。
  • 可以直接通过 类.成员变量名 访问
  • 对象成员变量描述的是每个对象的独有特征。
  • 对象成员变量在堆内存中分配空间。
  • 在创建类对象后才能使用 对象名.成员变量 访问

2.类方法和对象方法

  • 类方法指有static修饰的成员方法
  • 可以通过 类名.方法名() 直接调用
  • 对象方法指没有用static修饰的方法,需要先创建该类的对象后再通过 对象名.方法名() 进行调用

3.静态语句块和非静态语句块

  • 静态语句块指有在类体中,方法外定义的有static修饰的语句块
  • 非静态语句块指在类体中,方法外定义的语句块。

4.此方法分别定义类变量、对象变量、类方法、对象方法,在main方法中演示如何调用
 

public class StaticTest1 {
		static String mystring = "hello";//定义了一个类变量,字符串hello
		int a=10;//定义一个对象变量a
		//类方法
		static void stacticMethod() {
			System.out.println("this is static method!");
		}
		//对象方法
		void nostaticMethod() {
			System.out.println("this is no static method!");
		}
		//主方法,程序入口
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//访问类方法
		StaticTest1.stacticMethod();//通过 类名.方法名 直接调用
		//访问对象方法
		StaticTest1 b=new StaticTest1();//先实例化一个对象
		b.nostaticMethod();//通过 对象名.方法名 间接调用
		//访问类属性
		System.out.println(StaticTest1.mystring);//通过 类名.变量名 直接访问
		//访问对象属性
		StaticTest1 se=new StaticTest1();//实例化一个对象
		System.out.println(se.a);//通过 对象.对象名 间接访问
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_54645719/article/details/125914409