java修饰符访问权限从小到大(Java访问权限修饰符)

Java修饰符访问权限介绍

Java是一门强类型、静态的编程语言,其拥有四种访问权限修饰符来限制类、方法和变量的访问范围。访问权限修饰符按照从小到大的顺序,分别是private、default、protected和public。本文将从小到大的顺序,详细介绍Java修饰符访问权限。

private访问权限修饰符

private访问权限修饰符是最小的访问权限修饰符,是一种类级别的修饰符。当一个变量或方法被声明为private时,任何在该类之外的类都无法访问它。只有在该类的内部,才能访问它们。这是因为一个private变量或方法只能在对象内进行访问,而不能从其他对象访问它们。例如,下面的代码演示了private访问权限修饰符的使用:

```
public class Person {
private String name;
private int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

private void sayHello() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}
```

在上面的代码中,只有在Person类内部可以调用sayHello()方法,如果在Person类外部调用该方法,编译器将会抛出错误。这是因为该方法具有私有访问权限,其只能在Person类内部使用。

default访问权限修饰符

default访问权限修饰符是一种包级别的修饰符,如果不指定访问权限修饰符,那么就默认为default访问权限修饰符。当一个变量或者方法被声明为default时,只有该包内的代码才能访问它们。其他包中的代码将无法访问。例如,下面的代码演示了default访问权限修饰符的使用:

java修饰符访问权限从小到大(Java访问权限修饰符)

```
package com.example;

public class Person {
String name;
int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

void sayHello() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}
```

在上面的代码中,Person类中的name和age变量及sayHello()方法都具有默认访问权限,在com.example包中的其他类可以访问它们。但是,如果在不同的包中,例如com.example2包中的代码,就无法访问这些成员变量和方法。

protected和public访问权限修饰符

protected和public访问权限修饰符是最大的访问权限修饰符。当一个成员变量或方法被声明为protected时,其将只允许包内的代码以及继承该类的子类访问。而当一个成员变量或方法被声明为public时,将允许所有的代码都可以访问。例如,以下是protected和public访问权限修饰符的示例:

```
public class Person {
protected String name;
protected int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

protected void sayHello() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}

public class Student extends Person {
public Student(String name, int age, String major) {
super(name, age);
this.major = major;
}

protected String major;

public void sayHello() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old. My major is " + major + ".");
}
}
```

在上面的代码中,Person类中的成员变量和方法被声明为protected,这意味着所有相同包内的子类都可以访问它们。而Student类显式地继承Person类,因此在Student类中也可以通过super调用父类的sayHello()方法。而在Student类中声明的成员变量major是public访问权限修饰符,这意味着任何代码都可以访问。如果在com.example包中的代码中调用sayHello()方法,将会输出“Hello, my name is Robert and I am 25 years old.”。而如果在Student类之外的其他包中的代码中调用major变量,则不会编译通过。

总结

本文介绍了Java修饰符访问权限从小到大的四种类型:private、default、protected、和public。private和default访问权限修饰符仅限于该对象或者同一包的对象使用,而protected和public访问权限修饰符允许其他对象访问。在使用修饰符时,需要仔细考虑访问权限,以便尽可能减小代码泄漏的风险。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/javag0.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月24日 下午6:14
下一篇 2023年4月24日 下午6:14

猜你喜欢