所以我想说我有以下代码。
public class ImageMaker {
// Variables
static ArrayList<Shape> shapes = new ArrayList<Shape>();//all the shapes contained in the image
public static void main (String[] args) {
shapes.add(new Rect()); //here i want to add an object Rect
}
}
并在另一个名为Shape的类中显示如下。现在我想将一个Rect类型的对象添加到我的形状数组列表中,但我不能,因为它说Rect不能解析为一个类型。我该如何实现呢?当然我有更多的实例变量和方法,但我没有显示它们。如果您需要更多信息,请与我们联系。谢谢!
public class Shape {
public class Rect extends Shape {
//rect instance variables
public Rect(){
super();
System.out.print("Youve made a rect within shape");
}
}
答案 0 :(得分:0)
正如@tsnorri在评论中提到的那样,您只需将Rect
声明为Shape
中的一个类。
public class Shape {
}
public class Rect extends Shape {
//rect instance variables
public Rect(){
super();
System.out.print("Youve made a rect within shape");
}
}
如果您想要了解有关Java中嵌套类的更多信息,这是一个很好的起点:http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
编辑(工作示例)
总的来说,我建议你阅读一些关于面向对象编程和JAVA的基础知识。
这是将Shape
和Rect
添加到ArrayList
的工作示例。
import java.util.ArrayList;
class ImageMaker
{
static ArrayList<Shape> shapes = new ArrayList<Shape>();//all the shapes contained in the image
public static void main(String args[])
{
shapes.add(new Shape());
shapes.add(new Rect());
}
public static class Shape {
System.out.print("Created new Shape");
}
public static class Rect extends Shape {
//rect instance variables
public Rect(){
super();
System.out.print("You've made a rect within shape");
}
}
}
欢呼声
答案 1 :(得分:0)
上课static
:
public static class Rect extends Shape {
然后使用new Shape.Rect()
但是,这似乎很难使用嵌套类,您应该考虑在其自己的文件中定义Rect
之外的Shape
。