第一章java中的访问修饰符


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

您不必显式放置默认修饰符。如果您不提供, JVMPublic, Private and Protected将使用默认修饰符。

公共访问修饰符

Public修饰符在整个 Java 世界中都可以访问。如果你把类作为公众,这意味着它class无处不在。

让我们借助示例来看看: 在包 com 中创建一个名为 A.java 的类。

package com;

public class A {

    public int a;

    public A(int a)
    {
        this.a=a;
    }
    public void methodA()
    {
        System.out.println("In method of class A");
    }
}

在包 com 中创建另一个名为“B.java”的类。

package org;

import com.A;

public class B {

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

当你运行上面的程序时,你会得到下面的输出:

在类 A 的方法中,变量a 的值为:20

私有访问修饰符

private访问修饰符只能在类中访问。 除非并且直到它是嵌套类,否则您不能使用私有和受保护的类。 让我们借助示例来理解它:

package com;

public class A {

    private int a;

    A(int a)
    {
        this.a=a;
    }
    private void methodA()
    {
        System.out.println("In method of class A");
    }
}
class B {

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

您将在第 22 行和第 23 行遇到编译错误,因为您无法从类外部访问私有变量或方法。

默认访问修饰符

如果您不提供任何访问权限,JVM 会将其视为default访问权限。在默认访问修饰符的情况下,您不能访问package. 在包 com 中创建一个名为 A.java 的类。

package com;

public class A {

    int a;

    public A(int a)
    {
        this.a=a;
    }
    void methodA()
    {
        System.out.println("In method of class A");
    }
}

在包 com 中创建另一个名为“B.java”的类。

package org;

import com.A;

public class B {

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

在这里,您将在第 11 行和第 12 行得到编译错误,因为我们正在尝试访问包外 A 类的变量 a 和方法Acom

受保护的访问修饰符

受保护的访问修饰符只能通过继承在同一个包内或包外访问。 让我们借助示例来理解: 在包 com 中创建一个名为 A.java 的类。

package com;

public class A {

    protected int a;

    protected A(int a)
    {
        this.a=a;
    }
    protected void methodA()
    {
        System.out.println("In method of class A");
    }
}

在包 com 中创建另一个名为“B.java”的类。

package org;

import com.A;

public class B extends A{

    B(int a) {
        super(a);       
    }

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

当你运行上面的程序时,你会得到下面的输出:

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

如您所见,我们可以使用继承访问类 A 的变量 a 和 methodA。

这就是Java中的访问修饰符。


原文链接:https://codingdict.com/