java学习日志(二)

1:Java不同包中的类如何互相引用?所谓的全名是什么,是所在的文件夹还是其他什么?

包名+类名:
比如java.util.Date。
java.util就是包名。Date就是类名。
如果你在类文件最前面加上
import java.util.Date.
就可以在类文件中直接用Date了。
文件夹其实就是包,比如java.util.Date。
那Date的源文件应该就在src/java/util中。
上面举例的这个类是系统本身提供的,无需源文件。


解决:The declared package..does not match the expected package..

包名必须在程序中通过package语句来指定(例如 package org.it),而不是单纯的靠目录结构来指定,是先有了包名之后,才需要相应的目录结构。这是实际上的类名为org.it315.classname。必须把包声明放在源文件最前面,并且每个源文件最多只能声明一个包(最好要声明包,养成良好的编码风格和习惯)。
如文件TestPackage.java,源码如下:

package org.it;
public class TestPackage 
{
public static void main(String[] args) 
{
   System.out.println("Test use package");
}
}
假设其位于目录是:E:\eclipse\webEclipse\testproject\src\org\it
在dos下直接进行:
编译: E:\eclipse\webEclipse\testproject\src\org\it>javac TestPackage生成TestPackage.class文件位于E:\eclipse\webEclipse\testproject\src\org\it\目录下。
运行: E:\eclipse\webEclipse\testproject\src>java org.it.TestPackage得到正确输出结果。
一定要注意此处路径问题。另外,package的名字和结构必须和相关的目录名一致,包括大小写也要一致。但是在Eclipse中,由于一般是先新建包,eclipse创建package的时候自动帮你创建了目录了,所以不会不一致。Eclipse会在对应testproject\bin目录下生成org\it\目录,并且在org\it\目录下生成TestPackage.class文件,但是实际上此class的名称为org.it.TestPackage.class。当然,在Eclipse中可以直接运行,但是在dos命令下,一定要注意实质上的编译和运行实际路径和类名等问题。


实例代码:
java学习日志(二)_第1张图片java学习日志(二)_第2张图片

2:java的字符串内容要用双引号。bug:The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the arguments FIX:import java.awt.event.ActionEvent;改为import java.awt.event.*; 没导入ActionListener接口

你可能感兴趣的:(java学习日志(二))