变量作用域
1. 在java编程中,主要的变量就是属性(成员变量)和局部变量。
2. 局部变量一般是指在成员方法中定义的变量。【举例Cat类: cry】
3. java中作用域的分类
全局变量:也就是属性,作用域为整个类体【举例:Cat类 cry eat等方法使用属性】
局部变量:也就是除了属性之外的其他变量,作用域为定义它的代码块中
4. 全局变量(属性)可以不赋值,直接使用,因为有默认值,局部变量必须赋值后,才能使用,因为没有默认值。【举例】
- 补充说明 2、3
public class VarScope {
public static void main(String[] args){
}
}
class Cat {
//全局变量:也就是属性,作用域为整个类体
//属性在定义时,可以直接赋值
int age = 10;
public void eat() {
System.out.println("在eat中使用属性 age = "+age);//全局变量age
}
public void cry() {
//2. 局部变量*一般*是指在成员方法中定义的变量
// n name是局部变量
// n name作用于只能在cry方法中
int n = 10;
String name = "jack";
System.out.println("在cry中使用属性 age = "+age);//全局变量age
}
}
- 补充说明 4
全局变量(属性)可以不赋值,直接使用,因为有默认值,局部变量必须赋值后,才能使用,因为没有默认值
class Cat {
double weight; //全局变量:默认值是0.0
public void hi() {
int num;
System.out.println("num=" + num);
}
}
weight 是全局变量:默认值是0.0。
num 是局部变量,没有默认值,不能直接使用。
5. 属性和局部变量可以重名,访问时遵循就近原则。
6. 在同一个作用域中,比如在同一个成员方法中,两个局部变量,不能重名。[举例]
7. 属性生命周期较长,伴随着对象的创建而创建,伴随着对象的销毁而销毁。
局部变量,生命周期较短,伴随着它的代码块的执行而创建,伴随着代码块的结束而销毁。即在一次方法调用过程中。
- 补充说明5
(1)会输出 king
public class VarScope {
public static void main(String[] args){
Person p1 = new Person();
p1.say();
}
}
class Person {
String name = "jack";
public void say() {
String name = "king";
System.out.println(name);
}
}
(2)会输出 jack
public class VarScope {
public static void main(String[] args){
Person p1 = new Person();
p1.say();
}
}
class Person {
String name = "jack";
public void say() {
System.out.println(name);
}
}
8. 作用域范围不同
全局变量/属性:可以被本类使用,或其他类使用(通过对象调用)
局部变量:只能在本类中对应的方法中使用
9. 修饰符不同
全局变量/属性可以加修饰符(public、private、protected、默认)
局部变量不可以加修饰符
- 补充说明8 全局变量/属性:可以被其他类使用
public class VarScope {
public static void main(String[] args){
T t1 = new T();
t1.test();
Person pp = new Person();
t1.test2(pp);
}
}
class T {
public void test() {
Person p1 = new Person();
System.out.println(p1.name);
}
public void test2(Person p) {
System.out.println(p.name);
}
}
class Person {
String name = "jack";
}

本笔记是对韩顺平老师的Java课程做出的梳理。方便本人和观看者进行复习。
课程请见: https://www.bilibili.com/video/BV1fh411y7R8/?spm_id_from=333.999.0.0&vd_source=ceab44fb5c1365a19cb488ab650bab03
本文介绍了Java中变量的作用域分类(全局变量和局部变量),强调了它们的区别,包括默认值、赋值要求、命名规则以及生命周期。还提到了修饰符对全局变量的影响以及不同作用域的范围和可访问性。

被折叠的 条评论
为什么被折叠?



