我尝试封装。从接口执行,静态内部类工作,非静态内部类不工作,无法理解术语:嵌套类,内部类,嵌套接口,接口 - 抽象类 - 声音太重复!
BAD! ---接口的异常'非法类型'显然是因为值是常量(?!)
static interface userInfo
{
File startingFile=new File(".");
String startingPath="dummy";
try{
startingPath=startingFile.getCanonicalPath();
}catch(Exception e){e.printStackTrace();}
}
许多方法:接口,静态内部类图像VS非静态内部类图像
import java.io.*;
import java.util.*;
public class listTest{
public interface hello{String word="hello word from Interface!";}
public static class staticTest{
staticTest(){}
private String hejo="hello hallo from Static class with image";
public void printHallooo(){System.out.println(hejo);}
}
public class nonStatic{
nonStatic(){}
public void printNonStatic(){System.out.println("Inside non-static class with an image!");}
}
public static class staticMethodtest{
private static String test="if you see mee, you printed static-class-static-field!";
}
public static void main(String[] args){
//INTERFACE TEST
System.out.println(hello.word);
//INNNER CLASS STATIC TEST
staticTest h=new staticTest();
h.printHallooo();
//INNER CLASS NON-STATIC TEST
nonStatic ns=(new listTest()).new nonStatic();
ns.printNonStatic();
//INNER CLASS STATIC-CLASS STATIC FIELD TEST
System.out.println(staticMethodtest.test);
}
}
输出
hello word from Interface!
hello hallo from Static class with image
Inside non-static class with an image!
if you see mee, you printed static-class-static-field!
相关
答案 0 :(得分:2)
我想你想这样做:
static class userInfo
{
public static void something() {
File startingFile=new File(".");
String startingPath="dummy";
try{
startingPath=startingFile.getCanonicalPath();
}catch(Exception e){e.printStackTrace();}
}
}
答案 1 :(得分:2)
问题在于您在方法之外编写代码。你需要一个类,你必须将你的代码放在一个方法中。例如:
static class UserInfo
{
public static void myMethod()
{
File startingFile = new File(".");
String startingPath = "dummy";
try
{
startingPath = startingFile.getCanonicalPath();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
这假设导入了java.io.File。
然后,您可以调用UserInfo.myMethod();
您可能还想导入java.util.IOException并捕获IOException而不是常规异常。
此外,类和接口以Java约定的大写字母开头。
编辑:描述您最近对您的问题的评论:
当您想要强制使用类似的类(想想不同类型的DVD播放器)时,使用界面具有相同的基本功能(播放dvds,停止,暂停。您同样使用抽象类,但是当所有类都实现时一些相同的事情都是一样的。
答案 2 :(得分:1)
您无法将代码放在接口中,接口只描述对象的行为方式。即使使用Classes,也应该将这种代码放在方法中,而不是直接放在类体中。
答案 3 :(得分:0)
您不能在界面中拥有实际代码,只能使用方法签名和常量。你想做什么?
答案 4 :(得分:0)
您不能在接口中拥有代码。只是方法签名。 顶级接口不能是静态的。
我建议你开始学习Java here。
答案 5 :(得分:0)
看起来你想在这里写一个class
。