Java命名规范和代码风格

Java命名规范和代码风格


基本命名规范

     包命名

  包名按照域名的范围从大到小逐步列出,恰好和Internet上的域名命名规则相反。

  由一组以.”连接的标识符构成,通常第一个标识符为符合网络域名的两个或者三个英文小写字母。

        例:cn.edu.xupt.JavaTest

     类,接口命名

        类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;

        如果类名称中包含单词缩写,则这个缩写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应 尽量选择     名词。

  例:People TestPage XMLExample

     方法名

  方法的名字的第一个单词应以小写字母作为开头,后面的每个单词则用大写字母开头。可以为动词或动词+名词组合。

  设置/获取某个值的Method,应该遵循setV/getV规范

  返回长度的Method,应该命名为length

  测试某个布尔值的Method,应该命名为isV

  将对象转换为某个特定类型的Mehod应该命名为toF

  例:getDate(); length(); isReady(); toOracleFormat();

   变量名

        1.普通变量命名应该全部采用小写字母。

        2.final static变量的名字应该都大写,并且指出完整含义,类似于c语言里的宏定义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词如。

  例:NUM_DAYS_IN_WEEK MAX_VALU

  3. 如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性

        例:context=ctx message=msg

  4. 无论什么时候,均提倡应用常量取代数字、固定字符串。也就是说,程序中除01以外,尽量不应该出现其他数字。

  5.索引变量:ijk等只作为小型循环的循环索引变量。

  6. 逻辑变量:避免用flag来命名状态变量,用is来命名逻辑变量。

        例:

         if(isClosed){ 

               dosomeworks; 

               return; 

         }

     集合

       数组或者容器推荐命名方式为名词+s的方式

       例:

          List persons = getPerson(); 

             for(Person person : persons){ 

                   dosomeworks; 

             }

     泛型

        应该尽量简明扼要(最好是一个字母),以利于与普通的classinterface区分

        Container中的Element应该用E表示;

        Map里的keyK表示,valueV;

        TypeT表示;

        异常用X表示如果需要接收多个Type类型的参数,应该用邻接T的大写字母——例如S——来依次表示,当然也可以用T1, T2这样的方式

        例:

        public class HashSet extends AbstractSet {

             …

       }

       public class HashMap<k, v=""> extends AbstractMap<k, v=""> {

             …

       }  

       public class ThreadLocal {

             …

       } 

       public interface Functor<t, throwable="" extends="" x=""> {

               T val() throws X; 

       }

推荐的命名

  1.当要区别接口和实现类的时候,可以在类的后面加上“Impl”

  例:interface Container class ContainerImpl

  2.Exception类最好能用“Exception”做为类命名的结尾

  例:DataNotFoundException InvalidArgumentException

  3.抽象类最好能用“Abstract”做为类命名的开头

  例:AbstractBeanDefinition AbstractBeanFactory

  4. Test类最好能用“Test”做为类命名的结尾

        例:ContainerTest

代码风格

 花括号

  花括号统一采用以下格式:

        if(bool experssion){ 

              dosomework; 

         }

         除非花括号中为空,不然任何情况下不能省略花括号。

         例如:

         if(i==0){ 

                return; 

         }

          while(true){

          }

  以下写法禁止出现:  

        禁止

         if(i != 0) 

              return; 

        尽量不要

        if(i !=0) 

        {

             return;

        }

 圆括号

  括号的前,后一个字符不需要空格,例如:

  Person p = new Person(“Jack”, 17);

 空格

  1.逗号之后紧跟一个空格。

         Person p = new Person(“Jack”, 16, “China”);

         2.圆括号里的分号后跟空格

         for(int i = 0; I < 10; i++){

               dosomework; 

         }

  3. 二元操作符前后跟空格。

  int i = a + b – c * d;

  4. 一元操作符不需要空格。

        for(int i = 0; I < 10; i++){

              dosomework; 

        }

  5. 括号前后不需要空格

 类

  类的定义结构按照顺序为:

  1) 常量

  2) 成员变量

  3) 构造函数

  4) 成员函数

  5) getset方法

  各个部分之间留出一个空行。

  例如:

  规范类模板:

        class Person{ 

                private final static int MAX_AGE = 100; 

                private String firstname = “Jack”;

 

                public Person(){

                }

                public Person(String firstname){ 

                        this.firstname = firstname; 

                }

 

                public void doExercise(){ 

                       dosomeworks; 

                       run(); 

                } 

                private void run(){ 

                      dosomeworks; 

                } 

                public getFirstname(){ 

                         return firstname; 

                } 

                 public setFirstname(String firstname){ 

                         this.firstname = firstname; 

               }

        }

 构造函数

  1) 参数为空的构造函数出现在最上方

  2) 有调用关系的构造函数相邻

  3) 参数尽量由少到多从上至下排序

 使用成员变量

  在类的方法内引用成员变量除了命名冲突以外,不使用this。非特殊情况在类的方法内都不使用getset方法存取成员变量。

 方法

  有调用关系的方法尽量放在相邻的位置,publicprivate方法可以交叉放置。

    getset方法,所有需要公开的成员变量都要符合良好的javabean规范,提供getset方法,尽量使用IDE工具自动生成。

