Java中的对象文字

前端之家收集整理的这篇文章主要介绍了Java中的对象文字前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在将我编写的Javascript程序转换为Java,并且有一个对象,我不确定如何用Java编写.

    tetros.types = new Array();
    tetros.types[0] = new Object();

    tetros.types[0].color = "green";
    tetros.types[0].rotations = new Array();
    tetros.types[0].rotations[0] = new Object();
    tetros.types[0].rotations[0].blocks = Array([0,0],[1,[2,1]);
    tetros.types[0].rotations[0].edges ={
        "down"  :Array([2,1]),"left"  :Array([0,0]),"right" :Array([2,1],[0,"up"    :Array([0,1])
    }

    tetros.types[0].rotations[1] = new Object();
    tetros.types[0].rotations[1].blocks = Array([0,2],0]);
    tetros.types[0].rotations[1].edges ={
        "down"  :Array([0,"right" :Array([0,0])
    }

    tetros.types[0].rotations[2] = new Object();
    tetros.types[0].rotations[2].blocks = Array([0,1]);
    tetros.types[0].rotations[2].edges ={
        "down"  :Array([0,1])
    }

    tetros.types[0].rotations[3] = new Object();
    tetros.types[0].rotations[3].blocks = Array([0,2]);
    tetros.types[0].rotations[3].edges ={
        "down"  :Array([1,2]),"left"  :Array([1,1])
    }


    tetros.types[1] = new Object();
    tetros.types[1].color = "blue";
    tetros.types[1].rotations = new Array();
    tetros.types[1].rotations[0] = new Object();
    tetros.types[1].rotations[0].blocks = Array([0,1]);
    tetros.types[1].rotations[0].edges ={
        "down"  :Array([1,1])
    }
    tetros.types[1].rotations[1] = new Object();
    tetros.types[1].rotations[1].blocks = tetros.types[1].rotations[0].blocks;
    tetros.types[1].rotations[1].edges = tetros.types[1].rotations[0].edges;

    tetros.types[1].rotations[2] = new Object();
    tetros.types[1].rotations[2].blocks = tetros.types[1].rotations[0].blocks;
    tetros.types[1].rotations[2].edges = tetros.types[1].rotations[0].edges;

    tetros.types[1].rotations[3] = new Object();
    tetros.types[1].rotations[3].blocks = tetros.types[1].rotations[0].blocks;
    tetros.types[1].rotations[3].edges = tetros.types[1].rotations[0].edges;

这大约占整个物体的1/4,但其余部分则相同.

我怎么能用Java写这个呢?

最佳答案
我会从最深层开始,从那里开始向后工作,考虑如何将每组属性转换为类的实例变量,例如:

int[][] blocks;
int[][] edges;

(请注意,Java不支持关联数组,例如“向下”,“向上”等).

然后你可以把它们放到课堂上.从你的代码中,这些似乎是旋转的属性,所以我建议像:

class Rotation {
    // Instance variables
    private int[][] blocks;
    private int[][] edges;

    // Constructor
    public Rotation(int[][] blocks,int[][] edges) {
        this.blocks = blocks;
        this.edges = edges;
    }

    // Accessors and mutators here if applicable
}

然后像:

class Type {
    private Rotation[] rotations;
    private String color;
    // etc etc
}

等等.虽然你似乎对某些正式的面向对象概念不熟悉(例如封装),所以我建议你在尝试将它移植到Java之前阅读一些涵盖类和对象基础知识的Java教程.

猜你在找的Java相关文章