Day33--属性的修饰符
Day33--属性的修饰符
-
public修饰符- 含义:被
public修饰的属性可以在任何类中被访问。这是一种最宽松的访问控制级别。 - 示例:
class Person { public String name; } public class Main { public static void main(String[] args) { Person p = new Person(); p.name = "John"; System.out.println(p.name); } }在这个例子中,
Person类中的name属性被声明为public。在Main类的main方法中,可以直接访问p.name来设置和获取name的值。 - 含义:被
-
private修饰符- 含义:
private修饰的属性只能在其所属的类内部被访问。这是一种最严格的访问控制级别,用于隐藏类的内部实现细节。 - 示例:创建Person类,私有属性age,setAge、getAge方法
- 在main方法中赋值给age,调用setAge、getAge方法
class Person { private int age; public void setAge(int newAge) { if (newAge > 0) { age = newAge; } } public int getAge() { return age; } } public class Main { public static void main(String[] args) { Person p = new Person(); p.setAge(20); System.out.println(p.getAge()); } }这里
Person类中的age属性是private的。不能在Main类中直接访问p.age,而是需要通过setAge方法来设置age的值,通过getAge方法来获取age的值。 - 含义:
-
protected修饰符- 含义:
protected修饰的属性可以在其所属的类内部、同一个包中的其他类以及该类的子类(无论子类是否在同一个包中)中被访问。 - 示例:
package com.example; class Parent { protected int protectedValue = 10; } class Child extends Parent { public void accessProtectedValue() { System.out.println(protectedValue); } } public class Main { public static void main(String[] args) { Child c = new Child(); c.accessProtectedValue(); } }在这个例子中,
Parent类中的protectedValue属性被protected修饰。Child类继承自Parent类,可以在Child类的accessProtectedValue方法中访问protectedValue。同时,Main类在同一个包(com.example)中,通过Child类的实例也可以间接访问protectedValue。 - 含义:
-
默认(没有修饰符)修饰符
- 含义:如果属性没有使用
public、private或protected修饰,那么它具有默认的访问权限。默认访问权限的属性可以在同一个包中的其他类中被访问,但不能在不同包的类中直接访问。 - 示例:
package com.example; class DefaultAccessClass { int defaultValue; } class AnotherClassInSamePackage { public void accessDefaultValue() { DefaultAccessClass dac = new DefaultAccessClass(); dac.defaultValue = 5; System.out.println(dac.defaultValue); } } public class Main { public static void main(String[] args) { AnotherClassInSamePackage aci = new AnotherClassInSamePackage(); aci.accessDefaultValue(); } }这里
DefaultAccessClass中的defaultValue没有修饰符,它可以被AnotherClassInSamePackage(在同一个包com.example中)访问和修改。但是如果在其他包中的类想要访问这个属性,就会受到限制。 - 含义:如果属性没有使用

浙公网安备 33010602011771号