- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章类和对象,包和使用权限
包与访问修饰符 学习内容 包 访问修饰符 二、访问修饰符 二、访问修饰符 public:类的成员可被同一包或不同包中的所有类访问,也就是说,public访问修饰符可以使类的特性公用于任何类; protected:允许类本身、同一包中的所有类和不同包中的子类访问; 缺省的访问权限:缺省的可以被同一包中的其他类访问; Private:是限制性最大的一种访问修饰符,被声明为private的成员只能被此类中的其他成员访问,不能在类外看到。 访问修饰符 访问修饰符-3 访问修饰符-4 访问修饰符-5 访问修饰符-6 访问修饰符-7 * 一、 包 包是有着唯一命名的类的集合,它将开发者认为相关的类分组管理,实际上Java中所有的类都在一个具体的包中。 在逻辑上,包就是把相关的类组合在一起管理。 在物理上,包就是目录,相关的类归类放在某个目录下。 * package 语句的基本语法: package顶层包名[.子包名]; 例子: package mypackage.school.Student ; 包的声明在源文件的开始; 每个源文件只能有一个包的声明; 如果没有包的声明;类属于缺省的包(没有名字,包括所有没有声明包的类); 包的名称必须是由等级的且由.分隔。 * 包中类的访问 一个类可以访问其所在包的所有类。访问其他包的类有如下两种方式访问 : 使用import语句导入要访问的类 ,如: 使用的类名前直接添加完整的包名 ,如: import java.util.*; import mypackage.school.Student ; java.util.Date now = new java.util.Date(); mypackage.school.Student tom = new mypackage.school.Student(); 注意:* 指明导入当前包的所有类,不能使用类似于java. * 的语句来导入以java为前缀的所有包的所有类。 访问修饰符 Java中定义了private(私有的)、protected(受保护的)和public(公共的)的访问修饰符,同时也定义了一个缺省的访问级别,用于声明类、属性、方法的访问权限。明确访问修饰符的限制是用好“封装”的关键 。 Java中访问控制表 × × × ? private成员 × × ? ? 缺省成员 × ? ? ? protected成员 ? ? ? ? public成员 不同包中非子类 不同包中子类 同一包中其他类 同一类中成员 访问控制 修饰符实例-1 首先,定义MyClass1类结构 package p1; public class MyClass1 { public int a = 5; private int b = 10; protected int c = 20; int d = 30; public void func1() { System.out.println(func1); } private void func2() { System.out.println(func2); System.out.println(b); } protected void func3() { System.out.println(func3); } void func4() { System.out.println(func4); } } 修饰符实例-2 然后,定义MyClass2类结构 package p1; class MyClass2 { public void func1() { System.out.println(func1 of MyClass2); } } 修饰符实例-3 最后,定义Test类,假如将Test类放在与MyClass1和MyClass2同一个包p1下,在Test中访问MyClass1、MyClass2及其成员的可行性如下 : public class Test { public void func() { MyClass1 obj1 = new MyClass1(); System.out.println(obj1.a); // 公共属性,任何地方都可以访问 System.out.println(obj1.b); // Error,私有属性类外无法访问 System.out.println(obj1.c); // 受保护属性同包的类或子类可以访问 System.out.println(obj1.d); // 缺省属性同包的类可以访问 obj1.func1();
文档评论(0)