全新java初学者实践教程19(java SE5.0)
u_;*Ay 基本语法7
[^EU'lewnW /;-KWu+5= D>+&= 5{ 今天我们再来学习一下[font="Times]java语言的基本语法,这节我们讲访问控制和内部类。
iS&~oj_-% 访问控制这种语法在前面的学习中,已经经常见过了。像是[font="Times]public(公有的)[font="Times],private(私有的)。大家按照字面理解就能知道了,公有的就是谁都可以用,私有的就是只有自己的类内部可以用。不过访问控制一共有[font="Times]4个,[font="Times]public(公有的[font="Times]),protected(受保护的),[font="Times]default(默认的,就是没有修饰符),[font="Times]private(私有的)。我们用一个图表示他们的权限:
jV]'/X<
4EQ7OGU 权限修饰符,可以修饰类,方法和属性。而表达的意思与上表一致。有些注意的地方:类的权限不可以用[font="Times]private,你们想如果写一个类是[font="Times]private,谁也不让用写它干嘛;抽象方法的权限不可以是[font="Times]private和[font="Times]default。因为抽象方法一定要子类来实现的,子类都不可以用,抽象方法当然也没有意义了。
MqGF~h|+ 内部类是我们以前没有提过的概念,就是在类中又写了一个类。注意内部类是可以使用[font="Times]private权限的,而且还可以是[font="Times]static的呢。内部类可以正常调用其它类的方法,属性。别人也正常调用它。它的使用用和普通的方法,属性一致,我们就把它看做一个普通的方法就行了。不过它可是可以创建对象的哦。
|5_bFB+& 本节课的例子下载 'b:e`2fl 我们把测试内部类的源码给大家,不过有一个地方大家要注意。
;2Db/"`t public class[font="Times] TestInnerStatic {
bW(+Aw=O [font="Times]/*只有声明成[font="Times]static的内部类,才可以是里面的成员声明成[font="Times]static。否则错误
,d(F|5M: 如果,声明成[font="Times]static的类,不就是全局的了吗?它就相当放在外面了已经不再是内部类了,并且它的对象中将不包含指向外包类对象的指针,所以不能再引用外包类了[font="Times]*/
8/,m8UOY [font="Times]
public static[font="Times] class InnerClass {
uSLO"\zysX [font="Times]
public static int [font="Times]classVar = 0;
}`8g0DPuD9 [font="Times]
public static[font="Times] void doSomething() {
h!5^d!2, [font="Times]
System.out.println[font="Times]("TestInnerStatic.InnerClass.doSomething");
~=h]r/b< U [font="Times] }
5cO}Jp%PA [font="Times] }
@kvgq 0ab [font="Times]
,],"tzKtE [font="Times]
public static void[font="Times] main(String[] args) {
K QXw~g? [font="Times] InnerClass.doSomething();
8
!Pk1P [font="Times] }
'(mJ*Eb [font="Times]}