zoukankan      html  css  js  c++  java
  • Java对象的初始化

    昨天写的代码被殷老师诟病了,因为太「丑陋」。

    原来我的代码结构是这样的:

    public class ColorRocognizer
    {
        .....  
        public static void main(String args[]) {
    
        class ColorX {
                public String colorName = "";
                public String colorStr = "";
            }//两个成员变量。
        }
        ColorX[] c;
            c = new ColorX[32];
        for (int i = 0; i < 32; i++) {
                c[i] = new ColorX();}
         c[0].colorName = "RED";
            c[0].colorStr = "FF0000";
            c[1].colorName = "GREEN";
            c[1].colorStr = "00FF00";
            c[2].colorName = "BLUE";
            c[2].colorStr = "0000FF";
            c[3].colorName = "GREY";
            c[3].colorStr = "808080";
            c[4].colorName = "WHITE";
            c[4].colorStr = "FFFFFF";
          .......
    }

    后面还有更多的c的初始化。

    也就是class->function->inner-class。因为我发现好像class里面不能直接放一个class,必须在一个function里面才能再放一个class。

    殷老师觉得这样写太丑了。

    他建议这样:

    public class ColorRecognizerByMrYin {
    
        private static final String [] colorName = {"RED","GREEN","BLUE","GREY","WHITE"};
        
        private static final String [] colorStr = {"FF0000","00FF00","0000FF","808080","FFFFFF"};
    
        public static void main(String args[]) {
    
        ColorX[] c;
            c = new ColorX[32];
            for (int i = 0; i < 32; i++) {
                c[i] = new ColorX(colorName[i],colorStr[i]);
            }
    }
    }
    class ColorX {
        String colorName;//成员变量。
        String colorStr;
        public ColorX(String name, String str){//构造函数
            colorName = name;//在这里初始化。
            colorStr = str;
        }
    }

    把ColorX写在了ColorRecognizor的外面(是否可以写在另外一个文件里呢?那样可能更好)。

    构造函数初始化的方法,确实非常值得学习,这样写也好看多了。但是有个问题,就是颜色(KEY)和颜色值(VALUE)不容易用肉眼一一对应,万一出错,难以寻找。

    明天再说。

  • 相关阅读:
    c#基础之Type
    .Net IOC框架入门之三 Autofac
    EF的三种数据加载方式
    EntityFramework扩展之第三方类库
    EF Codefirst入门之创建数据库
    EasyUI combotree的使用
    MacOS 安装 gdb 踩过的坑
    enex 转 md 格式的几种方式(免费版/氪金版)
    C++ 标准库之 iomanip 、操作符 ios::fixed 以及 setprecision 使用的惨痛教训经验总结
    python list 中 remove 的骚操作/易错点
  • 原文地址:https://www.cnblogs.com/larrylawrence/p/3775385.html
Copyright © 2011-2022 走看看