"main()class"文件的最佳编码(布局)实践?

 瑶瑶bao呗 发布于 2023-02-13 17:15

目前,我的"main()类"文件看起来有点像下面的代码.我没有将这个示例代码与//评论混为一谈,而是简单地用数字(1到4)标记了四个代码行,这些数字指的是代码后面出现的问题.谢谢.

// package myPackage;  // **1**

import myOtherPackage.*;

class mainProject{  // **2**

    // **3**
    private int myVar;

    mainProject(){
        myVar = 0;
    }

    public static void main(String args[]){

        // Keep main() looking fairly simple?
        // Perhaps just have some "essentials" here, such as error handling?

        new mainProject().start();  // **4**
    }

    private void start(){
        // The project gets going here..
    }
}

1 与我项目中的其他类文件不同,我没有为"main()类"文件指定包名.这是一个糟糕的设计选择吗?

2 "主类"有一个很好的命名约定吗?将"main"这个词加入到这个类名中是否有帮助?粗略地像"mainProject"这样的东西会是个好主意吗?

3 各种编码结构可以出现在主类文件中.例如,局部变量,构造函数,main()方法和本地方法.他们是否有"最佳订单",他们出现在这个文件中?

4 保持main()方法看起来相当"精简和简单"是否值得?在这个例子中,我刚刚调用了一个名为start()的本地私有方法,该方法用于启动项目.

1 个回答
  • 好的,这是我在专业项目中的表现.

    对于1.每个班级应该有一个包.主要或没有主要没有区别.包是java在运行时以命名空间的形式组织类的方式.因此,如果您停止提供包,那么您最终可能会在同一文件夹或jar中使用两个具有相同名称的类文件,当发生这种情况时,JVM会选择通过类路径上的名称找到的第一个类.这可能不是你想要的那个.

    对于2. main(特别public static void main(String[] args)是Java需要的特定和标准签名.任何可运行的程序,生成输出并且可以执行的程序需要具有此签名的主方法.我将尝试解释签名,这可能会有所帮助你理解为什么会这样.

    它是公共的,因为您希望JVM运行时代码执行该方法.使用privateprotected不允许JVM代码查看您的方法.

    它是静态的,因为如果没有staticJVM代码,则需要您的类的实例来实际访问该方法.请记住,只需使用类名即可访问静态方法和字段.但是,非静态成员需要有效的活动对象才能访问它们.

    它是无效的,因为main不会向调用者返回任何内容.这就像任何具有void返回类型的方法一样.

    main之所以这样,是因为Java创建者想要给它起名字.执行此方法的JVM运行时代码需要知道将启动执行的方法名称.现在,如果我把它命名为任何东西,那么JVM代码就不可能做出疯狂猜测.因此,名称标准化要求标准名称和Java创建者坚持main.

    String[]实际上是一个字符串数组,包含您传递给程序的命令行参数.args是参数的名称,具有讽刺意味的是,这是您可以更改为您想要的任何名称的唯一内容.

    为了命名主类,我通常更喜欢像MyProjectLauncher或MyProjectBootstrap这样的名字,其中myProject是你的项目名称,如tomcat或bigben或你喜欢的任何东西.

    对于3.标准惯例是:

    public class MyClass{
    
        //private members
    
        //protected members
    
        //constructors
    
        //private methods
    
        //protected methods
    
        //public methods
    
        //hashcode and equals
    
        //toString overrides
    }
    

    你可以选择你需要的东西并放弃你需要的东西.如果使用变量,公共方法还包括变量的getter和setter.

    对于4.在设计类时,您需要牢记代码的可伸缩性和可管理性.main在项目开始时有一个类和几个类是很常见的,然后当它们成长为数千行的超大袋鼠时,然后重构代码来调整它.您应该做的是根据功能,服务助手或操作创建类.保存main在不同的类分开.只是main用来初始化一些东西,解析命令行选项和委托来启动或初始化方法,该方法执行剩余的事情以启动程序.

    希望这可以帮助.

    2023-02-13 17:18 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有