JavaSE:变量、static和final

205 阅读1分钟

01.关于变量

public class Person {
	/**
	 * 变量分成两个大类:成员变量与局部变量
	 * 1.成员变量指的是在类里定义的变量
	 * 2. 局部变量指的是在方法里定义的变量;
	 */
	
	private int p_id;  //成员变量  实例变量
	private static String p_name;  //静态变量   类变量 
	
	public void sayHello(){
		int x=10;  //局部变量
	}
}

02.关于static

public class Student {	
	/**
	 * static
	 * 1.静态变量
	 * 2.静态方法
	 * 3.静态代码块
	 * 4.静态内部类
	 * 5.静态导包
	 * 6.初始化顺序
	 */
	
	/**
	 * 静态变量:又称类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以通过类名来访问它。静态变量在内存中只存在一份;
	 * 实例变量:每创建一个实例就会产生一个实例变量,它与该实例同生共死;
	 */	
	private int s_id;   //成员变量 实例变量
	private static String s_name;  //静态变量   类变量 
	
	
	/**
	 * 只能访问所属类的静态字段和静态方法,方法中不能有this和super关键字;
	 */
	//静态方法
	public static void sayHello(){
		
	}
	
	//静态代码块
	static{
		
	}
	
	//静态内部类
	static class StaticInnerClass{
		
	}
	
	/**
	 * 初始化顺序:
	 * 父类:静态变量 静态代码块
	 * 子类:静态变量 静态代码块
	 * 父类:实例变量、普通语句块
	 * 父类:构造函数
	 * 子类:实例变量、普通语句块
	 * 子类:构造函数
	 */
}

03.关于final

### 001.final变量
基本类型的变量,final使数值不可更改;
引用类型,final是引用不变,也就不能让其指向另一个对象,但是被引用的对象本身是可以修改的。
### 002.final方法
声明方法不能被子类重写;
### 003.final类
声明类不能被继承;

参考CS-NOTE