1.局部变量的三种定义形式
形参:在定义方法名时定义的变量,作用域在整个方法内有效
方法局部变量:在方法体内部定义的变量,它的作用域从定义该方法的位置生效,到该方法结束时失效
代码块局部变量:在代码块中定义的局部变量,从定义的地方生效,到该代码块结束时失效
值得注意的是,局部变量除了形参之外,都必须显示初始化,换句话说,必须先给局部变量指定初始值,才能访问他们
java允许局部变量和成员变量同名,如果出现这种情况,局部变量会覆盖成员变量,如果需要在这个方法里引用被覆盖的成员变量,可以利用this或类名作为调用者来限定访问成员变量、
2.变量的使用规则
如果需要定义用于描述某个类的或某个对象的固有信息的,例如人的身高,每个人都具有这个属性,这种变量应该定义为成员变量
如果这种信息对这个类的搜有实力完全相同,或者说是类相关的,例如人的眼睛数量都是2,这种类相关的信息应该定义为类变量
如果这种信息是和实例息息息相关的,比如身高体重,则应该定义成实例变量
如果在某个类中需要以一个变量来保存该类或者实例的运行信息,比如五子棋棋盘数组中保存棋子的变量,这种变量通常使用程远变量
如果某个信息需要在某个类的多个方法中进行共享,则这个信息应该使用成员变量
在程序中使用局部变量,应该尽可能的缩小局部变量的作用域,这样该局部变量存在的时间也就越短,程序性能就越好。
3.隐藏和封装
封装是JAVA面向对象的三大 特征之一(其他两个是继承和多态),它指的是将对象状态信息隐藏在对象内部,不允许外部程序直接访问对象信息,而是通过该类所提供的方法来实现对内部信息的操作和访问
对一个对象良好的封装可以实现一些目的:
隐藏类的实现细节
对使用者限定访问方法,限制对成员变量的不合理访问
可进行数据检查 有利于保证对象信息的完整性
便于代码的维护
实现良好封装,要从两个方面考虑
把对象的成员变量和实现细节隐藏起来,不允许外部直接访问
把方法暴露出来,让方法来控制对这些成员变量进行安全的访问和操作
换句话说:把该藏得藏起来,该暴露的暴露出来
4.使用访问控制符
JAVA 提供了3个访问控制符 private,protected,和public,分别代表了3个访问控制级别,还有一个不加任何访问控制符的级别 default ,
private:使用private来修饰的类成员,这个成员就只可以在当前类的内部访问,使用他来修饰成员变量就可以把成员变量隐藏在该类内部
default:不使用任何控制符,这个成员可以相同package的其他类访问
protected:使用protected来修饰的类成员,这个成员可以被不同包中的子类访问
public:公共访问权限,最宽松的一个级别,这个成员可以被所有类访问
需要注意的是:如果在JAVA源文件中定义了一个public类,则这个源文件名必须与public修饰的类名相同
如果一个JAVA类的每个实例变量都被使用private修饰,并为每个实例变量都提供了public和setter和getter方法,则这个类就是一个标准的JavaBean规范类,所以说JavaBean总是一个封装良好的类
5.访问控制符的使用有以下几个原则:
类的绝大部分成员变量都应该使用private修饰,只有一些static修饰的,类似全局变量的成员变量,才可能考虑使用public修饰。有些工具方法也应使用private修饰
如果某个类主要做其他类的父类,则应该是用protected修饰
希望暴露出来给其他类自由调用则应该用public修饰
进行程序设计时,应尽量避免一个模块直接操作和访问另一个模块的数据,模块设计追求高内聚,低耦合