Java访问修饰符的简介说明

Java-教程王 Java教程 发布时间:2021-04-16 13:49:15 阅读数:17150 1

Java访问修饰符:

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

  • private
  • default
  • protected
  • public

  其它的非访问修饰符,如:static, abstract, synchronized, native, volatile, transient等修饰符

下文将着重讲述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访问修饰符总览表 

访问修饰符 在类内 在包内 外部包只通过子类 外部包
Private Y N N N
Default Y Y N N
Protected Y Y Y N
Public Y Y Y Y
 
 
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/259.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者