这个代码和视频有点看不懂。
class Demo2_Person {
public static void main(String[] args) {
Person p = new Person();
p.speak();
}
}
class Person {
String name;
int num;
public void speak() {
int num = 10;
System.out.println(name);
首先我们看一下,程序开始运行。:
class Demo2_Person {
public static void main(String[] args) {
Person p = new Person(); (这里创建了Person类的对象p,同时访问Person类的无参构造(因为你没有写,所以系统隐藏自动给出,)对Person类的数据进行初始化。
p.speak(); 访问Person类中的speak方法。然后我们进行入到Person类中。
class Person {
String name; //String name是成员变量,有初始化值为null
int num; // 同理 int num 也是成员变量,初始化值为0。
因为调的是sperk方法,所以进行到sperk方法中。num给值为10(因为上面已经定义了num为成员变量,所以
会把这个值给成成没变量num。)
System.out.println(name);
// 输出name,没有给值,所以输入默认值
System.out.println(num);//给值了,所以输出10
最后:
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失