亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 访问修饰符

Java 访问修饰符

在本教程中,我们将通过示例了解 Java 访问修饰符、它的类型以及如何使用它们。

什么是访问修饰符?

在 Java 中,访问修饰符用于设置类、接口、变量、方法、构造函数、数据成员和 setter 方法的可访问性(可见性)。例如,

class Animal {
    public void method1() {...}

   private void method2() {...}
}

在上面的例子中,我们声明了 2 个方法:method1() 和 method2()。在这里,

注意关键字 publicprivate .这些是 Java 中的访问修饰符。它们也被称为可见性修饰符。

注意 :你不能设置getter方法的访问修饰符。


访问修饰符的类型

在了解访问修饰符的类型之前,请确保您了解 Java 包。

Java中有四个访问修饰符关键字,它们是:

修饰符 说明
默认 声明仅在包内可见(包私有)
私人 声明仅在类中可见
受保护 声明在包或所有子类中可见
公开 声明随处可见

默认访问修饰符

如果我们没有为类、方法、变量等显式指定任何访问修饰符,那么默认情况下会考虑默认访问修饰符。例如,

package defaultPackage;
class Logger {
    void message(){
        System.out.println("This is a message");
    }
}

在这里,Logger 类具有默认的访问修饰符。并且该类对属于 defaultPackage 的所有类都是可见的 包裹。但是,如果我们尝试使用 Logger 在defaultPackage之外的另一个类中,我们会得到一个编译错误。


私人访问修饰符

声明变量和方法时 private ,它们不能在课堂外访问。例如,

class Data {
    // private variable
    private String name;
}

public class Main {
    public static void main(String[] main){

        // create an object of Data
        Data d = new Data();

        // access private variable and field from another class
        d.name = "Programiz";
    }
}

在上面的例子中,我们声明了一个名为 name 的私有变量 和一个名为 display() 的私有方法 .当我们运行程序时,会得到如下错误:

Main.java:18: error: name has private access in Data
        d.name = "Programiz";
         ^

产生错误是因为我们试图访问 Data 的私有变量和私有方法 Main 中的类 类。

您可能想知道如果我们需要访问这些私有变量怎么办。在这种情况下,我们可以使用 getters 和 setters 方法。例如,

class Data {
    private String name;

    // getter method
    public String getName() {
        return this.name;
    }
    // setter method
    public void setName(String name) {
        this.name= name;
    }
}
public class Main {
    public static void main(String[] main){
        Data d = new Data();

        // access the private variable using the getter and setter
        d.setName("Programiz");
        System.out.println(d.getName());
    }
}

输出

The name is Programiz

在上面的例子中,我们有一个名为 name 的私有变量 .为了从外部类访问变量,我们使用了方法:getName()setName() .这些方法在 Java 中称为 getter 和 setter。

在这里,我们使用了 setter 方法(setName() ) 为变量和 getter 方法赋值 (getName() ) 来访问变量。

我们使用了 this setName() 中的关键字来引用类的变量。要了解有关此关键字的更多信息,请访问 Java this Keyword。

注意 :我们不能在 Java 中声明类和接口私有。但是,嵌套类可以声明为私有的。要了解更多信息,请访问 Java 嵌套和内部类。


受保护的访问修饰符

声明方法和数据成员时 protected ,我们可以在同一个包中以及从子类中访问它们。例如,

class Animal {
    // protected method
    protected void display() {
        System.out.println("I am an animal");
    }
}

class Dog extends Animal {
    public static void main(String[] args) {

        // create an object of Dog class
        Dog dog = new Dog();
         // access protected method
        dog.display();
    }
}

输出

I am an animal

在上面的示例中,我们有一个名为 display() 的受保护方法 动物里面 班级。 动物 类由 Dog 继承 班级。要了解有关继承的更多信息,请访问 Java 继承。

然后我们创建了一个对象 dog 班级。使用我们试图访问父类的受保护方法的对象。

由于可以从子类中访问受保护的方法,因此我们可以访问 Animal 的方法 Dog 的类 类。

注意 :我们不能声明类或接口 protected 在 Java 中。


公共访问修饰符

声明方法、变量、类等时public ,然后我们可以从任何地方访问它们。 public 访问修饰符没有范围限制。例如,

// Animal.java file
// public class
public class Animal {
    // public variable
    public int legCount;

    // public method
    public void display() {
        System.out.println("I am an animal.");
        System.out.println("I have " + legCount + " legs.");
    }
}

// Main.java
public class Main {
    public static void main( String[] args ) {
        // accessing the public class
        Animal animal = new Animal();

        // accessing the public variable
        animal.legCount = 4;
        // accessing the public method
        animal.display();
    }
}

输出

I am an animal.
I have 4 legs.

在这里,


访问修饰符汇总在一张图中

<图>

访问修饰符主要用于封装。我可以帮助我们控制程序的哪些部分可以访问类的成员。这样可以防止数据的滥用。要了解有关封装的更多信息,请访问 Java 封装。


java

  1. C# 访问修饰符
  2. Java 运算符
  3. Java 评论
  4. Java for-each 循环
  5. Java 字符串
  6. Java 接口
  7. Java 匿名类
  8. Java try-with-resources
  9. Java 注释
  10. Java 断言
  11. Java 向量
  12. Java - 修饰符类型