访问控制

java中是通过各种访问区分符来实现数据封装的,共分为四种访问级别(由高到低):private(私有)、friendly(缺省)、protected(受保护)、public(公共)。

注意:以上四种访问修饰符可以作用于任何变量和方法,类只可以定义为私有或公共级别(嵌套类除外)。

¨ public(公共)

当变量或方法被public修饰时,该变量和方法可以在任何地方(指的是任何包中)的任何类中被访问。

 

 //类PublicSample中的构造方法、成员变量及方法均被定义为公共的访问级别

     package com.itjob;

      class PublicSample

      {

     public PublicSample(){....}

 

         public int num1;

     public byte bt1;

     public char ch1;

 

     public void method1(){....}

      }

通过以上定义,类PublicSample中的成员方法和变量可以在任何包中的任何类中访问,即访问是公共的,不受限制的。以下访问都是允许的:

访问1 

     class PublicSample

      {

     ......

     public static void main(String[] args)

     {

new PublicSample().num1 = 100;

new PublicSample().ch1 = '\u0000';

new PublicSample().bt1 = 10;

new PublicSample().method1();

     }

      }

访问2 

     package com.java;

      import com.itjob.*;

      class A

      {

     public void method1()

     {

new PublicSample().ch1 = 'a';

....

     }

      }

¨ protected(受保护的)

当类的变量或方法被protected修饰时,该变量和方法只可以在同包中的任何类、不同包中的任何当前类的子类中所访问。即不同包中的任何不是该类的子类不可访问级别为protected的变量和方法。

      //受保护的变量

      protected Stirng str = "";

      //受保护的方法

      protected String get(){return "";}

 

¨ friendly(缺省的)

当类的变量和方法没有显示地被任何访问区分符修饰时,该变量和方法的访问级别是缺省的。缺省的变量和方法只能在同包中的类中被访问。

      //缺省访问级别的变量和方法、类

      Float f1 = null;

      void method(){...}

      class C1{...}

¨ private(私有的)

被private所修饰的所有变量和方法只能在所属类中被访问。即类的私有成员和变量只能在当前类中被访问。

      //私有的构造方法和成员变量、方法

      private ClassName(){....}

      private int num = 0;

      private void method(){....}

通过以上学习,我们可以通过以下表格来描述四种访问区分符的访问限制:

更多Java视频教程

posted @ 2012-02-28 16:11  JAVA教程  阅读(231)  评论(0编辑  收藏  举报