Java的面向对象特性第六章Java的面向对象特性
6.1包package
在面向对象的
软件开发中,类的同名现象是经常出现的,就如同在人类社会中的人存在同名现象一样。为了解决这种类的同名性引起的混乱,同时也为了方便类的管理和存放,在Java中引入了包(package)的概念,其本质可以看成是操作
系统下的文件夹(目录)。
Java的面向对象特性第六章Java的面向对象特性
下面,以Eclipse为IDE,演示包的生成过程。一般来说,在Eclipse中建立一个新类,而不指定这个类所属的包,则会创建一个defaultpackage用于存放这个类,但实际上这个defaultpackage是不存在的。一般的,这个类的首条语句也不会使用package来表示其所在的包。针对这种情况的图如下所示:
Java的面向对象特性第六章Java的面向对象特性
Java的面向对象特性第六章Java的面向对象特性
现在,在Eclipse中新建一个包,名为package_1,并在该包下建立一个类,名为test。test的内容为输出下列语句:这是在package_1的包下的test.java输出的语句。
Java的面向对象特性第六章Java的面向对象特性
Java的面向对象特性第六章Java的面向对象特性
Java的面向对象特性第六章Java的面向对象特性
Java的面向对象特性第六章Java的面向对象特性
Java的面向对象特性第六章Java的面向对象特性
Java的面向对象特性第六章Java的面向对象特性
同理,按照以上步骤,建立包package_2,并在该包下建立test类,输出语句:这是在package_2的包下的test.java输出的语句。最后,建立包package_3,并在该包下建立usetest类,并调用package_1和package_2两个包下的test类。
Java的面向对象特性第六章Java的面向对象特性
Java的面向对象特性第六章Java的面向对象特性
最后,对包这个概念要掌握其实质,包本质上就是一个文件夹,而不是类或
程序。在不同包的里面可以建立具有相同名字的类。在调用这些类的时候,为了区分这些类到底属于哪个包,则在创建类的对象时,在前面加上包的名字,或者在程序上方用import语句导入该类所在具体包的位置即可。今后的程序,均放在以章为包名的包下,例如第六章的所有程序均放在chapter_6包下。
Java的面向对象特性第六章Java的面向对象特性
6.2类和对象
类(class):类是Java中的一种复合数据类型,由类申明和类体两部分构成,其中类体又由成员变量和成员方法构成。类申明格式:
[类属性]class类名[extends父类][implements接口]
Java的面向对象特性第六章Java的面向对象特性
例:编写一个加法类int_add,求两个整数的和。int_add.javaEx6_1.java
Java的面向对象特性第六章Java的面向对象特性
例:编写一个矩形类,求矩形的面积。Rectangle.javaEx6_2.java
Java的面向对象特性第六章Java的面向对象特性
Java的面向对象特性第六章Java的面向对象特性
一般说来,类中的成员变量多用private类型,而成员方法多用public类型。原因在于成员变量出于安全性考虑,只能通过本类中的成员方法来调用;而成员方法是类的动态属性,只有被其他的类或对象调用时,才能体现出其功能。当类的成员变量或成员方法为static类型时,不需要实例化该类即可调用,否则必须先实例化类,才能调用。
Java的面向对象特性第六章Java的面向对象特性
在OOP中,方法重载(MethodOverl
oading)是一种常见的技术,其表现为:方法名相同,而方法的返回类型、参数个数或参数类型不同。见例methodoverloading.javaEx6_3.java
Java的面向对象特性第六章Java的面向对象特性
Java的面向对象特性第六章Java的面向对象特性