第八章,包和内部类总结

8.1Java类包

在Java中每定义好一个类,通过Java编译器进行编译后,都会生成一个扩展名为.class的文件,当程序的规模逐渐扩大时,就很容易发生类名称冲突的现象。JDK API提供了成千上万个具有各种功能的类。

8.1.1类名冲突

Java中每个接口或类都来自不同的类包,无论是Java API中的类与接口还是自定义的类与接口,都需要隶属于某一个类包,这个类包包含了一些类和接口,如果没有包的存在,管理程序中的类名称将是一件非常麻烦的事情,如果程序只由一个类组成自然不会出现类名重叠的问题,但是随着程序的类数量增加,难免会出现一些问题,如编译器不允许存在同名的类文件等 。

8.1.2完整的类路径

一个完整的类名需要包名与类名的组合,每个类都隶属于一个类包,只要保证同一类包中的类名不同名,就可以有效地避免同名类冲突的情况。

在Java中采用类包机制非常重要,类名不仅可以解决类名冲突问题,还可以再开发庞大的程序时,帮助开发人员管理庞大的应用程序组件,方便软件复用。

8.1.3创建包 

 

 在类中指定包名时,需要将package表达式放置在程序的第一行,它必须是文件中的第一行非注释代码。使用package关键字为类指定包名之后,包名将会成为类名中的一部分,预示着这个类必须指定全名。Java包的命名规则是全部使用小写字母。

8.1.4导入包

1,使用import关键字导入包

如果某个类中需要使用Math类,那么如何告知编译器当前应该使用那一包中的Math类,可以使用Java中的import关键字指定,例如,如果在程序中使用import关键字导入com.mr.Math类,在程序中使用Math类时就会自动选择com.mr.Math类,import关键字语法如下:

在使用import关键字时,可以指定类的完整描述,如果为了使用包中的更多类,可以使用import关键字指定时在包指定后加*,这表是可以在程序中使用该包的所有类。

2,使用import导入静态成员

import关键字除导入包外,还可以导入静态成员,代码如下:

8.2.1
在一个类中使用内部类,可以在内部类直接存取其中所在类的私有成员变量。成员内部类语法如下:

class OuterClass{//外部类
calss lnner Class{//内部类
 
}
}
在成员内部类中可以随意使用外部类的成员方法及成员变量,尽管这些类被修饰为private 尽管成员变量i以及成员方法g()都是外部类中被修饰为private但在成员内部类中可以直接使用,内部类的示例一定要绑定在外部类的实例上,如果从外部类中从初始化一个内部类对象,那么内部类对象就会绑定在外部类对象上,内部类初始化与其他类的初始化方式相同。

8.3使用成员内部类模拟发动机点火代码如下:

成员内部类不止可以在外部类中使用,在其它类中也可以使用。在其他类中创建类对象的语法非常特殊语法如下:

外部类 outer=new 外部类();

外部类.内部类 inner =outer.new内部类();

使用this关键字获取内部类与外部类的引用。

8.2.2匿名内部类

匿名类是在创建一种写法。对象时才会编写类体的一种写法。

代码如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值