当前位置: 首页> 游戏> 手游 > 最新版天堂资源在线_安阳王新刚_淘宝竞价排名_百度排名工具

最新版天堂资源在线_安阳王新刚_淘宝竞价排名_百度排名工具

时间:2025/7/25 21:21:23来源:https://blog.csdn.net/2402_86704102/article/details/147118740 浏览次数:0次
最新版天堂资源在线_安阳王新刚_淘宝竞价排名_百度排名工具

 

成员变量

  • 声明在类内部,但在方法、构造器或代码块之外的变量。

  • 属于类的实例(对象)或类本身(静态变量)。

实例变量(非静态成员变量):

public class Person {private String name; // 实例变量(非静态)private int age;
}

静态变量(用static修饰):

public class Person {private static String species = "Human"; // 静态变量
}
  • 作用域:整个类内部(所有方法、构造器均可访问)

  • 初始化:成员变量有默认值(如 int 默认 0,对象类型默认 null

  • 访问权限:可通过访问修饰符(public/private/protected)控制

 

局部变量

声明在方法、构造器或代码块内部的变量。

主要类型:

方法局部变量

public void printInfo() {String info = "Hello"; // 方法局部变量System.out.println(info);
}

代码块局部变量(如循环、if 语句):

for (int i = 0; i < 5; i++) { // i 是代码块局部变量System.out.println(i);
}

形参(方法参数):

public void setName(String name) { // name 是形参(局部变量)this.name = name;
}

作用域:仅限于声明它的代码块内部

示例:

public void test() {int x = 10;if (x > 5) {int y = 20; // y 只在 if 块内有效System.out.println(y);}System.out.println(y); // ❌ 在这里就会编译错误:y 超出作用域
}

没有默认值,必须赋值后才能使用;

访问权限:只能在声明它的代码块内访问,无法用修饰符(如 public

 

成员变量与局部变量的区别
区别成员变量局部变量
类中位置不同在类中,方法的外面在方法内,方法申明上
初始值不同有默认初始化值没有,需要先赋值再使用
内存位置不同堆内存栈内存
生命周期不同对象在就在,对象消失就消失方法在就在,方法运行结束就消失
作用域整个类当前方法中

就近原则

当方法或代码块中定义的局部变量与类的成员变量(实例变量)同名时,Java 会优先使用最近的变量(即局部变量),这种现象称为 "就近原则"。

表现:

  • 直接访问同名变量时,默认操作的是局部变量

  • 成员变量会被局部变量 "遮蔽"(Shadowing)

示例:

public class Student {private String name; // 成员变量public void setName(String name) { // 局部变量 namename = name; // ❌ 问题:就近原则导致左右都是局部变量}public String getName() {return name;}
}

调用 setName("Tom") 后,成员变量 name 的值仍然是 null,因为赋值操作实际是 局部变量 = 局部变量

解决方法:

this关键词

当成员变量与局部变量同名时,用 this.变量名 明确指定成员变量

public void setName(String name) {this.name = name; // ✅ 正确:this.name 指向成员变量
}

返回 this 还可以实现方法链式调用

public Student setAge(int age) {this.age = age;return this; // 返回当前对象
}// 使用示例
student.setName("Tom").setAge(20);

注意事项

静态方法中不能使用 this
因为 this 指向对象实例,而静态方法属于类,不依赖实例

This应用示例:

public class Person {private String name; // 成员变量public void setName(String name) { // 局部变量this.name = name; // 用 this 区分成员变量和局部变量}public void printInfo() {String name = "Local"; // 局部变量System.out.println(name);      // 输出 "Local"(就近原则)System.out.println(this.name); // 输出成员变量的值}public static void main(String[] args) {Person person = new Person();person.setName("Alice");person.printInfo();}
}

总结

解释成员与局部变量,由此引入就近原则与this介绍,方便更好地运用变量。

 

关键字:最新版天堂资源在线_安阳王新刚_淘宝竞价排名_百度排名工具

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: