Questions tagged «inner-classes»

在面向对象编程(OOP)中,内部类或嵌套类是完全在另一个类或接口的主体内声明的类。但是,在Java中,内部类是非静态的嵌套类。


11
不是封闭的类Java
我正在尝试制作俄罗斯方块游戏,但出现编译器错误 Shape is not an enclosing class 当我尝试创建对象时 public class Test { public static void main(String[] args) { Shape s = new Shapes.ZShape(); } } 我为每个形状使用内部类。这是我的代码的一部分 public class Shapes { class AShape { } class ZShape { } } 我究竟做错了什么 ?

13
最终和有效最终之间的区别
我在用Java 8玩lambda,遇到警告local variables referenced from a lambda expression must be final or effectively final。我知道,当我在匿名类中使用变量时,它们必须在外部类中为final,但仍然-final和有效的final之间有什么区别?

1
什么时候使用(匿名)内部类泄漏安全?
我一直在阅读有关Android内存泄漏的文章,并观看了来自Google I / O的有关该主题的有趣视频。 不过,我还是不完全理解这个概念,尤其是当Activity中的用户内部类是安全或危险的时候。 这是我的理解: 如果内部类的实例生存时间长于外部类(活动),则将发生内存泄漏。-> 在什么情况下会发生这种情况? 在此示例中,我假设不存在泄漏的风险,因为匿名类扩展OnClickListener不会比活动寿命更长,对吗? final Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.dialog_generic); Button okButton = (Button) dialog.findViewById(R.id.dialog_button_ok); TextView titleTv = (TextView) dialog.findViewById(R.id.dialog_generic_title); // *** Handle button click okButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { dialog.dismiss(); } }); titleTv.setText("dialog title"); dialog.show(); 现在,这个例子很危险吗?为什么? // We are still …

5
Java-无法访问类型为Foo的封闭实例
我有以下代码: class Hello { class Thing { public int size; Thing() { size = 0; } } public static void main(String[] args) { Thing thing1 = new Thing(); System.out.println("Hello, World!"); } } 我知道什么Thing也没做,但是没有它我的Hello,World程序就可以编译。只有我定义的类对我不利。 而且它拒绝编译。我到达No enclosing instance of type Hello is accessible."了创建新事物的路线。我猜是: 我遇到系统级别的问题(在DrJava或Java安装中)或 我对如何在Java中构建工作程序有一些基本的误解。 有任何想法吗?

8
从内部类对象获取外部类对象
我有以下代码。我想掌握用来创建内部类对象的外部类对象inner。我该怎么做? public class OuterClass { public class InnerClass { private String name = "Peakit"; } public static void main(String[] args) { OuterClass outer = new OuterClass(); InnerClass inner = outer.new InnerClass(); // How to get the same outer object which created the inner object back? OuterClass anotherOuter = ?? ; …

4
为什么要在C ++中使用嵌套类?
有人可以将我引向一些不错的资源来理解和使用嵌套类吗?我有一些像《编程原理》之类的材料,以及诸如《IBM Knowledge Center-Nested Classes》之类的东西。 但是我仍然很难理解他们的目的。有人可以帮我吗?



6
是否可以使Java中的匿名内部类静态化?
在Java中,嵌套类可以是 static或不是。如果它们是static,则它们不包含对包含实例的指针的引用(它们也不再称为内部类,它们称为嵌套类)。 忘记做一个嵌套的类 static在不需要引用时可能会导致垃圾回收或转义分析的问题。 是否可以建立匿名内部类 static?还是编译器会自动找出原因(之所以会这样,因为不能有任何子类)? 例如,如果我做一个匿名比较器,几乎不需要外部引用: Collections.sort(list, new Comparator<String>(){ int compare(String a, String b){ return a.toUpperCase().compareTo(b.toUpperCase()); } }

4
如何在静态方法中实例化非静态内部类?
我有以下代码: public class MyClass { class Inner { int s, e, p; } public static void main(String args[]) { Inner in; } } 到目前为止,代码还不错,但是我无法像in = new Inner()显示的那样在main方法中实例化“ in” non static field cannot be referenced in static context。 我该怎么做?我不想使我的Inner课堂静止。

6
嵌套类的范围?
我试图了解Python嵌套类中的作用域。这是我的示例代码: class OuterClass: outer_var = 1 class InnerClass: inner_var = outer_var 类的创建未完成,并且出现错误: <type 'exceptions.NameError'>: name 'outer_var' is not defined 尝试inner_var = Outerclass.outer_var不起作用。我得到: <type 'exceptions.NameError'>: name 'OuterClass' is not defined 我正在尝试从访问静态outer_var信息InnerClass。 有没有办法做到这一点?

5
内部类可以访问私有变量吗?
class Outer { class Inner { public: Inner() {} void func() ; }; private: static const char* const MYCONST; int var; }; void Outer::Inner::func() { var = 1; } const char* const Outer::MYCONST = "myconst"; 当我使用类Outer :: Inner'进行编译时,这没有错误,而没有名为`var'的成员
116 c++  inner-classes 

10
PHP中的嵌套或内部类
我正在建立一个 为新网站用户类,但是这次我在考虑构建它有点不同... C ++,Java甚至 Ruby(可能还有其他编程语言)都允许在主类内部使用嵌套/内部类,这使我们可以使代码更加面向对象和组织化。 在PHP中,我想这样做: <?php public class User { public $userid; public $username; private $password; public class UserProfile { // some code here } private class UserHistory { // some code here } } ?> 这在PHP中可行吗?我该如何实现? 更新 如果不可能,将来的PHP版本是否可能支持嵌套类?
111 php  class  oop  nested  inner-classes 

12
如何使用Jackson将原始JSON包含在对象中?
当使用Jackson对对象进行反序列化时,我试图在Java对象中包含原始JSON。为了测试此功能,我编写了以下测试: public static class Pojo { public String foo; @JsonRawValue public String bar; } @Test public void test() throws JsonGenerationException, JsonMappingException, IOException { String foo = "one"; String bar = "{\"A\":false}"; Pojo pojo = new Pojo(); pojo.foo = foo; pojo.bar = bar; String json = "{\"foo\":\"" + foo + "\",\"bar\":" …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.