`

类的封装(访问修饰符)

阅读更多

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

 

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

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
分享到:
评论

相关推荐

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

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

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

    一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示: public:所有对象都可以访问; private:对象本身在对象内部可以访问; protected:只有该类对象及其子类对象可以访问 ...

    Java零基础-访问控制权限修饰符.md

    如何合理选择适当的访问控制权限修饰符来保护数据和封装代码 理解默认访问级别的含义和限制 阅读建议 在阅读本文档之前,您应该具备以下基础知识: 对Java语言的基本理解 对类、接口、成员变量和方法的概念有一定...

    asp.net 修饰符介绍(关于public、private、protected、internal)

    internal修饰符修饰的类或类成员的访问权限为同一程序集内部,C#默认的类访问修饰符即为internal。 4.public修饰符 public修饰符则为公共访问权限,对代码的访问没有任何限制, 大多数情况下必须谨慎使用public修饰...

    第六讲 类的封装

    类的封装:软件包的创建与使用、成员访问权限修饰符、类的访问权限修饰符。

    跟我学Java-day01-java基础语法.pdf

    2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com 1.2 Java语言跨平台原理(理解) Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件...

    《java面向对象程序设计-继承和多态》教案.doc

    访问修饰符 3-2 访问修饰符 3-3 访问修饰符可访问性 方法修饰符 static 修饰符 3-1 static修饰符修饰的方法叫静态方法 目的 使该方法独立于类的实例,使用类去访问,而不是类实例,所以也叫类方法 static 修饰符 3-2...

    抽象和封装PPT

    4.2 与访问修饰符和返回值无关 5.封装 encapsulation (private, friendly, protected, public) 5.1 属性私有,通过getXXX()或 setXXX()方法来取值或赋值,在setXXX()方法中添加 代码进行控制 5.2 6.this 表示...

    Linuxrgw#java#javase知识点 ----6 (访问权限修饰符)1

    1、包: 1、全部小写 2、第一级 指该项目的类型,如com,org,gov等, 2、 访问权限修饰符 3、封装性: 1、静态属性: 1、static属性可以使

    C#考试简答题总结 (2).docx

    5. 访问修饰符 6. 类与对象 7. 数据抽象与过程抽象 9.属性访问器 10. 封装与信息隐藏 5 11.装箱与拆箱 11. 继承与多态 12. 按值传参与按引用传参 13. 方法的重载 15.静态成员与非静态成员的区别 16. 静态类...

    C++学习笔记- 面向对象 .md

    内容是C++面对对象的,目录大致来源于菜鸟文档的C++面向对象,笔记是参考各种文章以及菜鸟文档改编的,内容包含C++类和对象(类定义和对象定义,类成员函数,类访问修饰符,友元函数,内联函数,this指针,静态成员...

    深入浅析SQL封装、多态与重载

    访问修饰符 private 私有的 只能在该类中访问 protected 受保护的 只能在该类和它的子类中访问 public 公有的 在任何地方都可以访问 构造方法(函数): 作用:造对象所要调用的方法,用来创建对象,可以对

    跟我学JAVA-day12-封装、构造、String类.pdf

    private是一个修饰符,可以用来修饰成员(成员变量,成员方法) 被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使 用,提供相应的操作 提供“get变量名()”方法,用于...

    C# 基础学习案例源码-2023(32套源码案例)适合初学者学习使用

    CS核心_02成员变量和访问修饰符 CS核心_03成员方法 CS核心_04封装_构造函数和析构函数 CS核心_05_封装_成员属性 CS核心_06_封装_索引器 CS核心_07_封装_静态成员 CS核心_08_封装_静态类和静态成员 CS核心_09_封装_...

    SQL封装、多态与重载

    本文将要为您介绍的是SQL封装、多态与重载,具体实现方法: ...  访问修饰符private 私有的 只能在该类中访问protected 受保护的 只能在该类和它的子类中访问public 公有的 在任何地方都可以访问  

    C#基础考题(有答案)

    访问修饰符  4.类和对象  5.字段和属性  6.方法和参数  7.值类型和引用类型  8.构造和析构  9.面向对象三大特性-封装  10.面向对象三大特性-继承  11.面向对象三大特性-多态  12.抽象类和虚方法  13. 接口...

    Java面向对象三大特性,即封装、继承、多态

    @Java 面向对象三大特性知识模板 ...访问修饰符:private(可将属性修饰为私有,仅限本类可见) 公共访问方法 过滤有效数据 注意:外部访问只可以访问公共空间,不可以直接访问属性设置为privat

    java从入门到精通视频教程(全94讲)学习笔记整理(齐全).docx

    -访问修饰符.重载.覆盖 -约瑟夫问题 -多态 -抽象类、接口 -final.作业评讲 -作业、测试题 -数组 -排序、查找 -二进制、位运算、位移运算 -集合 -集合 -集合 -集合补充 -异常 -面试题评讲 -布局管理器 -常用组件 -...

Global site tag (gtag.js) - Google Analytics