`

类的封装(访问修饰符)

阅读更多

封装:类的设计者把类设计成一个黑盒子,使用者只能看见类中定义的公共方法,而看不见方法的实现细节,也不能直接对类中的数据进行操作。

 

根据封装的原则,使用者可以访问类中的部分方法,但不能直接访问成员变量。

Java通过设置访问权限来实现类的封装。

 

访问修饰符允许的访问级别  如下图所示:


 

设置类的访问权限

在声明一个类时,可以不用权限修饰符,也可以用public设置类为公有的,不允许使用其他的权限修饰符。

 

package com.ez;
/**
 * 访问修饰符测试类  访问严格级别从低到高 public-->protected-->default(nodecorate)-->private
 * 类中的数据称为成员变量,对数据进行的操作称为成员方法。类内部的构成,统称类的成员。
 * @author 窗外赏雪(EZ编程网)
 */
public class AccessModifier {

	public void testPublic() {
		System.out.println("该类成员可被所有类的成员访问");
	}

	/**
	 * 不能被其他包的非子类访问,并且非静态成员只能通过子类实例来访问。
	 * 注意:非静态成员只能通过子类的实例访问。
	 */
	protected void testProtected() {
		System.out.println("该类成员可以被其他包的子类实例访问");
	}
	
	protected static void testStaticProtected(){
		System.out.println("该类成员可以被其他包的子类访问");
	}
	
	void testNoDecorate() {
		System.out.println("该类成员能被同一类中的其他成员、或同一包中的其他类访问");
	}

	private void testPrivate() {
		System.out.println("该类成员只能被同一类中的其他成员访问");
	}

	/**
	 * private方法只能被自己类的成员访问
	 */
	public static void main(String[] args) {
		AccessModifier am = new AccessModifier();
		am.testPrivate();
		am.testNoDecorate();
		am.testProtected();
		am.testPublic();
	}

}

 

同个包下的其他类

package com.ez;
/**
 * protected类成员能被同一包下的类成员访问
 * default类成员能被同一类中的其他成员、或同一包中的其他类访问
 * @author 窗外赏雪(EZ编程网)
 */
public class AccessModifierTest {
	public static void main(String[] args) {
		AccessModifier am=new AccessModifier();
		am.testNoDecorate();
		am.testProtected();
		am.testPublic();
	}
}

 同个包下的子类

package com.ez;
/**
 * protected类成员能被同一包下的类成员访问。
 * default类成员能被同一类中的其他成员、或同一包中的其他类访问
 * @author 窗外赏雪(EZ编程网)
 */
public class AccessModifierChildTest extends AccessModifier{
	public static void main(String[] args) {
		AccessModifier am=new AccessModifier();
		am.testNoDecorate();
		am.testProtected();
		am.testPublic();
	}
}

 

不同包下的其他类

package com.ez.other;

import com.ez.AccessModifier;
/**
 * protected不能被其他包的非子类访问,并且非静态成员只能通过子类对象来访问。
 * default类成员不能被不同包中的其他类访问
 * @author 窗外赏雪(EZ编程网)
 */
public class AccessModifierTest {
	public static void main(String[] args) {
		AccessModifier am=new AccessModifier();
		am.testPublic();
	}
}

 不同包下的子类

package com.ez.other;

import com.ez.AccessModifier;

/**
 * protected不能被其他包的非子类访问,并且非静态成员只能通过子类实例来访问。注意:是子类实例
 * default类成员不能被不同包中的其他类访问
 * @author 窗外赏雪(EZ编写网)
 */
public class AccessModifierChildTest extends AccessModifier {
	public static void main(String[] args) {
		AccessModifier am = new AccessModifier();
		am.testPublic();
		AccessModifierChildTest amc = new AccessModifierChildTest();
		amc.testProtected();
	}
}

 

  • 大小: 28.6 KB
分享到:
评论

相关推荐

    C#访问修饰符的简介

    在C#编程语言中,访问修饰符是用来控制类、接口、结构、枚举以及它们的成员(如字段、方法、属性等)的可访问性的关键元素。这些修饰符定义了哪些代码可以访问特定的类型或成员,从而确保了代码的封装性和安全性。...

    理解java中的类的各种权限修饰符

    本文将详细探讨Java中的五种权限修饰符:`public`、`protected`、`default`(也称为包访问权限)、`private`以及`static`修饰类的情况,并通过实例来展示这些修饰符的具体应用。 #### 1. Public - **概述**: - `...

    C#访问修饰符.zip

    总结来说,C#的访问修饰符是实现封装和控制类成员访问权限的关键手段,它们在设计类和接口时起着至关重要的作用,帮助开发者构建安全、可维护的代码结构。了解并熟练掌握这些访问修饰符,是成为一名合格的C#程序员的...

    关于Java中各种修饰符与访问修饰符的说明

    - `package`(默认):如果省略访问修饰符,类只对同包内的其他类可见。 - `protected`:除了对同包内的类可见,还对所有子类可见,即使子类不在同一个包内。 - `private`:只有在定义它的类内部可以访问,是最...

    类修饰符,用于对类的特性

    - **定义**:`public`是访问修饰符的一种,表示该类可以在任何地方被访问。 - **应用场景**: - 当需要让其他类或程序集中的代码能够访问该类时。 - 当类作为公共API的一部分时,通常会使用`public`。 #### ...

    继承与访问修饰符知识点

    继承与访问修饰符是面向对象编程中的核心概念,它们在定义类的结构和关系时起着至关重要的作用。本文将详细探讨这两个主题,以便更好地理解它们如何影响代码的可访问性和可扩展性。 首先,访问修饰符是用来控制类的...

    java的访问修饰符的范围说明

    Java语言中为了控制方法和成员变量的可见性和访问级别,定义了几种访问修饰符:private, protected, public, 和默认(未修饰)访问权限。这些修饰符决定了不同类之间的访问能力,以保证类的封装性和安全性。接下来,...

    Java中的访问修饰符详细解析

    Java中的访问修饰符是编程中控制类、接口、方法和字段访问权限的关键元素。它们用于确定哪些代码可以访问特定的程序元素。以下是Java访问修饰符的详细解析: 1. **类的访问修饰符** - **public**:公共类修饰符,...

    C#类修饰符大全

    - **public**:成员对外公开,与类的public修饰符相似,允许任何访问。 - **protected**:成员对当前类及其派生类可见,用于封装的同时允许继承类访问。 - **private**:成员仅对当前类可见,是最严格的访问控制,...

    深入分析c# 封装和访问修饰符

    深入分析 C# 封装和访问修饰符 C# 语言中,封装和访问修饰符是两个非常重要的概念,它们在面向对象程序设计中扮演着关键的角色。本文将详细介绍 C# 封装和访问修饰符的相关知识点,並对其进行深入分析。 封装 在...

    java访问权限修饰符public.doc

    java 访问权限修饰符详解 在 Java 语言中,访问权限修饰符是指用来限定类、成员变量和方法的可访问范围的关键字。...同时,访问权限修饰符也体现了面向对象编程的封装特性,帮助我们编写更加可靠和可维护的代码。

    C#访问修饰符Test.zip

    在C#编程语言中,访问修饰符是控制类、接口、结构、方法、属性、字段等成员的可访问性的重要工具。这些修饰符定义了它们的可见性,从而影响了其他代码可以如何使用它们。本篇文章将深入探讨C#中的访问修饰符,包括其...

    java常用的修饰符

    Java修饰符是编程中至关重要的概念,它们用于定义类、接口、变量和方法的访问权限、行为和特性。本文将详细介绍Java中常见的修饰符及其用途。 1. **类的修饰符** - **public**: 公共访问控制符,允许任何地方的...

    Java修饰符.pdf

    它们主要分为三类:访问修饰符、类修饰符和方法/变量修饰符。这些修饰符在编写类、接口、方法和变量时起到至关重要的作用,确保代码的封装性、安全性和可维护性。 1. 访问修饰符: - `private`:私有访问修饰符,...

    java修饰符

    - **描述**:当没有明确指定访问修饰符时,默认访问级别(即没有`public`、`protected`或`private`前缀)被称为`default`。这种情况下,成员仅对同一包内的类可见。 - **用途**:`default`通常用于包内协作,促进同...

    类修饰符大全

    1. **Public**: 公共访问修饰符,允许任何代码在任何位置访问该类。无论是在同一程序集还是不同程序集,只要拥有引用,都能访问。 2. **Internal**: 内部访问修饰符,仅限于在同一程序集内部访问。外部程序集无法...

    第20天,对构造器以及this关键字和封装继承和访问修饰符的学习

    第20天,对构造器以及this关键字和封装继承和访问修饰符的学习

Global site tag (gtag.js) - Google Analytics