访问控制

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视频教程

转载于:https://www.cnblogs.com/JAVA-itjob/archive/2012/02/28/2371721.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值