java教程:包的概念
java教程:包的概念
*包的引入,除了要在java文件的非注析行的首行加入package语句,如packagejimvin; ,还要有将其编译后的class放置于相应的文件夹下,而用
javac -d .类名.java的方式编译java文件,系统会将编译后的class文件放置于对应的文件夹,所以此种编译方式好于javac类名.java。因为在java系统,除了文件声明package包名,以外还要将编译后的文件放置于对应的文件夹中。
*在某个包下的类,如果要引入所在包外的类时,外面的类也要放置于某个包中,以方便引入的。
* 在编译包下的类时,javajimvin.Test,注意在类名前加上包名,否则会出现如下错误:Exceptionin thread "main" java.lang.NoClassDefFoundError: Person(wrong name: jim/Person)
*系统默认导入java.lang.*,String、System、Math、Thread等类都是来源于这个包的,都是是java语言的核心类
包与包产生的类名冲突:
import java.util.*;
import java.sql.*;
public class Test
{
public static voidmain(String[] args){
}
}
显示错误:对Date的引用不明确,java.sql中的类java.sql.Date和java.util中的类java.util.Date都匹配
解决方法:
Date d = new Date();
改成 java.sql.Dated = new java.sql.Date();
或者java.util.Dated = new java.util.Date();
解决方法二,
importjava.util.Arrays;
import java.util.*;
// java.sql包名
// Date类名
import staticjava.sql.Date.*;
public class Test
{
public static voidmain(String[] args){
Date d = newDate(); // 等价于java.util.Dated = new java.util.Date();
System.out.println(d );
}
}
这里引入了importstatic的用法,
importstatic实际上是把类的Field、方法给导入进去,假如写成importstatic java.sql.Date.*,就是将java.sql.Date这个类的所有静态Field、所有方法都导入。
在上面的例子,importstatic把 Date类在没包名指定的时默认选java.sql.Date了。
* importstatic更实际的作用其能省略类名。
import staticjava.lang.Math.*;
public class Test
{
public static voidmain(String[] args){
System.out.println(PI ); // 3.141592653589793
System.out.println(sqrt(256) ); // 16.0
}
}
本文来源 我爱IT技术网 http://www.52ij.com/jishu/4763.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
