java中的嵌套方法?
我如何去在Java中建立一个嵌套类/方法,这样我可以打电话给他们这样的:其实java中的嵌套方法?
SessionManager client = new SessionManager();
client.login("user","password", etc...);
client.profileUpdate("John", "15", etc...);
client.inventoryAdd("Potato", etc...);
client.inventoryDelete(15, etc...);
将公共属性添加到SessionManager类中,即Session,Profile,Inventory,这些属性指向它们自己的类并将您的方法移至相应的类。
例如
public class Session {
public void login(...){...}
}
和
public class SessionManager {
public Session session = new Session();
...
}
如果你希望,会话可能是静态内部类的SessionManager的。
:
SessionManager client = new SessionManager();
client.session.login("user","password", etc...);
client.profile.update("John", "15", etc...);
client.inventory.add("Potato", etc...);
client.inventory.delete(15, etc...);
,而不是在短短的类结块的方法在Java嵌套的方法是不可能的,但你可以这样做,如下所示
class Sample {
void sampleMethod() {
class InnerSample {
void sampleInnerMethod() {
}
}
}
}
我认为这将帮助你!
我们可以定义方法内的类? – Thilo 2014-09-29 08:54:20
是的,你可以绝对定义方法内的类..! @Thilo – santhosh 2014-09-29 08:56:31
@Thilo Java 8允许本地类,我想。 http://docs.oracle.com/javase/tutorial/java/javaOO/localclasses.html – EpicPandaForce 2014-09-29 09:33:06
你可以这样说:
public class Example {
public static class InnerClass {
}
}
声明的类一样,你可以这样引用它们之后:
Example.InnerClass someInstance = new Example.InnerClass();
但通知static
修改的InnerClass
的?在这种情况下,static
意味着InnerClass
的行为就像它在自己的文件中定义的一样。 InnerClass
与static
无法访问任何成员Example
或调用Example
任何非静态方法,所以这样的事情是不可能的:
public class Example {
private String someMember;
private void someMethod() {
}
public static class InnerClass {
public InnerClass() {
// Not possible, would throw a compile time error
doSomething(someMember);
someMethod();
}
}
}
如果不申报InnerClass
静态比它实质上成为一部分Example
一个不能独立存在。换句话说,如果你没有声明它是静态的,你总是首先需要一个Example
实例,在这种情况下,你可以创建InnerClass
对象。但是不带静电有可能从Example
访问Example
或调用方法的成员:
public class Example {
private String someMember;
private void someMethod() {
}
public class InnerClass {
public InnerClass() {
// This is now possible. But you cannot create
// an independent `InnerClass` instance anymore
doSomething(someMember);
someMethod();
}
}
}
你正在寻找一个[静态内部类(http://docs.oracle.com/javase/tutorial/java /javaOO/nested.html)? – TheLostMind 2014-09-29 08:47:45
我可以不碰静电吗? – xea21 2014-09-29 08:49:26
我不明白你的意思。 – TheLostMind 2014-09-29 08:50:26