Java访问修饰符的简介说明

转自:

Java访问修饰符的简介说明

Java访问修饰符:

     我们都知道java中修饰符分两种类型:访问修饰符和非修饰符
     Java中的访问修饰符用于设置数据成员,方法,构造函数或类的范围
     常见的Java修饰符有以下4种:

  • private
  • default
  • protected
  • public

  其它的非访问修饰符,如:staticabstractsynchronizednativevolatiletransient等修饰符

下文将着重讲述Java的访问修饰符

private访问修饰符

private:私有(private)访问修饰符
             设置相应的对象只可在类中访问 

例:private访问修饰符

创建一个类,使用private设置其数据成员,然后编译会出现相应的错误信息

class testClassA {
    private int qty= 88;

    private void printInfo() {
        System.out.println("printInfo");
    }
}

public class testClassB{
    public static void main(String args[]) {
        testClassA  obj = new testClassA();
        System.out.println(obj.qty);// 由于使用private,所以类外面不能访问,编译会报错 
        obj.printInfo();// 私有方法,所以类外面不能访问,编译会报错 
    }
}

1. private访问修饰符

  当使用private修饰类的构造函数,则类外部创建类实例会失败
    例:

class testClass {
    private testClass () {
    }// private constructor

    void printInfo() {
        System.out.println("print");
    }
}

public class testClassB{
    public static void main(String args[]) {
        testClass obj = new testClass();// 编译报错
    }
}

2. default访问修饰符

   当不加入修饰符时,则缺省值为default修饰符
  default修饰符的目的,对象只能在包内访问。 

 例:default访问修饰符

 创建包packA和 packB
      从一个包中访问另一个包的类 

---testA.java 
package packA;  
class testA{  
    void printInfo(){System.out.println("print1");}  
}
----testB.java
package packB;

import packA.*;

class testB {
    public static void main(String args[]) {
        testA obj = new testA();// 编译报错
        obj.printInfo();// 编译报错
    }
}

----上文的例子中,testA类及printInfo都使用的为default修饰符,所以包外面无法访问 

3. protected访问修饰符

    protected访问修饰符:设置对象可以在包中和包外部访问,但只能使用继承模式
           
protected访问修饰符常用于修改数据成员,方法和构造函数
           注意事项:protected修饰符不能应用于类

例:protected访问修饰符

 创建包packApackB
   packA类的包是public的,所以可以从外部访问包。 但是这个包的printInfo方法声明为protected
         因此只能通过继承从类外面访问它

  //testClassA.java

package packA;

public class testClassA {
    protected void printInfo() {
        System.out.println("java265.com");
    }
}

//testClassB.java  

package packB;

import packA.*;

class packB extends packA {
    public static void main(String args[]) {
        packB  obj = new packB();
        obj.printInfo();
    }
}

----运行以上代码,将输出以下信息-----

java265.com

4. public访问修饰符

       公共(public)访问修饰符:可随处访问
        它是我们使用最广泛的修饰符

例:public访问修饰符 

//save by testClassA.java  

package packA;

public class testClassA {
    public void printInfo() {
        System.out.println("java265.com");
    }
}

//testClassB.java

 
package packB;

import packA.*;

class testClassB {
    public static void main(String args[]) {
        testClassA obj = new testClassA();
        obj.printInfo();
    }
}

-----运行以上代码,将输出以下信息----

java265.com

java访问修饰符总览表 

访问修饰符在类内在包内外部包只通过子类外部包
PrivateYNNN
DefaultYYNN
ProtectedYYYN
PublicYYYY
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值