《Java修饰符—张永刚.docVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Java修饰符—张永刚

JAVA中的主要修饰符及其实例 1、简介 主要有public、protected、private、package、static、final、super、transient、volatile、abstract、native、synchronized修饰符。 2、关于Java中各种修饰符与访问修饰符的说明   public protected 接口 √     类 √     构造器 √ √ √ 属性/变量 √ √ √ 方法 √ √ √ 初始化块       备注 使用public修饰的属性和方法可以被所有的类访问,不管是否同一包下或者继承关系 1.使用protected修饰的属性和方法,可以被同一包下的类和不同包下的子类访问。 2.如果用protected修饰一个方法,通常是希望这个方法被子类重写。 1.使用private修饰的属性和方法,只能在该类内部被访问。 2.常用来修饰属性,将属性隐藏在类内部 final static abstract 备注         √   √         三者中只能出现一个 √ 必须指定初始值,系统不会隐式初始化。指定的地方: 类属性:静态初始化块,声明时。 实例属性:非静态初始化块,构造器,声明时。   public,protected,private只能出现一个,可以与static,final组合修饰 √ √ √ public,protected,private只能出现一个; abstract和final只能有一个,可以与static组合修饰 不同对象调用同一个方法可能得到不同结果   √       1.final修饰的类不能派生子类。子类不允许覆盖父类的final方法 2.final修饰的方法不可被重写,否则会出现编译错误,但是可以重载。(父类中的private final方法,子类中依然可以重定义该方法,不是重写,是两个不同的方法。) 3.final修饰的基本类型变量不能被更改,初始化后其值也不能被更改,引用类型只保证所引用的地址不会改变,但引用的对象的内容可以改变。 1.static是一个特殊的关键字,用它修饰的成员属于这个类共有,不属于单个实例,称为类属性(静态属性)和类方法(静态方法) 2.静态属性和静态方法可以通过类和实例调用。 3.不使用static修饰的属性和方法属于该类的单个实例,不属于该类,称为实例属性(非静态属性)和实例方法(非静态方法)[只能通过实例调用]。 4.静态成员(包括静态属性,静态方法,静态初始化块等)不能访问非静态成员。 1。抽象类不能实例化,不能new,只能被继承,其中的方法没有方法体。 2。抽象方法只能由子类重写实现。不能与private同时使用 3。abstract和final永远不能同时使用。 4。static和abstract不能同时修饰同一个方法。     public:访问权限最高,不论是不是同一个包或是否是子类都可以访问。 protected:类中限定为protected的成员,可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他的类访问。 private  class A   {    protected int weight ;   protected int f( int a,int b?? )    {    // 方法体   }   }   假设B与A在同一个包中,则 Java代码   class B   {    void g()    {    A a=new A();    A.weight=100;//合法    A.f(3,4);??? //合法    }   }   特别说明:什么是在同一个包中?   答:用package打包在一起的class ,叫在同一个包中。(不明白,举个例子)   eg:在JDK的src\java\io中,你会看到许多java类,第一句源代码都是package java.io;   没有使用package打包的,在同一目录下的类也会被视做同一个包。   friendly:在这种情况下中,同protected。区别在第二和第三种情况中。 Java代码   class A   {    int weight ;    int f( int a,int b?? )    {    // 方法体    }   } ? ? ?   假设B与A在同一个包中,则 Java代码   class B   {    void g()    {    A a=new A();    A.weight=100;//合法    A.f(3,4);??? //合法    }   }   

文档评论(0)

yingrong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档