`
chaoyi
  • 浏览: 291445 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

包的定义及导入

 
阅读更多

本章目标
了解多人开发的问题
掌握包的作用及定义
掌握包的导入语法及导入限制
了解系统常用包
掌握Java新特性 —— 静态导入
掌握jar命令的使用

 

多人开发
在Java中,可以将一个大型项目中的类分别独立出来,分门别类地存到文件里,再将这些文件一起编译执行,如此的程序代码将更易于维护

 

多人开发的问题
如果有多个开发人员共同开发同一个项目的时候,则肯定会出现类名称相同的情况。那么这样一来就会比较麻烦

 

包的定义
package是在使用多个类或接口时,为了避免名称重复而采用的一种措施,直接在程序中加入package关键字即可。
包的定义格式:
——package 包名称.子包名称 ;

 

为程序打包

package org.demo;//定义一个包
class Demo{//定义 Demo 类
	public String getInfo(){//返回信息
		return "Hello World!!!";
	}
}
public class PackageDemo01 {
	public static void main(String[] args){
		System.out.println(new Demo().getInfo());//实例化本包对象
	}
/* 结果:
 * Hello World!!!
 * */
}

 

import语句
之前所讲解的程序,两个类是存放在同一个包中的,因此代码与之前没有什么根本的不同,但是如果几个类存放在不同的包中,则在使用类的时候就必须通过import语句导入。
语法:
——import 包名称.子包名称.类名称 ; —> 手工导入所需要的类
——import 包名称.子包名称.* ;   —> 由JVM自动加载所需要的类



 

 

关于“public class”与“class”声明类的完整补充
在本书的一开始,曾经为读者讲解过,如果一个类声明为public class则文件名称必须与类名称一致,而且在一个类中只能有一个public class,而如果使用class声明一个类,则文件名称可以与类名称不一致,但是执行的时候必须执行生成的class文件名称。除了这些之外,public class和class还在包的访问上有所限制,如果一个类只在本包中访问,不需要被外包访问,则直接声明成class即可,而如果一个类需要被外包访问,则必须声明为public class。

 

定义 org.demo.a.Demo 类

package org.demo.a;
public class Demo{
	public String getInfo(){
		return "Hello World!!!";
	}
}

 

在另外一个类中引用Demo类

package org.demo.b;
import org.demo.a.*;//导入不同包中的 Demo 类
public class PackageDemo01 {
	public static void main(String[] args){
		System.out.println(new Demo().getInfo());
	}
/* 结果:
 * Hello World!!!
 * */
}

 

定义另一个 Demo 类

package org.demo.c;
public class Demo{
	public String getInfo(){
		return "Hello World!!!";
	}
}

 

同时导入不同包的相同类

package org.demo.b;
import org.demo.a.*;//包中存在 Demo 类
import org.demo.c.*;//包中存在 Demo 类
public class PackageDemo02 {
	public static void main(String[] args){
		System.out.println(new Demo().getInfo());
	}
/* 结果:
 * HException in thread "main" java.lang.Error: Unresolved compilation problem: 
 * 	The type Demo is ambiguous
 * 
 * 	at org.demo.b.PackageDemo02.main(PackageDemo02.java:6)
 * */
}

 

package org.demo.b;
import org.demo.a.*;//包中存在 Demo 类
import org.demo.c.*;//包中存在 Demo 类
public class PackageDemo03 {
	public static void main(String[] args){
		org.demo.a.Demo d= new  org.demo.a.Demo();
		System.out.println(d.getInfo());
	}
/* 结果:
 * Hello World!!!
 * */
}

 

系统常见包

 

JAVA新特性 —— 静态导入
在JDK 1.5之后提供了静态导入功能,那么什么叫静态导入呢?如果一个类中的方法全部是使用static声明的静态方法,则在导入的时候就可以直接使用“import static”的方式导入,导入的格式如下:
——import static 包.类.* ;

package org.demo.e;

public class Operate {//里面的方法全部是 static 类型
	public static int add(int i ,int j){//加法操作
		return i+j;
	}
	public static int sub(int i ,int j){//减法法操作
		return i-j;
	}
	public static int mul(int i ,int j){//乘法操作
		return i*j;
	}
	public static int div(int i ,int j){//除法操作
		return i/j;
	}
}

 

package org.demo.f;
import static org.demo.e.Operate.*;//静态导入

public class StaticImportDemo {
	public static void main(String[] args){
		System.out.println("3 + 3 = "+add(3,3));//直接调用静态方法
		System.out.println("3 - 2 = " +sub(3,2));//直接调用静态方法
		System.out.println("3 * 3 = " +mul(3,3));//直接调用静态方法
		System.out.println("3 / 3 = " +div(3,3));//直接调用静态方法
	}
/* 结果:
 * 3 + 3 = 6
 * 3 - 2 = 1
 * 3 * 3 = 9
 * 3 / 3 = 1
 * */
}

 

jar命令的使用
当开发者为客户开发出了一套JAVA类之后,肯定要把这些类交给用户使用,但是如果所有的类是直接通过*.class的格式给用户,则会比较麻烦,所以一般情况下会将这些*.class文件压缩成一个文件交付给客户使用,那么这样的文件就称为jar文件(Java Archive File),如果要想生成jar文件,直接使用JDK中bin目录里的jar.exe就可以将所有的类文件进行压缩。

 

 

  • 大小: 37.5 KB
  • 大小: 23.6 KB
  • 大小: 97.5 KB
  • 大小: 70.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics