美文网首页
局部变量和访问控制符

局部变量和访问控制符

作者: 一筒君 | 来源:发表于2017-09-07 10:59 被阅读0次

    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修饰

    进行程序设计时,应尽量避免一个模块直接操作和访问另一个模块的数据,模块设计追求高内聚,低耦合

    相关文章

      网友评论

          本文标题:局部变量和访问控制符

          本文链接:https://www.haomeiwen.com/subject/uwzbjxtx.html