Java编译问题提问书上的一个例子:代码如下publicclassFilenameDemo{publicstaticvoidmain(String[]agrs){FilenamemyHomePage=newFilename("/home/men/index.html",'/','.');System.o...
Java编译问题提问
书上的一个例子:代码如下
public class FilenameDemo
{
public static void main(String[] agrs)
{
Filename myHomePage=new Filename("/home/men/index.html",'/','.');
System.out.println("Extension="+myHomePage.extension());
System.out.println("Filename="+myHomePage.filename());
System.out.println("Path="+myHomePage.path());
}
public class Filename
{
private String fullPath;
private char pathSeparator, extensionSeparator;
public Filename(String str, char sep, char ext)
{
fullpath=str;
pathSeparator=sep;
extensionSeparator=ext;
}
public String extension()
{
int dot =fullPath.lastIndexOf(extensionSeparator);
return fullPath.substring(dot+1);
}
public String filename()
{
int dot=fullPath.lastIndexOf(extensionSeparator);
int sep=fullPath.lastIndexOf(pathSeparator);
return fullPath.substring(sep+1,dot);
public String path()
{
int sep=fullPath.lastIndexOf(pathSeparator);
return fullPath.substring(0,sep+1);
}
}
}
我刚学JAVA ,编的代码中都只有一个CLASS,今天遇到了两个CLASS的就不知道怎么办了。我按照以上书写代码。命令行编译错误信息如下:
g:\Java>javac FilenameDemo.java
FilenameDemo.java:31: 非法的表达式开始
public String path()
^
FilenameDemo.java:31: 需要 ';'
public String path()
^
FilenameDemo.java:36: 进行语法解析时已到达文件结尾
}
^
3 错误
不知道怎么修改代码,希望大家帮个忙!另外这因该通过学习哪方面的知识来解决这个问题?
变量的引用名有点长,辛苦大家了!!!
回复一楼:我用的是命令行,编译不出结果呀!错误提示如下:
G:\Java>javac FilenameDemo.java
FilenameDemo.java:5: 无法从静态上下文中引用非静态 变量 this
Filename myHomePage=new Filename("/home/men/index.html",'/','.');
^
1 错误
我觉得是FilenameDemo类与Filename类的“沟通”问题,前者无法访问后者的成员!
展开