类中属性的声明和使用
一、对比 成员变量 和 局部变量
相同点:
1.声明的格式是相同的。格式:数据类型 变量名 = 变量值
2.变量,必须先声明后使用
3.变量,都有其作用域。
不同点:
1.声明的位置不同。
成员变量:直接声明在类的内部
局部变量:
方法内声明的变量
方法的形参、构造器的形参
代码块内声明的变量
2.权限修饰符的使用
成员变量,可以在声明的类型前,指明权限修饰符。
权限修饰符有:private 、 public 、 protected、缺省。
暂时属性声明为:缺省。
局部变量,不可以声明权限修饰符
3.默认初始化值
成员变量,在声明时,如果没有显式赋值。则成员变量有默认初始化值。
byte\short\int\long:0
float\double:0.0
char:0 或 ‘\u0000’
boolean:false
引用类型:null
局部变量:在使用变量前,一定要进行显式初始化。即:局部变量没有默认初始化值
对于方法的形参而言,是在调用方法时,给形参赋值。
4.在内存中加载的位置不同
成员变量:声明在堆空间中
局部变量:声明在栈空间中
二、回顾:变量的分类
方式一:按照数据类型:基本数据类型 vs 引用数据类型
方式二:按照声明的位置:
成员变量 :直接声明在类的内部
实例变量:不使用static修饰
全局变量:使用static修饰
vs
局部变量:
方法内声明的变量
方法的形参、构造器的形参
代码块内声明的变量
public class UserTest {
public static void main(String[] args) {
int [] arr = new int[]{1,2,3};
User user = new User();
user.talk("普通话");
user.playGame();
}
}
class User{
//属性(或者成员变量)
private String name = null;
int age;
public void talk(String language) {
System.out.println("说话,使用" + language);
System.out.println(name);
}
public void playGame() {
String game;
game = "王者荣耀";
System.out.println(game);
}
}