Javadoc注释

  在每个程序的最开始部分,一般都用Javadoc注释对程序的总体描述以及版权信息,之后在主程序中可以为每个类、接口、方法、字段添加 Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟 随更加详细的描述段落。在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther@version,这 些段落将在生成文档中以特定方式显示

       

转载于:https://www.cnblogs.com/csdndreamer/p/5490651.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jqgrid多选和禁止某行记录选择

在对一些特殊数据&#xff0c;我们总是要做一些防范手段。 在jqgrid中添加了多选属性后&#xff0c;默认是每一行都能自由选择。有时候&#xff0c;一些数据不满足某些情况是不让选中处理的。 怎么实现&#xff1f; 直接上代码&#xff1a; onSelectAll:function(rowid, status…

SYN 攻击原理以及防范技术

转载自&#xff1a;http://netsecurity.51cto.com/art/200608/30428.htm 据统计&#xff0c;在所有黑客攻击事件中&#xff0c;SYN攻击是最常见又最容易被利用的一种攻击手法。相信很多人还记得2000年YAHOO网站遭受的攻击事例&#xff0c;当时黑客利用的就是简单而有效的SYN攻击…

使用adb调试android

原来以为真机调试android应用只能用数据线连接手机&#xff0c;后来在公司经前辈推荐&#xff0c;发现adb wireless这个工具不错&#xff0c;只需要将该apk安装到设备上&#xff0c;然后和电脑连同一无线网&#xff0c;打开该工具&#xff0c;看到为设备分配了Ip地址就代表可以…

总结css中单位px和em,rem的区别

国内的设计师大都喜欢用px&#xff0c;而国外的网站大都喜欢用em和rem&#xff0c;那么三者有什么区别&#xff0c;又各自有什么优劣呢&#xff1f; PX特点 1. IE无法调整那些使用px作为单位的字体大小&#xff1b; 2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字…

计算机网络协议包头赏析-TCP

转载自博客地址为http://roclinux.cn。 仍然先把TCP报文段的格式放在这里&#xff0c;然后我们看图说话&#xff1a; TCP报文段也分为首部和数据两部分&#xff0c;首部默认情况下一般是20字节长度&#xff0c;但在一些需求情况下&#xff0c;会使用“可选字段”&#xff0c;这…

使用adb查看数据库的一些命令

1.需要配置adb环境变量。 2.打开命令窗口&#xff0c;输入&#xff1a;adb shell 3.进入该数据库所在目录&#xff1a;cd data/,,,, 4.然后打开该数据库&#xff1a;sqlite3 数据库名称.db 5.现在可以操作该数据库中的表。 a.使用.tables命令可以查看该数据库下的所有表。…

String 类的重要方法与字段

Length():获取字串长度 《空格也算他的长度》得到一个字串的长度的实现&#xff1a;zichuan.length() charAt():获取指定位置的字符实现方法&#xff1a;zichuan.charAt() getChars():获取从指定位置起的子串复制到字符数组中&#xff08;它有四个参数&#xff0c;在示例中有介…

Android使用webview控件加载本地html,通过Js与后台Java实现数据的传递

