周一的学习状态不佳。这几节都是写安装之类的说明。看得有点辛苦哈哈。
编写第一个完整的程序。
程序开始是打印一个字符串,然后是打印当前日期,这里用到了Java标准库里的Date类。//HelloDate.java
import java.util.*;
public class HelloDate{
public static void main(String[] args){
System.out.println("Hello,it's:");
System.out.println(new Date());
}
}
在每个程序文件的开头,必须声明import语句,以便引入在文件代码中需要用到的额外类。
注意,在这里说它们“额外”,是因为有一个特定类会自动被导入到每一个Java文件中:java.lang.
下载JDK文档(http://download.csdn.net/detail/cmmchenmm/9705219)。
在包列表里,可以看到Java配套提供的各种类库。
点击java.lang,就是显示出这个类库所包含的全部类的列表。
由于java.lang是默认导入到每个Java文件中,所以它的所有类都可以被直接使用。
java.lang里没有Date类,所以必须导入另外一个类库才能使用它。
若不知某个特定类在哪个类库,可以查找功能Date。这样就可以发现他以java.util.Date的形式被列了出来。
于是就知道位于util类库,并且必须书写import java.util.*才能使用Date类。
现在返回文档的最开头,选择java.lang,接着是system。
可以看到system类有许多属性;若选择out,就会发现它是一个静态PrintStream对象。
因为是静态的,所以不需要创建任何东西,out对象便已经存在了,只须直接使用即可。
但我们能够用out对象做些什么事情,是由它的类型PrintStream决定的。
PrintStream在描述文档中是以超链接形式显示,所以很方便进行查看,只须点击它,就可以看到能够为PrintStream调用的所有方法。
方法的数量不少,本书后面再详加讨论。
现在我们只对println()方法感兴趣,它的实际作用是“将我给你的数据打印到控制台,完成后换行”。
因此,在任何Java程序中,一旦需要将某些数据打印到控制台,就可以这样写:
System.out.println("A String of things");
类的名字必须和文件名相同。
如果你像现在这样创建一个独立运行的程序,那么文件中必须存在某个类与该文件同名(否则,编译器会报错),
且那个类必须包含一个名为main()的方法,形式如下:
public static void main(String [] args){}
其中,public关键字意指这是一个可由外部调用的方法。main()方法的参数是一个String对象的数组。
在这个程序中并未用到args,但是Java编译器要求必须这样做,因为args要用来存储命令行参数。
System.out.println(new Date());
在这里,传递的参数是一个Date对象,一旦创建它之后,就可以直接将它的值
(它被自动转换为String类型)发送给println().
当这条语句执行完毕后,Date对象就不再被使用,而垃圾回收器会发现这一情况,并在任意时候将其回收,
因此,我们就没必要关心怎样清理他了。
System有许多其他的犯法(Java最强大的优势之一就是它具有庞大的标准类库集)。例如
//:object/ShowProperties.java
public class ShowProperties{
public static void main(String []args){
System.getProperties().list(System.out);
System.out.println(System.getProperties("user.name"));
System.out.println(System.getProperties("java.library.path"));
}
}///:~
main()的第一行将显示从运行程序的系统中获取的所有“属性”。
因此它可以向你提供环境信息。
list()方法将结果发送给它的参数:System.out.
在后面的章节可以看到,你可以把结果发送到任何地方,例如发送到文件中。
你还可以询问具体的属性,在例子中,我们查询了用户名和java.library.path
(在程序开头和结尾处不同寻常的注视将在稍后进行解释).