当前位置: 技术问答>java相关
最简单的问题!!!
来源: 互联网 发布时间:2015-11-18
本文导语: package SCC; import java.lang.System; import java.util.*; public abstract class mails { public String fromAddress; public String toAddress; public abstract void ShowMe(); }; package SCC; public class Parcel extends mails { protected...
package SCC;
import java.lang.System;
import java.util.*;
public abstract class mails
{
public String fromAddress;
public String toAddress;
public abstract void ShowMe();
};
package SCC;
public class Parcel extends mails
{
protected int weight;
Parcel(String addr1,String addr2,int w)
{
fromAddress = addr1;
toAddress = addr2;
weight = w;
}
public void ShowMe()
{
System.out.print("Pracel:");
System.out.println("tFrom:"+fromAddress+"tTo:"+toAddress);
System.out.println("tWeight:"+weight+"g");
}
};
编译时报错:
parcel.java:5:cannot resolve symbol
synbol:class mails
location:class SCc.parcel
class Parcel extends mails
import java.lang.System;
import java.util.*;
public abstract class mails
{
public String fromAddress;
public String toAddress;
public abstract void ShowMe();
};
package SCC;
public class Parcel extends mails
{
protected int weight;
Parcel(String addr1,String addr2,int w)
{
fromAddress = addr1;
toAddress = addr2;
weight = w;
}
public void ShowMe()
{
System.out.print("Pracel:");
System.out.println("tFrom:"+fromAddress+"tTo:"+toAddress);
System.out.println("tWeight:"+weight+"g");
}
};
编译时报错:
parcel.java:5:cannot resolve symbol
synbol:class mails
location:class SCc.parcel
class Parcel extends mails
|
另外,建议Parcel(String addr1,String addr2,int w)声明为public Parcel(String addr1,String addr2,int w);构造方法要为public的,不明确指定只能本包里的类或方法访问。而且你少一个main方法,要加进去,否则测试。。。。麻烦
public static void main(String args[])
{
Parcel p=new Parcel("100","200",300);
p.ShowMe();
}
public static void main(String args[])
{
Parcel p=new Parcel("100","200",300);
p.ShowMe();
}
|
声明为public ,private 或者protected 看你的需要了,如果旨在包内使用,
不加任何声明也没所谓,默认为friendly,既在同一个包内为public,包外为 private
不加任何声明也没所谓,默认为friendly,既在同一个包内为public,包外为 private
|
其实是你的ClassPath没有设置正确,麻烦你将包含这两个文件的目录包含进去。我按下面这样编译都没有错!
package SCC;
import java.lang.System;
import java.util.*;
//public
abstract class mails
{
public String fromAddress;
public String toAddress;
public abstract void ShowMe();
};
//package SCC;
public class Parcel extends mails
{
protected int weight;
Parcel(String addr1,String addr2,int w)
{
fromAddress = addr1;
toAddress = addr2;
weight = w;
}
public void ShowMe()
{
System.out.print("Pracel:");
System.out.println("tFrom:"+fromAddress+"tTo:"+toAddress);
System.out.println("tWeight:"+weight+"g");
}
};
package SCC;
import java.lang.System;
import java.util.*;
//public
abstract class mails
{
public String fromAddress;
public String toAddress;
public abstract void ShowMe();
};
//package SCC;
public class Parcel extends mails
{
protected int weight;
Parcel(String addr1,String addr2,int w)
{
fromAddress = addr1;
toAddress = addr2;
weight = w;
}
public void ShowMe()
{
System.out.print("Pracel:");
System.out.println("tFrom:"+fromAddress+"tTo:"+toAddress);
System.out.println("tWeight:"+weight+"g");
}
};
|
大哥,你这是勿导人家,干吗非要把两个类放到同一个文件中去呢,
问题的根本是没有找到类路径
解决办法:
1.两个类的路径都加到classpath 中
2.两个类放到同一个路径下,
建议采用第二种,因为你实用了相同的包名
问题的根本是没有找到类路径
解决办法:
1.两个类的路径都加到classpath 中
2.两个类放到同一个路径下,
建议采用第二种,因为你实用了相同的包名
|
我想这个问题涉及到CLASSPATH的设置和javac的用法。
我有一个实验过程供参考:
假定:
1、JDK的环境变量:
JAVA_HOME=F:j2sdk1.4.0_02
Path=E:WINNTsystem32;E:WINNT;f:j2sdk1.4.0_02bin;
CLASSPATH=.; F:java;F:j2sdk1.4.0_02lib;
2、目录:
F:java
3、源文件:
F:javamails.java
F:javaParcel.java
4、源文件内容:
// mails.java
package SCC;
public abstract class mails
{
public String fromAddress;
public String toAddress;
public abstract void ShowMe();
};
------------------------
// Parcel.java
package SCC;
public class Parcel extends mails
{
protected int weight;
Parcel(String addr1,String addr2,int w)
{
fromAddress = addr1;
toAddress = addr2;
weight = w;
}
public void ShowMe()
{
System.out.print("Pracel:");
System.out.println("tFrom:"+fromAddress+"tTo:"+toAddress);
System.out.println("tWeight:"+weight+"g");
}
public static void main(String[] args) {
Parcel p=new Parcel("西安","武汉",100);
p.ShowMe();
}
};
5、操作和结果:
F:java>javac mails.java -d .
F:java>javac Parcel.java -d .
F:java>java SCC.Parcel
Pracel: From:西安 To:武汉
Weight:100g
6、通过javac语句,java会自动生成目录:F:javaSCC
并有两个类文件:mails.class Parcel.class
7、执行时,要使用java SCC.Parcel
我有一个实验过程供参考:
假定:
1、JDK的环境变量:
JAVA_HOME=F:j2sdk1.4.0_02
Path=E:WINNTsystem32;E:WINNT;f:j2sdk1.4.0_02bin;
CLASSPATH=.; F:java;F:j2sdk1.4.0_02lib;
2、目录:
F:java
3、源文件:
F:javamails.java
F:javaParcel.java
4、源文件内容:
// mails.java
package SCC;
public abstract class mails
{
public String fromAddress;
public String toAddress;
public abstract void ShowMe();
};
------------------------
// Parcel.java
package SCC;
public class Parcel extends mails
{
protected int weight;
Parcel(String addr1,String addr2,int w)
{
fromAddress = addr1;
toAddress = addr2;
weight = w;
}
public void ShowMe()
{
System.out.print("Pracel:");
System.out.println("tFrom:"+fromAddress+"tTo:"+toAddress);
System.out.println("tWeight:"+weight+"g");
}
public static void main(String[] args) {
Parcel p=new Parcel("西安","武汉",100);
p.ShowMe();
}
};
5、操作和结果:
F:java>javac mails.java -d .
F:java>javac Parcel.java -d .
F:java>java SCC.Parcel
Pracel: From:西安 To:武汉
Weight:100g
6、通过javac语句,java会自动生成目录:F:javaSCC
并有两个类文件:mails.class Parcel.class
7、执行时,要使用java SCC.Parcel
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。