java中包的概念

包(package)
1.为了便于管理大型软件系统中数目众多的类,解决类命名冲突的问题,Java引入了包。
跟我们在两个文件夹下存在两个相同名字的文件是一样的。

2.定义包
package myblog;//它必须在第一行(它之前除了注释和空白什么都不能有)
注意:(1)定义了包之后,这个包内的所有类的全名就是:包名.类名
(2)如果不加package语句,则指定为缺省包或无名包。
(3)包对应着文件系统的目录层次。
(4)在package语句中,用“.”来指明包(目录)的层次。
(5)因为我们自定义的包要对应文件系统中的一个目录名,在这个目录名下面存放的是一个类,我们需要建立相应的文件夹,作为包。但是有一个问题,如果我们有成千上万的类是不是我们要手动建立成千上万的包呢?这样繁琐的事情我们还是交给java编译器吧,也就是我们在编译的时候让它自动生成包对应的系统目录,具体做法:javac -d . Test.java(-d指定在什么位置生成包。"."表示在当前目录下生成class文件)javac -d D:/ Test.java(表示在d盘的根目录下生成包;)javac -d . *.java(表示编译当前目录下所有后缀名为.java的文件。)
(6)多包(多层次)大包与小包还有类的层次结构:大包.小包.类名

 

3.import语句
(1)引入包中的类(如果我们只想引入某个包中的类)
import java.io.File;
(2)引入整个包
import java.io.*;(①这样虽然方便,但是当我们导入包中所有的类时,java编译器就会用额外的内存来存储包中类和方法的名字,以便跟踪这个包中所有的元素,这在我们的pc机上没有太大的性能差异。然而当我们在手持设备上,一般的手持设备内存都比较小,这种方式就不太好了,更适合第一种方式想引用哪个类就具体引用哪个②当我们通过网络远程加载一个类时,如果它导入了一包中所有的类,那么在加载的时候就会把所有的类和方法加载到本地来,这就会造成java程序执行时间上的延迟。所以只有当我们需要导入这个包中很多类的时候,再用这种方式。)
(3)在同一包中的类可以互相引用,无需import语句
注意:java.lang包是自动引入的,不需要我们显式的加import引入。因此我们可以直接引用System、String


4.类的访问说明符:
级别    修饰符      同包    不同包
公开    Public        Ok       Ok 
默认                  Ok       No

 

5.类的其它修饰符:
(1)final(表明这个类是一个最终的类,不能由这个类派生出其他的子类比如我们熟知的String类)
     为了确保某个函数的行为在继承过程中保持不变,并且不能呗覆盖(overridden),可以使用final方法。
     为了效率上的考虑,将方法声明为final,让编译器对此方法的调用进行优化。要注意的是:编译器会自行对final方法进行判断,并决定是否进行优化,通常在方法的体积很小,而我们确实不希望它被覆盖时,才将他声明为final。
    class中所有的private和static方法自然就是final。
(2)abstract(抽象类)
①在类中没有方法体的方法,就是抽象方法。
②含有抽象方法的类,即为抽象类。抽象类是不能实例化对象的。
③如果一个子类没有实现(就是看该抽象方法有没有左大括号和右大括号)抽象基类中所有的抽象方法,则子类也称为一个抽象类。
④我们可以将一个没有任何抽象方法的类声明为abstract,避免由这个类产生任何的对象。
(3)native
①native方法是用户在java中可以使用,但是不能编写的方法。
②JNI(Java Native Interface),它允许java虚拟机(JVM)内部运行的java代码能够与用其它编程语言(如C C++ 汇编语言)编写的应用程序和库进行互操作。
③JNI最大的好处是它没有对底层java虚拟机的实现施加任何限制,因此,java虚拟机厂商可以再不影响虚拟机其它部分的情况下添加对JNI的支持。程序员只需编写一种版本的本地(Native)应用程序和库,就能够与所有支持JNI的java虚拟机协同工作。
④JNI可以理解为java和本地应用程序之间的中介。

 

6.方法的访问说明符:
级别     修饰符     同类   同包   子类 不同包
公开     Public      Ok    Ok    Ok   Ok
受保护   Protected   OK    Ok    Ok   No(两个类为父类子类的关系时可以访问) 
默认                 Ok    Ok    No   No
私有     Private     Ok    No    No   No

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值