目录

一、public
Java中的public是一种访问修饰符(access modifier),用于控制类、接口、方法、变量等成员的可见性。public修饰的成员可以被同一个包内或其他包中的所有代码访问。
在Java中,如果一个类、接口、方法、变量没有指定访问修饰符,则默认为包访问权限,只能被同一个包中的代码访问。
下面是一个示例,演示了如何使用public关键字:
public class MyClass {
public static final int MAX_COUNT = 100;
public void doSomething() {
// ...
}
}
在上述示例中,MyClass类被声明为public,表示它可以被其他包中的代码访问。MAX_COUNT常量和doSomething方法也都被声明为public,表示它们可以被其他代码调用。
注意:虽然public修饰符可以提供更广泛的访问范围,但过度使用public可能导致代码的封装性和安全性降低。因此,在设计和实现Java程序时,应该根据需要合理地使用访问修饰符。

二、protected
Java中的protected也是一种访问修饰符,用于控制类、变量和方法的访问范围。与private相比,protected允许子类和同一个包中的其他类访问被修饰的成员或方法。
下面是一个示例:
package com.example;
public class SuperClass {
protected int protectedField;
protected void protectedMethod() {
// ...
}
}
public class SubClass extends SuperClass {
public void accessProtectedMembers() {
// 子类可以访问父类的protected成员
protectedField = 1;
protectedMethod();
}
}
public class OtherClass {
public void accessProtectedMembers() {
// 同一个包中的其他类也可以访问protected成员
SuperClass superClass = new SuperClass();
superClass.protectedField = 2;
superClass.protectedMethod();
}
}
在上述示例中,SuperClass定义了一个protected的成员变量和方法,SubClass继承了SuperClass,并且可以访问其protected成员;同时,OtherClass虽然没有继承SuperClass,但它也可以访问SuperClass的protected成员,因为它和SuperClass在同一个包中。
需要注意的是,对于不同包中的子类,只有在其通过继承关系建立了与父类之间的联系后,才能够访问父类的protected成员。而对于同一个包中的类,则不存在这样的限制。

三、private
Java中的private是一种访问修饰符(access modifier),用于控制类、接口、方法、变量等成员的可见性。private修饰的成员只能在同一个类内部被访问,其他类无法访问。
使用private修饰符可以实现数据封装,将对象的数据隐藏在类的内部,只允许通过公开的方法进行访问和操作,从而提高了程序的安全性和可维护性。
下面是一个示例,演示了如何使用private关键字:
public class MyClass {
private int count;
public void increment() {
count++;
}
public int getCount() {
return count;
}
}
在上述示例中,count变量被声明为private,表示它只能在MyClass类内部被访问。increment方法和getCount方法是公开的方法,可以被其他类调用来修改或读取count变量的值,但不能直接访问count变量。
注意:数据封装虽然可以提高程序的安全性和可维护性,但也会增加代码的复杂度和开发成本。因此,在设计和实现Java程序时,应该根据需求合理地使用访问修饰符。
本文详细介绍了Java中的三种访问修饰符public、protected和private,分别阐述了它们的作用和使用场景。public成员可被任何代码访问,protected允许子类和同包类访问,而private成员仅限于类内部访问,这些修饰符对于实现数据封装和控制代码可见性至关重要。
&spm=1001.2101.3001.5002&articleId=131140603&d=1&t=3&u=6c71292342ef484f90e0117386ae32f9)
3万+

被折叠的 条评论
为什么被折叠?



