Java——作用域

作用域的基本使用

  1. 在Java中,主要的变量就是属性(成员变量)和局部变量

  2. 我们说的局部变量一般是指在成员方法中定义的变量

  3. Java中作用域的分类

    全局变量:也就是属性,作用域为u整个类体 ,如:Cat类

    局部变量:也就是除了属性之外的其他变量,作用域为定义它的代码块中

  4. 全局变量(属性)可以不赋值,直接使用,因为有默认值,局部变量必须赋值后,才能使用,因为没有默认值。

  5. 属性和局部变量可以重名,访问时遵循就近原则

  6. 属性生命周期较长,伴随着对象的创建而创建,伴随着对象的销毁而销毁。局部变量生命周期较短,伴随着它的代码块的执行而创建,伴随着代码块的结束而销毁。即在一次方法调用过程中 。

  7. 作用域范围不同

    • 全局变量/属性:可以被本类使用,或其他类使用(通过对象调用)
    • 局部变量:只能在本类中对应的方法中使用
  8. 修饰符不同

    • 全局变量/属性 可以加修饰符
    • 局部变量不可以加修饰符
package com.demo.day;

public class VarScrope {
    public static void main(String[] args) {
        Person p = new Person();
        T t1 = new T();
        t1.test();      //第一种跨类访问对象属性的方式
        t1.test1(p);    //第二种跨类访问对象属性的方式
    }
}
class T{
    public void test(){
        Person p1 = new Person();
        System.out.println(p1.name);
    }
    public void test1(Person p){
        System.out.println(p.name);
    }
}
class Person{
    //全局变量(属性)可以加修饰符,但局部变量不行
    private int age = 20;

    String name = "jack";

    public void say(){
        //细节 属性和局部变量可以重名,访问时遵循就近原则
//        private int age = 10;   //全局变量(属性)可以加修饰符,但局部变量不行
        String name = "king";
        System.out.println("say() name=" + name);
    }
}
posted @ 2023-05-16 00:54  Hello_world_名字被取了  Views(73)  Comments(0Edit  收藏  举报