طريقة الطبقة الداخلية المحلية
-
09-06-2019 - |
سؤال
public class Test {
public static void main(String[] args) {
}
}
class Outer {
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
}
}
هل يمكن لأحد أن يقول لي كيفية طباعة الرسالة من bMethod
?
المحلول
يمكنك إنشاء مثيل فقط MethodLocalInner
داخل aMethod
.القيام بذلك
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
MethodLocalInner foo = new MethodLocalInner(); // Default Constructor
foo.bMethod();
}
نصائح أخرى
ضمن الطريقة طريقة بعد اعلان الصف MethodLocalInner يمكنك على سبيل المثال إجراء المكالمة التالية:
new MethodLocalInner().bMethod();
لماذا لا تقوم فقط بإنشاء مثيل لـ MethodLocalInner
, ، في aMethod
, ، و اتصل bMethod
على المثيل الجديد؟
قد يساعدك هذا على البدء (ليس لدي أي شيء مفيد للاختبار به).لاحظ بناء جملة المنشئ المعدل:
http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html
أنت بحاجة إلى استدعاء Outer().aMethod() الجديد داخل طريقتك الرئيسية.تحتاج أيضًا إلى إضافة مرجع إلى MethodLocalInner().bMethod() داخل aMethod() الخاص بك، مثل هذا:
public class Test {
public static void main(String[] args) {
new Outer().aMethod();
}
}
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
new MethodLocalInner().bMethod();
}
لا تنتمي إلى StackOverflow