我的程序有两个JAVA文件一个是Doll.java另一个是AppMain.java
Doll.java代码如下:
public class Doll{
private String name;
public Doll(String name){
this.name=name;
}
public void putname(){
System.out.println("我的名字是:" + name);
}
}
AppMain.java代码如下:
package data;
public class AppMain{
public static void main(String[] args){
Doll people1 = new Doll("老郭");
Doll people2 = new Doll("小欣");
Doll people3 = new Doll("狗熊");
people1.putname();
people2.putname();
people3.putname();
}
}
在命令行下,我进行编译:
输入“javac Doll.java”
编译成功
输入“javac AppMain.java”
出错!错误提示为:
Doll.java代码如下:
public class Doll{
private String name;
public Doll(String name){
this.name=name;
}
public void putname(){
System.out.println("我的名字是:" + name);
}
}
AppMain.java代码如下:
package data;
public class AppMain{
public static void main(String[] args){
Doll people1 = new Doll("老郭");
Doll people2 = new Doll("小欣");
Doll people3 = new Doll("狗熊");
people1.putname();
people2.putname();
people3.putname();
}
}
在命令行下,我进行编译:
输入“javac Doll.java”
编译成功
输入“javac AppMain.java”
出错!错误提示为:
private String name;
public Doll(String name){
this.name=name;
}
public void putname(){
System.out.println("我的名字是:" + name);
}
}
public class AppMain{
public static void main(String[] args){
Doll people1 = new Doll("老郭");
Doll people2 = new Doll("小欣");
Doll people3 = new Doll("狗熊");
people1.putname();
people2.putname();
people3.putname();
}
}运行结果:
我的名字是:老郭
我的名字是:小欣
我的名字是:狗熊
package data; //Doll.java加入这一行public class Doll{
private String name;
public Doll(String name){
this.name=name;
}
public void putname(){
System.out.println("我的名字是:" + name);
}
} AppMain.java代码如下:
package data;
public class AppMain{
public static void main(String[] args){
Doll people1 = new Doll("老郭");
Doll people2 = new Doll("小欣");
Doll people3 = new Doll("狗熊");
people1.putname();
people2.putname();
people3.putname();
}
} 在命令行下,我进行编译:
输入“javac data/AppMain.java”
编译成功
输入“java data/AppMain
输出:
我的名字是:老郭
我的名字是:小欣
我的名字是:狗熊
Doll.java在e:\lyzylx\java\data下
AppMain.java在e:\lyzylx\java下
格式是import 包名.类名;这个类是你要用到的类,也可以用*,就是导入这个包中所有的类。
Doll.java没做改动
AppMain.java改动如下:
package data;
import data.*;
public class AppMain{
public static void main(String[] args){
Doll people1 = new Doll("老郭");
Doll people2 = new Doll("小欣");
Doll people3 = new Doll("狗熊");
people1.putname();
people2.putname();
people3.putname();
}
}
还是有错误,错误如下:
相反,没有在包里面的类,可以访问到在包里面的类。也就是说,Doll类可以访问data.AppMain并可以创建AppMain的实例
总之,可能是跟classpath无法设置有关系。。
Doll.java代码如下:
package data;
public class Doll{
private String name;
public Doll(String name){
this.name=name;
}
public void putname(){
System.out.println("我的名字是:" + name);
}
}
AppMain.java代码如下:
package com.data;
import data.Doll;
public class AppMain{
public static void main(String[] args){
Doll people1 = new Doll("老郭");
Doll people2 = new Doll("小欣");
Doll people3 = new Doll("狗熊");
people1.putname();
people2.putname();
people3.putname();
}
}
希望能帮助到你
lz总结一下吧 有的时候来得太容易不是好事啊
去查查资料 关于:包,import......
Doll.java代码如下:
package data;
public class Doll{
private String name;
public Doll(String name){
this.name=name;
}
public void putname(){
System.out.println("我的名字是:" + name);
}
}
AppMain.java代码如下:
import data.Doll;
public class AppMain{
public static void main(String[] args){
Doll people1 = new Doll("老郭");
Doll people2 = new Doll("小欣");
Doll people3 = new Doll("狗熊");
people1.putname();
people2.putname();
people3.putname();
}
}
这回好使了,但同样的代码在WINXP下试就不好使!可能是WINXP的系统问题!一会回单位看看!在此先谢谢大家的热心帮助,让我明白了关于PACKAGE这个东西!总结一下不知道对不对,请大家帮着看看,不对的话请给予指出。
对于PACKAGE这个语句,其实就是在当前目录里的*.java文件可以访问到当前目录下的所以子目录,而不用加PACKAGE声明,但要用import这个语句给出相对(不是绝对)路径!而对于在当前目录下的子目录里的*.java文件在用Package声明,告诉程序我在什么地方,但访问不了他所在目录的父目录。对吗?
如果类在包中,必须声明package,否则,在编译的时候要添加类路径,也就是所谓的classpath。。
import可以访问带有package声明的父路径,这取决于你的classpath。