1.在布局文件中加WebView控件&#xff0c;在java中获取WebView对象。 2.加载本地html文件。 webView.loadUrl("file:///android_asset/android.html"); 3.开启js功能。 webView.getSettings().setJavaScriptEnabled(true); 4.添加一个js交互接口&#xff…

TreeMap的讲解

本文转载自&#xff1a;http://blog.csdn.net/chenssy/article/details/26668941点击打开链接 原文出自&#xff1a;http://cmsblogs.com/?p1013。尊重作者的成果&#xff0c;转载请注明出处&#xff01; 个人站点&#xff1a;http://cmsblogs.com ----------------------…

[国嵌笔记][036][关闭MMU和CACHE]

关闭MMU和CACHE 1.Cache是一种容量小&#xff0c;但存取速度非常快的存储器&#xff0c;它保存最近用到的存储器中数据的拷贝。按功能分为ICache&#xff08;指令Cache&#xff09;和DCache&#xff08;数据Cache&#xff09; 2.虚拟地址就是程序中使用的地址&#xff1b;物理地…

android蓝牙4.0使用方法

蓝牙介绍 Android 4.3(API Level 18)介绍了内置平台支持蓝牙低能量的核心作用,并提供了API,应用程序可以用它来发现设备,查询服务&#xff0c;和读写字符。与传统的蓝牙相比&#xff0c;Bluetooth Low Energy (BLE) 旨在提供显著降低功耗。这使得Android应用能够与具有BLE的低耗…

java基础面试题整理(BAT)

转载自&#xff1a;http://www.nowcoder.com/discuss/5949?type2&order0&pos23&page5点击打开链接 在阿里面试之前总结了一下内推同学的面经&#xff0c;把面试题总结到一块&#xff0c;并进行了分类。有些题目我也总结了一下答案&#xff0c;大家可以参考一下&am…

Android中设置输入法为数字输入

1.对于用XML布局的EditText 使用setInputType(EditorInfo.TYPE_CLASS_NUMBER); 2.对于用Java代码生成EditText 使用setInputType(EditorInfo.TYPE_CLASS_NUMBER); setKeyListener(new DigitsKeyListener(false,true));

n个数里找出前m个数(或者 从10亿个浮点数中找出最大的1万个)

转载自&#xff1a;http://blog.csdn.net/winsunxu/article/details/6219376点击打开链接 引子 每年十一月各大IT公司都不约而同、争后恐后地到各大高校进行全国巡回招聘。与此同时&#xff0c;网上也开始出现大量笔试面试题&#xff1b;网上流传的题目往往都很精巧&#xff0c…

poj_3977 折半枚举

题目大意 给定N&#xff08;N<35)个数字&#xff0c;每个数字都< 2^15. 其中一个或多个数字加和可以得到s&#xff0c;求出s的绝对值的最小值&#xff0c;并给出当s取绝对值最小值时&#xff0c;需要加和的数字的个数。 题目分析 需要枚举集合的所有情况&#xff0c;2^35…

Android 应用更新和在服务器下载android应用

下载android应用有两种表现形式&#xff1a;一种是交给Android系统的下载管理器;另一种是自己去监控下载。 1.使用Android下载管理器下载应用并安装 public class UpdateService extends Service {// 安卓系统下载管理类DownloadManager manager;// 接收下载完的广播DownloadCo…

Linux如何查看进程、杀死进程、启动进程等常用命令

转载自&#xff1a;http://blog.csdn.net/wojiaopanpan/article/details/7286430/ 关键字: linux 查进程、杀进程、起进程 1.查进程 ps命令查找与进程相关的PID号&#xff1a; ps a 显示现行终端机下的所有程序&#xff0c;包括其他用户的程序。 ps -A 显示所有程…

(原创)c#学习笔记06--函数02--变量的作用域01--其他结构中变量的作用域

6.2 变量的作用域 在上一节中&#xff0c;读者可能想知道为什么需要利用函数交换数据。原因是C#中的变量仅能从代码的本地作用域访问。给定的变量有一个作用域&#xff0c;访问该变量要通过这个作用域来实现。 在上一节中&#xff0c;读者可能想知道为什么需要利用函数交换数据…