java基础总结(3)---常量和变量

时间:2024-05-21 19:07:31

java基础(数据)

java基础总结(3)---常量和变量

java程序中的数据是用常量和变量来表示的。
1,常量
常量是指程序执行过程中始终不变的量。
常量有字面常量和符号常量两种。

2,变量

变量则是根据执行的情况,可以改变值的量。

根据作用域范围的不同分为:成员变量局部变量方法参数变量异常处理参数变量4种。

(1)成员变量:

在类中声明,在方法之外,作用域范围是整个类

 成员变量的声明

                          [变量修饰符] 数据类型 变量名 [=初始值];        

                         例:String name = "鱼乐";                                 

  成员变量的引用
        在同一个类中引用
                       引用同一个类中的成员变量,可以直接通过变量名引用。

                       如果存在同名的局部变量、方法参数变量或异常处理参数变量,则需要在成员变量前加上关键字this。例如:this.age=age 

                       如果不存在同名的局部变量、方法参数变量或异常处理参数变量,那么这时引用的仍是成员变量本事,这时语句this.age=age没有任何实际效果

                       局部变量、方法参数变量或异常处理参数变量之间不能同名。因此同名变量只可能出现在成员变量与 这3种变量之间。
       在类的外部引用
                       引用另一个类中的成员变量,需通过类或对象来引用

成员变量根据是否被static修饰分为  静态变量/类变量和实例变量

      静态变量/类变量

     被static修饰的成员变量称为静态变量或类变量
     特点
    类变量被类的所有实例共享,保存在类的公共存储空间中,一个类不管有多少实例,他们引用的都是这个公共存储空间里的值,即只有一个变量值
    类变量是属于类的,不依赖于某个对象,因此除了可通过创建的对象来访问外,还可以直接通过类名来访问,并且这是建议使用的方法
    注意
    static只能修饰成员变量,而不能修饰局部变量、方法参数变量或异常处理参数变量
     实例变量
    没有被static修饰的成员变量称为实例变量
    特点
    每个实例都有自己的实例变量值,有多少个实例就有多少个实例变量值。
    实例变量是属于实例的,因此只能通过实例来引用,而不能直接通过类型直接引用。
   局部变量    在语句块内声明,作用域范围是从声明处直到该语句块的结束
   方法参数变量   作用域范围是在整个方法中
   异常处理参数变量   作用域范围是在异常处理语句块中

变量的引用

java基础总结(3)---常量和变量

   在同一个类中引用(可以引用变量)
            成员变量——类变量    可以引用、没有限制。类变量不能加this关键字。
                    |______ 实例变量    只能从实例方法引用,不能从类方法中引用。实例变量可以加关键字this,用以区别局部变量等
           局部变量    已经声明过的局部变量
           方法参数变量    本方法的方法参数变量
          异常处理参数变量   仅在异常处理块中
   在类外部引用
         具有访问许可的public、protected和(default)的类变量或实例变量
                      类变量:通过类名访问,不建议通过对象名访问
                      实例变量:只能通过对象名访问
        不可以访问没有许可的protected和(default)成员变量以及private成员变量
        不可访问其他类的局部变量和方法参数变量
使用变量时要注意的几个方面
         局部变量的使用要遵循先声明后使用的原则
         一个好的编程习惯是在声明一个变量的同时对它进行初始化。
        按照命名规则为变量进行命名
        与C/C++相比较,C/C++中存在全局变量,而在java中没有全局变量
成员变量与局部变量的区别
功能不同                成员变量体现的是类的属性,而局部变量只是临时保存变量的值。
声明的位置不同    成员变量是声明在方法的外面和类的内部,而局部变量是声明在方法的内部
作用域范围不同    成员变量的作用域范围是整个类,不论成员变量声明在方法的前面还是后面,而局部变量的作用域范围是从声明开始处直到语句块的结束
修饰符不同           成员变量的修饰符可用public、private、protected、default、static、final等等,而局部变量只有一个修饰符final,其他的修饰符都不可用

默认值不同           成员变量声明后被自动初始化(基本数据类型被初始化为默认值,引用数据类型被初始化为null),而局部变量声明后不被初始化。