最近自学java,在看电子工业出版社出版的《java 6 从入门到精通》
沈志宏 王松涛 周园春编的书(原书pg39~41)
源程序如下
(1)创建了一个包,该包源文件名为class1.java
/*将类Point和Rectangle打包*/
package java.examplepackage;
class Point
{ protected int x;
protected int y;
public Point()
{ this.x=0;
this.y=0;
}
public Point(int x,int y)
{ this.x=x;
this.y=y;
}
}
class Rectangle
{ private int width=0;//定义成员变量
private int height=0;//定义成员变量
private Point origin;//定义成员变量
public Rectangle()
{ //构造方法,不带参数
origin=new Point(0,0);
}
public Rectangle(Point p)
{ //构造参数,带一个参数
origin=p;
}
public Rectangle(Point p,int w,int h)
{ //构造方法,带3个参数
origin=p;
width=w;
height=h;
}
public void move1(int x,int y)
{ //成员方法
origin.x=x;
origin.y=y;
}
public void move2(int a,int b)
{ //成员方法
origin.x+=a;
origin.y+=b;
}
public int area()
{ //成员方法
return width*height;
}
}
然后再用 javac -d C:\java class1.java
压包
然后第二段程序的源程序如下
(2)引入一个包
/*引入一个包 java.examplepackage*/
import java.examplepackage;
class TwoRectAreaBal
{ //定义一个类
public static void main(String args[])
{ int x=3,y=4;
int w=4,h=5;
Point p1=new Point(x,y);
Point p2=new Point(8,2);
Rectangle r1=new Rectangle(p1,w,h);
Rectangle r2=new Rectangle(p2,8,10);
r1.move1(2,3);
r2.move2(-2,4);
System.out.println("两个矩形面积差="+(r2.area()-r1.area()));
}
}
但是调用第二段程序的时候,却提示class2.java:2:找不到符号
符号:类 examplepackage
位置:软件包 java
class2.java:8:无法访问Point
我觉得第二个错误的原因可能就是由于第一个没有成功的调用包引起的。
在网上查了查
有人说改环境变量classpath
我在里面加了;C:\java\examplepackage也不行
百思不得其解啊
希望某些大大能给解释下
越详细越好
我是自学
可能基础不是很好。
classpath=c:\java也试过,但是还是不行
原来class1里面是用的private
但是我发现编译不过去
后来我自己改成protected之后可以编译过去了
但是依然报错
希望大大能帮个忙
自学不好学啊。。。
参考资料:如果您的回答是从其他地方引用,请表明出处