- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.5 常用修饰符 在Java语言中,提供了多个修饰符,常用的有public、private、protected、final、abstract、static、transient和volatile,这些修饰符有类修饰符、变量修饰符和方法修饰符。在本节中,将会详细介绍这些常用的修饰符。 * 3.5.1 访问控制修饰符 在实际生活中,如果要获取某件物品,与其直接穿过堡垒的墙壁,从而导致墙壁毁灭和破坏,不如通过门口的警卫请求进入堡垒的许可。一般而言,这对对象也同样正确:没有对象的许可(即不使用对象的公有可访问方法来访问属性值)不能直接访问对象的私有声明的属性。 * 位置 private 默认 protected public 同一个类 是 是 是 是 同一个包内的类 否 是 是 是 不同包内的子类 否 否 是 是 不同包并且不是子类 否 否 否 是 3.5.1 访问控制修饰符 public:类的公有接口,方法和属性的公有性质,可以被其他包访问。没有Java程序的主类都必须是public类。 默认:默认的访问控制规定该类只能被同一个包中的类访问和引用,不能被其他包中的类使用。又称为包访问权限。 private:用private修饰的类成员只能被该类自身的方法所访问和修改,而不能被其他任何类(包括该类的子类)访问和引用。因此,private修饰符具有最高的保护级别。 protected:用protected修饰的类成员可以被3种类访问:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类。 创建一个实例演示Java中访问控制修饰符的使用。Control.java * 3.5.2 static静态修饰符 在Java语言中,没有实际意义上的全局变量,变量最大作用域范围就是类了。如果两个类或多个类之间需要共享数据,单纯依靠参数进行传递,就会花费大量的代码去完成。实际上,我们完全可以利用Java语言的静态变量实现数据的共享。在Java语言中,被static关键字修饰的块、方法和变量被称为静态块、静态方法和静态变量。 * 3.5.2 static静态修饰符 1、静态变量 也称类变量,既被类的所有对象所共有的变量。静态变量是一个公共的存贮单元,任何一个类的对象在访问这个存贮单元时都会获得同一个数值。 创建一个实例演示静态变量的使用。StaticDemo.java * 3.5.2 static静态修饰符 2、静态方法 也称类方法,既被类的所有对象所共有的方法。静态方法属于整个类,没有用static修饰的方法称为实例方法。在使用静态方法时要注意三个使用原则: (1)类的静态方法只能访问其他的静态成员; (2)静态方法不能使用this和super关键字; (3)静态方法不能被覆盖为非静态方法。 创建一个实例演示静态方法的使用。StaticFun.java * 3.5.2 static静态修饰符 3、静态块 如果需要通过计算来初始化静态变量,则可以声明一个静态块。静态块的语法格式如下所示: Static{ //执行行代码 } * 3.5.2 static静态修饰符 3、静态块 比如下面的程序代码: Class TryInitialization{ static int[] values=new int[10]; static{ for(int i=0;ivalue.length;i++) value[i]=(int)(100.0*Math.random()); } } * 3.5.3 final修饰符 final关键字表示对象是最终形态的,对象是不可改变的意思。final在应用于类、方法和变量时意义是不同的,但本质是一样的:final表示不可改变。用在变量的前面表示变量的值不可以改变,此时该变量可以被称为常量。用在方法的前面表示方法不可以被重写,用在类的前面表示类不可以被继承,即该类是最终形态,只可以使用,如常见的java.lang.String类 如果类被定义为final的,那么表明是继承树中的叶子节点,不能再被继承。 创建一个实例演示final关键字的用法。Final.java * 3.6 抽象类与接口 多态实现指的是使用同一个实现接口,以实现不同的对象实例。 多态实现在面向对象上是为了降低对实现接口的依赖程度,进而增加程序架构的弹性和可维护性。 多态实现是面向对象上一个重要特性。本节将会介绍两种不同多态实现,抽象类和接口。 * 3.6.1 抽象类 有时我们需要创建超类,该超类
文档评论(0)