Java 编程思想(第四版)学习笔记(6)访问权限控制

来源:互联网 发布:职业网络打假 编辑:程序博客网 时间:2024/05/01 04:53

第六章 访问权限控制

Java访问权限控制

Javapublicprotectfriendlyprivate四种访问权限修饰词在使用时,是置于类中每个成员的定义之前的,无论是一个域还是一个方法。每个访问权限修饰词仅控制它所修饰的特定定义的访问权。并且这四访问权限的访问范围越来越小。

   1public可以被任何class调用

   2、protected:继承访问权限 即,既能被同一package中的classes访问,又能被protected成员所在class的subclass访问

实例如下:父类

public class AProtected {

public  AProtected() {

System.out.println("AProtected");

}

protected  void A() {

System.out.println("A()");

}

}子类

public class BPprotected extends AProtected {

public  BPprotected() {

System.out.println("BPprotected");

}

public void chomp() {

System.out.println("chomp");

}

public static void main(String[] args) {

// TODO Auto-generated method stub

BPprotected bPprotected = new BPprotected();

bPprotected.chomp();

bPprotected.A();

}

}   3、friendly

    1   如果一个class内的数据成员或方法没有任何权限饰词,那么它的缺省访问权限就是friendly。同一个package内的其它所有classes都可以访问friendly成员,但对package以外的classes则形同private。

   2)对于同一个文件夹下的、没有用package的classes,Java会自动将这些classes初见为隶属于该目录的default package,可以相互调用class中的friendly成员。如以下两个class分别在同一个文件夹的两个文件中,虽然没有引入package,但隶属于相同的default package

  4private:private成员只能在成员所属的class内被调用

实例如下:

class Sundae{

private Sundae() {}

static Sundae makeAsundae(){

return new Sundae();

}

}

public class TestPrivate {

public static void main(String[] args) {

Sundae sundae = Sundae.makeAsundae();

Sundae sundae2 = new Sundae();//报错

//The constructor Sundae() is not visible

}

}

原创粉丝点击