标题:[求助]一个有关包的问题
取消只看楼主
★王者至尊★
Rank: 1
等 级:新手上路
帖 子:528
专家分:0
注 册:2006-3-28
 问题点数:0 回复次数:3 
[求助]一个有关包的问题

定义包中的一个类
--------------------
//SomeSuper.java
package PKG1;
public class SomeSuper
{
protected int prot;
}
--------------------
下面是另一个类 由SomeSuper派生得到
---------------------------------------------------------
//PotectedTest.java
import PKG1.*;
class SomeSub extends SomeSuper{
void ok(){
prot=0;
System.out.println(prot);
}
void alsoOK(SomeSub subReference){
subReference.prot=0;
System.out.println(prot);
}
void notOk(SomeSuper superReference){
superReference.prot=0;
System.out.println(prot);
}
}
public class ProtectedTest{
public static void main(String[] args){
ss=new SomeSub();
ss.ok();
ss.alsoOk();
ss.notOk();
}
}
两个源文件在同一个目录H:\javastudy\Myjavas 下面 classpath=H:\javastudy\Myjavas;
编译出现一下错误
H:\javastudy\Myjavas\ProtectedTest.java:2: cannot access SomeSuper
bad class file: H:\javastudy\Myjavas\SomeSuper.java
file does not contain class SomeSuper
Please remove or make sure it appears in the correct subdirectory of the classpath.
class SomeSub extends SomeSuper{
^
1 error

Process completed.
甚是迷惑 ,不知道是什么原因,我感觉没有错误啊
那位高手指点!
感激不尽!


搜索更多相关主题的帖子: SomeSuper java prot void SomeSub 
2006-04-10 14:53
★王者至尊★
Rank: 1
等 级:新手上路
帖 子:528
专家分:0
注 册:2006-3-28
得分:0 

PKG1中要SomeSuper.class不就够了吗?为什么还要.java源文件?
还是迷糊...
我改成这样了,但是编译器告诉我 PKG1中的protected 变量不能用,说明前面那个帖子你给我说错了,不同包即使是子类也不能用其超类来引用超类中的protected的变量,不知道我总结的对不?请冰封指点!
----------------------------
//SomeSuper.java
package PKG1;
public class SomeSuper{
protected int prot;

}
--------------------------------------------
ProtectedTest.java
import PKG1.*;
class SomeSub extends SomeSuper{
void ok(){
prot=0;
System.out.println(prot);
}
void alsoOk(SomeSub subReference){
subReference.prot=1;
System.out.println(subReference.prot);
}
void notOk(SomeSuper superReference){
superReference.prot=2;
System.out.println(superReference.prot);
}
}
public class ProtectedTest{
public static void main(String[] args){
SomeSub ss=new SomeSub();
ss.ok();
ss.alsoOk(new SomeSub());
ss.notOk(new SomeSuper());
}
}
-----------------------------------------------


------Java 爱好者,论坛小混混,学习中------
2006-04-10 15:17
★王者至尊★
Rank: 1
等 级:新手上路
帖 子:528
专家分:0
注 册:2006-3-28
得分:0 

你说的问题 我解决了
我说的是出现的新问题
是protected变量的问题
我的意思是,ProtectTest.java中:
------------------------------------------
void notOk(SomeSuper superReference){
superReference.prot=2;
System.out.println(superReference.prot);
}
------------------------------------------
这个函数编译器告诉我 用SomeSuper的对象引用protected变量prot是不允许的
但是前面的帖子"有关protected......"中 ,你和狐狸都告诉我是能这样用的
我不明白到底能不能用
这次我说明白了吗?


------Java 爱好者,论坛小混混,学习中------
2006-04-10 15:55
★王者至尊★
Rank: 1
等 级:新手上路
帖 子:528
专家分:0
注 册:2006-3-28
得分:0 

我明白了 再次感谢冰封!


------Java 爱好者,论坛小混混,学习中------
2006-04-10 21:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-56523-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061799 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved