访问指示符

1、Java访问指示符: friendly,public,private,protected

   Java访问指示符都置于数据成员和方法的最前面。

(1)、friendly:包中有效。

     a、不指定访问指示符,默认就是friendly.

     b、当前包内的其他所有类都能访问friendly 成员和方法,但对包外的所有类

来说,这些成员却是“私有”(Private)的,外界不得访问。

(2)、public:接口访问。

     a、在public后面的成员声明适用于所有地方的类内部、方法内部访问此对象

方法。

     b、默认包:处于同一个目录下的.class,没有定义package,这个目录就是这

些.class的一个默认包。

(3)、private:不能接触!

     a、private关键字意味着除非那个特定的类,而且从那个类的方法里,否则没

有人能访问那个成员。

(4)、protected:包内+子类可以访问。

(5)、protected类型和友好类型的区别体现在继承中:若子类和父类在同一个包

中,子类会继承public、protected、友好类型的变量和方法;若子类和父类不在同

一个包中,子类只会继承public、protected类型的变量和方法,而不会继承友好类

型的成员变量和方法。

(6)、基类的私有类型可以继承到子类,但子类不可以访问父类的private成员,只

能通过父类原有的方法对该private方法函数进行使用。(其实这是废话)


 

2、类访问

    (1)、每个编译单元(文件)都只能有一个public类。每个编译单元有一个公共

接口的概念是由那个公共类表达出来的。根据自己的需要,它可拥有任意多个提供

支撑的“友好”类。但若在一个编译单元里使用了多个public类,编译器就会向我

们提示一条出错消息。

    (2)、public类的名字必须与包含了编译单元的那个文件的名字完全相符,甚至

包括它的大小写形式。

    (3)、可能(但并常见)有一个编译单元根本没有任何公共类。此时,可按自己的意愿任意指定文件名。

    (4)、对于类的访问只有两个选择:“友好的”或者public。若不愿其他任何人

访问那个类,可将所有构建器设为private。这样一来,在类的一个static成员内

部,除自己之外的其他所有人都无法创建属于那个类的一个对象。也就是说,可以将

类的构造函数设置为private,这样,其他类就不可以直接创建该类的对象,但可以在

该类的内部设置静态函数,用于生成该类的对象,这样,其他类就可以通过该静态方法

生成该类的对象.

你可能感兴趣的:(读书笔记-TIJ4,java)