java语言基础之面向对象之变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java语言基础之面向对象之变量相关的知识,希望对你有一定的参考价值。

---恢复内容开始---

定义变量的语法:

数据类型 变量名=值

-----------------------------------------------------------

变量根据在类中定义位置的不同,分成两大类:

成员变量:全局变量/字段(Field),不要称之为属性(错误)。直接定义在类中,方法外面。

      1):类成员变量  使用static修饰的字段。

      2):实例成员变量  没有使用static修饰的字段。

局部变量:变量除了成员变量,其他都是局部变量。

      1):方法内部的变量。

      2):方法的形参。

      3):代码块中的变量,一对{}。

class ABC
{
  String info=null;//成员变量
    void doWork(String name)
    {
          int age;//局部变量  
    }                  
}

-----------------------------------------

变量的初始值:初始化才会在内存中开辟空间。

成员变量:默认是有初始值的。

局部变量:没有初始值,,所以必须先初始化才能使用。

-------------------------------------------

变量的作用域

  变量根据定义的位置不同,也决定了各自的作用域是不同的。

成员变量:在整个类中都有效

局部变量:从开始定义的位置开始,到紧跟着结束的花括号为止

 

--------------------------------------------

成员变量,可以先使用后定义,局部变量必须先定义而后才能使用。

---------------------------------------------

  存在位置 生命周期开始 生命周期结束 在内存中的位置
类变量 字段,使用static修饰 为所在字节码被加载进JVM 当JVM停止 方法区
实例(成 员)变量 字段,没有使用static修饰 当创建所在类的对象的时候 当该对象被GC回收
局部变量 方法形参,代码块中,方法内 当代码执行到初始化变量的时候 所在的方法/代码块结束  

 

什么时候使用成员变量和局部变量:

1):考虑变量的生存时间,这会影响内存开销。

2):扩大变量作用域,不利于提高程序的高内聚。

开发中应该尽量缩小变量的使用范围,如此在内存中停留时间越短,性能也就越高。

不要动不动就使用static修饰,定义工具方法时static方法需要访问的变量,该变量属于类,此时才使用static修饰字段。

也不要动不动就使用成员变量,因为存在着线程不安全的问题,能使用局部变量尽量使用局部变量。

---恢复内容结束---

以上是关于java语言基础之面向对象之变量的主要内容,如果未能解决你的问题,请参考以下文章

java学习笔记之面向对象多态

Java基础8---面向对象之多态抽象类接口

Java基础8---面向对象之多态抽象类接口

Java中面向对象的三大特性之封装

新年在家学java之基础篇--类&方法

Kotlin语言之面向对象编程