关于控制类修饰符

概念

  • public:
    (1)最大权限修饰符,对所有类可见。
    (2)往往用于对外的情况,也就是对象或类对外的接口的一种形式。
    (3)使用对象:类、接口、变量、方法。
  • protected:
    (1)对同一包内的类和所有子类可见(包括外包中的子类)。
    (2)主要作用是保护子类,含义在于可以仅可以用来给它修饰的成员,相当于继承的含义
    (3)使用对象:变量、方法,不可修饰类(外部类)
  • default:
    (1)缺省,可不写,在同一包内可见
    (2)是针对本包访问而设立,任何本包下的类、接口、异常等都可以相互访问,即便是父类没有用protected的成员也行
    (3)使用对象:类、接口、变量、方法
  • private:
    (1)仅同一类中可见,使用对象:变量、方法。
    (2)目的更多与封装本质类似,访问权限仅限于本类内部,不希望被任何外部的类访问
    (3)不能修饰类(外部类)

关系

  • 对于四类修饰符,他们之间可访问权限的大小依次为:public、protected、default、private
  • 对于下列文件,四种修饰符在他们之间的可访问性会是下表所示(以FatherA为例)


    文件关系

    访问性
  • 特别说明:protected对于不同包的访问性,其子类实例化后可以访问protected本类中方法,但不可访问其父类实例化后的protected方法

例子

  • 这是一个具有private属性(名字)、公有方法(setName()、introduce())、protected方法(getName())的类


    FatherA类
  • 关于private


    本包中其他类private受限
  • 关于protected


    本包中其他类protected可访问
外包子类protected受限

修改FtherA中introduce方法为public后可访问
  • 关于default


    default对本类外受限
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 5,004评论 0 2
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 4,748评论 0 4
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,795评论 1 32
  • 《笨狼的故事》作者汤素兰。 书本内容简介: 笨狼妈妈因为想带孩子们去玩,买了三双运动鞋,但是笨狼不想去旅游。结果本...
    豆钉阅读 8,492评论 1 0
  • 大学的时候我曾借过《平凡的世界》这本书,可惜只看了个开头部分,并没有坚持把它看完。虽然只是看了个开头,但是感...
    Code_Ninja阅读 4,032评论 3 2