SCJP认证范围 1.5 声明类成员

来源:互联网 发布:浙江剑龙网络 编辑:程序博客网 时间:2024/05/22 06:05

目标:

1.3 编写代码,将基本类型、数组、枚举和对象作为静态变量、示例变量和局部变量声明、初始化并使用。此外,使用合法的标识符为变量命名。

1.4 编写代码,声明静态和非静态方法,(如果合适的话) 使用遵循JavaBeans命名标准的方法名。此外,编写代码,声明并使用可变长度的变元列表。

 

前面介绍了在类声明中使用修饰符的办法,现在介绍修饰方法和变量声明的办法。

方法和实例(非局部) 变量统称为为成员(member)。可以使用访问修饰符和非访问修饰符修饰成员,并且比声明类时有更多的修饰可供选择(和组合)。

 

1.5.1 访问修饰符

 

因为方法和变量成员提供访问控制的方式通常完全相同,所以本节中将同时介绍二者。类只能使用4种访问控制级别中的两种(默认的和public),但成员可以使用全部4种:

1)public

2)prtected

3)默认的

4)private

默认的访问控制界别是在成员声明中不键入访问修饰符所得到的。默认的和protected访问控制类型除了一点区别之外,具有几乎完全相同的行为。这一点区别将在后面介绍。

一个类中的代码有权访问另一个类中的成员意味着什么?现在暂且忽略方法和变量之间的任何差别。如果类A有权访问类B的成员,就表示类B的成员对类A来说是可见的。当一个类无权访问另一个类的成员时,编译器将提示你正在试图访问一些可能不存在的内容!

需要理解如下两种不同的情形:

1) 类中的方法代码是否能够给访问另一个的的成员。

2) 子类是否能够继承其超累的成员。

 

第一种访问类型是:当一个类中的方法试图访问另一个类中的方法或变量时,使用点运算符(.)底啊用用方法或取得变量。例如:

 

 

第二种访问类型的中心问题是:子类通过继承能够给访问超类的哪些成员(如果存在的话),这里不是在介绍子类能否调用示例上的方法(这是第一种访问类型的一个例子),而是在介绍子类是否能够继承其超累的成员。请记住,如果子类继承了成员,则它就完全与该子类自己实际声明了该成员一样。换句话说,如果子类继承了成员,那么该子类就拥有这一成员。

 

图1.2(待定)比较了一个类继承另一个类的成员,以及使用另一个类示例的引用该类成员的区别。

很多访问控制(两种控制) 的中心问题是所涉及的两个类是否在同一个包中。不要忘了,如果类A本身不能被类B访问,则类A中的所有成员都不能被雷B访问。

需要了解类和成员访问的不同组合的影响(如具有public变量的默认类) 。为了理解这一点,首先介绍类的访问级别。如果累本身对另一个类不可见,则及时将其成员声明为public,也没有一个成员是可将的。只有当你确认类是可见的时候,查看其各个成员的访问级别才有意义。

 

 

原创粉丝点击