封装:类的设计者把类设计成一个黑盒子,使用者只能看见类中定义的公共方法,而看不见方法的实现细节,也不能直接对类中的数据进行操作。
根据封装的原则,使用者可以访问类中的部分方法,但不能直接访问成员变量。
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(); } }
相关推荐
第20天,对构造器以及this关键字和封装继承和访问修饰符的学习
一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示: public:所有对象都可以访问; private:对象本身在对象内部可以访问; protected:只有该类对象及其子类对象可以访问 ...
如何合理选择适当的访问控制权限修饰符来保护数据和封装代码 理解默认访问级别的含义和限制 阅读建议 在阅读本文档之前,您应该具备以下基础知识: 对Java语言的基本理解 对类、接口、成员变量和方法的概念有一定...
internal修饰符修饰的类或类成员的访问权限为同一程序集内部,C#默认的类访问修饰符即为internal。 4.public修饰符 public修饰符则为公共访问权限,对代码的访问没有任何限制, 大多数情况下必须谨慎使用public修饰...
类的封装:软件包的创建与使用、成员访问权限修饰符、类的访问权限修饰符。
2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com 1.2 Java语言跨平台原理(理解) Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件...
访问修饰符 3-2 访问修饰符 3-3 访问修饰符可访问性 方法修饰符 static 修饰符 3-1 static修饰符修饰的方法叫静态方法 目的 使该方法独立于类的实例,使用类去访问,而不是类实例,所以也叫类方法 static 修饰符 3-2...
4.2 与访问修饰符和返回值无关 5.封装 encapsulation (private, friendly, protected, public) 5.1 属性私有,通过getXXX()或 setXXX()方法来取值或赋值,在setXXX()方法中添加 代码进行控制 5.2 6.this 表示...
1、包: 1、全部小写 2、第一级 指该项目的类型,如com,org,gov等, 2、 访问权限修饰符 3、封装性: 1、静态属性: 1、static属性可以使
5. 访问修饰符 6. 类与对象 7. 数据抽象与过程抽象 9.属性访问器 10. 封装与信息隐藏 5 11.装箱与拆箱 11. 继承与多态 12. 按值传参与按引用传参 13. 方法的重载 15.静态成员与非静态成员的区别 16. 静态类...
内容是C++面对对象的,目录大致来源于菜鸟文档的C++面向对象,笔记是参考各种文章以及菜鸟文档改编的,内容包含C++类和对象(类定义和对象定义,类成员函数,类访问修饰符,友元函数,内联函数,this指针,静态成员...
访问修饰符 private 私有的 只能在该类中访问 protected 受保护的 只能在该类和它的子类中访问 public 公有的 在任何地方都可以访问 构造方法(函数): 作用:造对象所要调用的方法,用来创建对象,可以对
private是一个修饰符,可以用来修饰成员(成员变量,成员方法) 被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使 用,提供相应的操作 提供“get变量名()”方法,用于...
CS核心_02成员变量和访问修饰符 CS核心_03成员方法 CS核心_04封装_构造函数和析构函数 CS核心_05_封装_成员属性 CS核心_06_封装_索引器 CS核心_07_封装_静态成员 CS核心_08_封装_静态类和静态成员 CS核心_09_封装_...
本文将要为您介绍的是SQL封装、多态与重载,具体实现方法: ... 访问修饰符private 私有的 只能在该类中访问protected 受保护的 只能在该类和它的子类中访问public 公有的 在任何地方都可以访问
访问修饰符 4.类和对象 5.字段和属性 6.方法和参数 7.值类型和引用类型 8.构造和析构 9.面向对象三大特性-封装 10.面向对象三大特性-继承 11.面向对象三大特性-多态 12.抽象类和虚方法 13. 接口...
@Java 面向对象三大特性知识模板 ...访问修饰符:private(可将属性修饰为私有,仅限本类可见) 公共访问方法 过滤有效数据 注意:外部访问只可以访问公共空间,不可以直接访问属性设置为privat
-访问修饰符.重载.覆盖 -约瑟夫问题 -多态 -抽象类、接口 -final.作业评讲 -作业、测试题 -数组 -排序、查找 -二进制、位运算、位移运算 -集合 -集合 -集合 -集合补充 -异常 -面试题评讲 -布局管理器 -常用组件 -...