在面向对象编程中,类的访问权限是指控制其他类或对象可以访问这个类的成员(属性和方法)的级别。在大多数的面向对象编程语言中,类的访问权限通常分为以下三种:
1. Public(公有)
Public指的是类的成员对所有其他的类和对象都是可见的,可以被其他类和对象随意调用。这种访问权限最为开放,常用于表示类的主要功能或核心业务。
2. Protected(保护)
Protected指的是类的成员仅对自身和其子类可见,其他类或对象无法直接访问。这种访问权限通常用于封装与继承相关的成员变量和函数,不允许外部类或对象随意调用和修改。
3. Private(私有)
Private指的是类的成员仅对自身可见,即其他对象无法访问和修改。这种访问权限通常用于封装类的辅助成员、一些内部实现细节,不想让外部知道的详细信息。
总的来说,Public访问级别最高,能够被最广泛地访问;Protected访问级别次之,只能被类自身和其子类访问;Private访问级别最低,只有类自身能够访问。这种访问权限的规定是为了更好的封装和保护类的成员,避免外部程序对其进行随意调用和修改,提高程序的安全性和稳定性。
下面是一个简单的代码例子,展示了在Java语言中类的三种访问权限的定义和使用:
// 定义一个类,包含公有、保护和私有三种访问权限的成员变量和成员函数 public class ExampleClass { public int publicVar; // 公有成员变量 protected String protVar; // 保护成员变量 private boolean privVar; // 私有成员变量 public ExampleClass() { // 公有构造函数 publicVar = 0; protVar = "default"; privVar = true; } public void publicMethod() { // 公有成员函数 System.out.println("This is a public method."); } protected void protMethod() { // 保护成员函数 System.out.println("This is a protected method."); } private void privMethod() { // 私有成员函数 System.out.println("This is a private method."); } } // 在其他类中创建ExampleClass对象,并尝试访问其成员变量和成员函数 public class TestClass { public static void main(String[] args) { ExampleClass obj = new ExampleClass(); // 访问公有成员变量和公有成员函数 obj.publicVar = 10; obj.publicMethod(); // 无法访问保护成员变量和保护成员函数(不在同一包内,无法访问子类成员) // obj.protVar = "test"; // 错误:protVar 在 ExampleClass 中是 protected 访问控制 // obj.protMethod(); // 错误:protMethod 在 ExampleClass 中是 protected 访问控制 // 无法访问私有成员变量和私有成员函数 // obj.privVar = false; // 错误:privVar 在 ExampleClass 中是 private 访问控制 // obj.privMethod(); // 错误:privMethod 在 ExampleClass 中是 private 访问控制 } }
在上面的例子中,我们创建了一个ExampleClass类,其中包含公有、保护和私有三种不同访问权限的成员变量和成员函数。在TestClass类中,我们创建了一个ExampleClass对象,并尝试访问其不同访问权限的成员,通过这个例子我们可以看出,公有成员变量和成员函数可以被任何其他类的对象调用,而保护成员和私有成员则只能在本类中进行访问和修改,或在其子类中被访问和修改。
下面是一个简单的Java代码例子,展示如何使用公有访问权限来定义类的成员变量和成员函数:
// 定义一个类,使用公有访问权限 public class ExampleClass { // 公有成员变量 public int publicVar; // 公有构造函数 public ExampleClass() { publicVar = 0; } // 公有成员函数 public void publicMethod() { System.out.println("This is a public method."); } } // 在另一个类中创建ExampleClass对象,并尝试访问其公有成员 public class TestClass { public static void main(String[] args) { ExampleClass obj = new ExampleClass(); obj.publicVar = 10; // 访问公有成员变量 obj.publicMethod(); // 调用公有成员函数 } }
在上面的例子中,我们创建了一个ExampleClass类,其中包含一个公有成员变量publicVar、一个公有构造函数ExampleClass()和一个公有成员函数publicMethod()。在TestClass类中,我们创建了一个ExampleClass对象obj,并通过它访问了ExampleClass类的公有成员变量和公有成员函数,由于这些成员都是公有的,所以在TestClass中可以直接访问和调用。
专题推荐: