java基础(数据)
1,常量
常量是指程序执行过程中始终不变的量。
常量有字面常量和符号常量两种。
2,变量
变量则是根据执行的情况,可以改变值的量。根据作用域范围的不同分为:成员变量、局部变量、方法参数变量、异常处理参数变量4种。
(1)成员变量:
在类中声明,在方法之外,作用域范围是整个类
成员变量的声明
[变量修饰符] 数据类型 变量名 [=初始值];
例:String name = "鱼乐";
成员变量的引用在同一个类中引用
引用同一个类中的成员变量,可以直接通过变量名引用。
如果存在同名的局部变量、方法参数变量或异常处理参数变量,则需要在成员变量前加上关键字this。例如:this.age=age
如果不存在同名的局部变量、方法参数变量或异常处理参数变量,那么这时引用的仍是成员变量本事,这时语句this.age=age没有任何实际效果
局部变量、方法参数变量或异常处理参数变量之间不能同名。因此同名变量只可能出现在成员变量与 这3种变量之间。在类的外部引用
引用另一个类中的成员变量,需通过类或对象来引用
成员变量根据是否被static修饰分为 静态变量/类变量和实例变量
静态变量/类变量
被static修饰的成员变量称为静态变量或类变量特点
类变量被类的所有实例共享,保存在类的公共存储空间中,一个类不管有多少实例,他们引用的都是这个公共存储空间里的值,即只有一个变量值
类变量是属于类的,不依赖于某个对象,因此除了可通过创建的对象来访问外,还可以直接通过类名来访问,并且这是建议使用的方法
注意
static只能修饰成员变量,而不能修饰局部变量、方法参数变量或异常处理参数变量
实例变量
没有被static修饰的成员变量称为实例变量
特点
每个实例都有自己的实例变量值,有多少个实例就有多少个实例变量值。
实例变量是属于实例的,因此只能通过实例来引用,而不能直接通过类型直接引用。
局部变量 在语句块内声明,作用域范围是从声明处直到该语句块的结束
方法参数变量 作用域范围是在整个方法中
异常处理参数变量 作用域范围是在异常处理语句块中
变量的引用
成员变量——类变量 可以引用、没有限制。类变量不能加this关键字。
|______ 实例变量 只能从实例方法引用,不能从类方法中引用。实例变量可以加关键字this,用以区别局部变量等
局部变量 已经声明过的局部变量
方法参数变量 本方法的方法参数变量
异常处理参数变量 仅在异常处理块中
在类外部引用
具有访问许可的public、protected和(default)的类变量或实例变量
类变量:通过类名访问,不建议通过对象名访问
实例变量:只能通过对象名访问
不可以访问没有许可的protected和(default)成员变量以及private成员变量
不可访问其他类的局部变量和方法参数变量
使用变量时要注意的几个方面
局部变量的使用要遵循先声明后使用的原则
一个好的编程习惯是在声明一个变量的同时对它进行初始化。
按照命名规则为变量进行命名
与C/C++相比较,C/C++中存在全局变量,而在java中没有全局变量
成员变量与局部变量的区别
功能不同 成员变量体现的是类的属性,而局部变量只是临时保存变量的值。
声明的位置不同 成员变量是声明在方法的外面和类的内部,而局部变量是声明在方法的内部
作用域范围不同 成员变量的作用域范围是整个类,不论成员变量声明在方法的前面还是后面,而局部变量的作用域范围是从声明开始处直到语句块的结束
修饰符不同 成员变量的修饰符可用public、private、protected、default、static、final等等,而局部变量只有一个修饰符final,其他的修饰符都不可用
默认值不同 成员变量声明后被自动初始化(基本数据类型被初始化为默认值,引用数据类型被初始化为null),而局部变量声明后不被初始化。