美文网首页
Java的访问修饰符

Java的访问修饰符

作者: weiliping | 来源:发表于2018-06-02 22:35 被阅读0次

Java中的访问修饰符定义了变量,方法,构造函数或类的可访问性(范围)。
Java中有4种访问修饰符:

  • Public
  • Private
  • Protected
  • Default

你不必明确地使用默认修饰符。如果您不提供Public,Private和Protected,则JVM将使用默认修饰符。

Public修饰符

Public修饰符表示任意Java类都可以访问。如果您将类设置为public,那意味着该类在任何地方都可用。
让我们来看看以下例子:

  • 在org下创建一个名叫A.java的类
package org;

public class A {

    public int a;

    public A(int a) {
        this.a = a;
    }

    public void methodA() {
        System.out.println("In method of class A");
    }
}
  • 在org下创建一个名叫B.java的类
package org;

import org.A;

public class B {

    public static void main(String args[]) {
        A objA = new A(30);
        objA.methodA();
        System.out.println("Value of variable a is: " + objA.a);
    }
}

当你运行上面程序时,你将会得到以下输出结果:

In method of class A
Value of variable a is: 30

Private修饰符

Private访问修饰符只能在类内部访问。
除非嵌套类,否则不能使用private和protected类。
让我们通过一个例子来理解它:

package org;

public class A {

    private int a;

    public A(int a) {
        this.a = a;
    }

    private void methodA() {
        System.out.println("In method of class A");
    }
}
public class B {

    public static void main(String args[]) {
        A objA = new A(30);
        objA.methodA();  // 第20行
        System.out.println("Value of variable a is: " + objA.a); // 第21行
    }
}

你将在第20和21行得到编译错误,因为类B无法访问类A的私有变量或方法。

默认修饰符

如果你不设置任何访问权限,则JVM将其视为默认访问权限。如果使用默认访问修饰符,则当前类包之外的类将无法访该类的方法,变量或该类。

  • 在org中创建一个名为DefaultAccess.java的类
package org;

public class DefaultAccess {
    int a;

    public DefaultAccess(int a) {
        this.a = a;
    }

    void methodA() {
        System.out.println("In method of class A");
    }
}
  • 在com中创建一个名为B.java的类
package com;

import org.DefaultAccess;

public class B {
    
    public static void main(String args[]) {
        DefaultAccess obj = new DefaultAccess(20);
        obj.methodA(); //第9行
        System.out.println("Value of variable a is: " + obj.a); //第10行
    }
}

在上面类B中,你将在第9行和第10行得到编译错误,因为我们试图在包“org”之外访问类DefaultAccess的变量a和方法methodA.

Protected修饰符

Protected访问修饰符只能通过继承在同一个包中或包之外访问。
让我们通过一个例子来理解它:

  • 在com中创建一个名为ProtectA.java的类
package com;

public class ProtectA {
    protected int a;

    protected ProtectA(int a){
        this.a=a;
    }

    protected void methodA() {
        System.out.println("In method of class A");
    }
}
  • 在org中创建一个名为ProtectB.java的类
package org;

import com.ProtectA;

public class ProtectB extends ProtectA {
    ProtectB(int a) {
        super(a);
    }

    public static void main(String args[]) {
        ProtectB objB = new ProtectB(20);
        objB.methodA();
        System.out.println("Value of variable a is: " + objB.a);
    }
}

当你运行上面程序时,你将会得到以下输出结果:

In method of class A
Value of variable a is: 20

正如你所看到的,我们可以通过继承访问ProtectA的变量a和methodA。

相关文章

  • Java知识之修饰符

    Java中的修饰符 Java中的修饰符主要分为两类: 访问控制修饰符 非访问控制修饰符 访问控制修饰符分: pub...

  • java学习笔记第二天

    java修饰符 java修饰符 java语言提供了很多修饰符,主要分为下面两类: 1.访问修饰符 2.非访问修饰符...

  • java基础-static

    概述 static 在java体系里的地位:java语言的一个修饰符,属于非访问修饰符,所谓访问修饰符就是控制访问...

  • 日常记忆Java修饰符

    Java修饰符 Java语言提供的很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符修饰符用来定义类、方法或...

  • Java 修饰符

    Java 修饰符 Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类、方...

  • java修饰符有哪些?

    java修饰符有哪些? Java语言提供了很多修饰符,主要分为以下两类: 1、访问修饰符; 2、非访问修饰符。 (...

  • Java中访问修饰符和构造函数的一点总结

    Java访问修饰符 Java用于类的修饰符(2个)和限定符(2个) 注意:内部类可以拥有更多的访问修饰符 Java...

  • Java的访问修饰符

    Java中的访问修饰符定义了变量,方法,构造函数或类的可访问性(范围)。Java中有4种访问修饰符: Public...

  • java(3-Java 修饰符)

    Java 修饰符主要两类:访问修饰符非访问修饰符 访问控制修饰符 default (即默认,什么也不写): 在同一...

  • JAVA基础-访问修饰符

    访问权限 Java中有三种访问权限修饰符:private、protected、public,如果不加访问修饰符,表...

网友评论

      本文标题:Java的访问修饰符

      本文链接:https://www.haomeiwen.com/subject/tncdsftx.html