Java基础(三)
三、Java变量
Java变量有静态变量、普通成员变量、局部变量
1.静态变量:
静态变量也称为类变量,是用static关键字修饰的变量,静态变量随着类的加载而加载并且只加载一次,它的内存分布在Java的方法区内存中。
2.成员变量:
声明在类中但是在方法区和代码块外部,也就是我们第一天的属性,定义在类中,但是在方法区之外,也称为实例变量。成员变量在对象被创建的时候创建,在对象被销毁的时候销毁。一般情况下我们把它的权限设置为private,被当前类所调用,成员变量一般会被当前类的方法所调用。内存在堆内存中。
3.局部变量:
局部变量:定义在普通方法中或者是静态方法中,当方法被调用的时候创建,方法调用完成后销毁。如果是基本数据类型,变量的声明以及赋值全是在栈中;如果是引用数据类型,变量的声明部分在栈中 变量的具体引用在堆中。
我们用代码来看一下:
public class Test {
//类变量
static int n;
//成员变量
private Integer m;
public void A(){
//局部变量
int n;
}
}
Java的修饰符权限
修饰符 当前类 同一包内 子孙类(同一包) 子孙类(不同包) 其他包
public Y Y Y Y Y
protected Y Y Y Y/N(说明) N
default Y Y Y N N
private Y N N N N]
什么是重载什么是重写?
- 重载:在一个类当中允许方法的方法名称相同参数列表不同
- 重写:当子类继承父类之后方法不满足子类需求了,子类可以修改父类逻辑
我们后面还会继续讲解重载和重写
关键字final:
final :表示最终的,可以修饰类,属性,方法 - 如果用fina修饰属性,那必须要给这个属性初始化值
- 基本数据类型 在程序运行的时候值是不可以修改的
- 引用数据类型 在程序运行时,不可以指向别的内存地址
- 如果用final修饰类的话,那这个类不可以被继承;
- 如果用final修饰方法,那这个方法不可以被重写