一:基本使用

1:全局变量

也就是属性,作用于整个类体 在定义时可以直接进行赋值

  1. class{
  2. int age = 10;
  3. //全员变量可以不赋值,直接使用因为有默认值
  4. double weight;
  5. }

2:局部变量

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

  1. public void cry(){
  2. //一般是指在成员方法中定义的变量
  3. //n和nam就是局部变量
  4. //作用域在cry方法中
  5. int n = 10;
  6. String name = "jack";
  7. }
  8. public void hello(){
  9. //局部变量必须赋值后,才能使用,因为没有默认值
  10. int num = 1;
  11. String address ="青海"

二:注意事项和细节

  • 性和局部变量还可以重名,访问时遵循就近原则。

    1. class person{
    2. String name = "sakura";
    3. public void say(){
    4. String name = "sakurass";
    5. //此时距离最近的name为sakurass
    6. Sysye.out.printtln(name);
    7. }
    8. }
  • 在同一个作用域中,比如同一个成员方法中,两个局部变量不能重名。

    1. class person{
    2. String name = "sakura";
    3. public void say(){
    4. String name = "sakurass";
    5. String name
    6. Sysye.out.printtln(name);
    7. }
    8. }
  • 属性生命周期较长,伴随着对象的创建而创建,伴随着对象的销毁而销毁。

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

    1. public static void main(String[] args){
    2. person p1 = new perison();
    3. p1.say();//当执行say方法时,say方法中的局部变量就创建
    4. //执行结束时,namej局部变量就会销毁,但是全局变量仍然可以使用
    5. }
    6. class person{
    7. String name = "sakura";
    8. public void say(){
    9. String name = "sakurass";
    10. String name
    11. Sysye.out.printtln(name);
    12. }
    13. }
  • 作用域范围不同

    • 全局变量:可以被本类使用,或者其他类使用(通过对象调用实现)
    • 局部变量:只能在本类中对应的方法中使用 ```java public static void main(String[] args) { person person = new person();

      T t = new T(); t.test(); //第一种跨类访问对象属性的方式

      t.test2() //第二种跨类调用访问对象属性的方式 } }

class person{ public String name = “sakura”; }

class T{

  1. public void test(){
  2. person person = new person();
  3. System.out.println(person.name);
  4. }

t’f }

  1. - **修饰符不同**
  2. - **全局变量:属性可以加修饰符**
  3. - **局部变量:局部变量不可以加修饰符**
  4. ```java
  5. class person{
  6. //全局变量
  7. private String name;
  8. public void eat(){
  9. public int num ;
  10. }
  11. }