当前位置: 首页 > news >正文

第2章番外 Java的命名规范

Java开发者对Java的代码风格有自己的规范,良好的代码风格是非常重要的。下面来说下各种命名规范:

包命名(全小写,反写域名)

Java引入包的机制很大程度是为了解决重名问题,这有点想C++的命名空间的作用。

包实际上提供了一种命名机制和可见性机制。

为了最大程度地防止重名,包名必须具有唯一性。

Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。 由于互联网上的域名称是不会重复的,所以程序员一般将自己在互联网上的域名反过来作为自己程序包的唯一前缀。 

例如:net.mindview.util.Print

对于个人项目,一般也有些规范可以参考。(可以在起名的时候不要太纠结)

格式大概为:“项目类型.个人名.项目名.模块名.……”

项目类型可为个人(pres)或团队(team)等。

例如:pres.zxc.weatherman.Interface

类命名(驼峰风格)

根据约定,Java类名通常以大写字母开头,如果类名称由多个单词组成,则每个单词的首字母均应为大写,如果类名称中包含单词缩写,则缩写词的每个字母均应大写。

例如:AllTheColorOfTheRainbowXMLExample

方法的命名 (首字母小写,后面单词首字母大写)

方法的名字的第一个单词(一般为动词)应以小写字母作为开头,后面的单词首字母大写。

例如:runAction()

常量的命名 (全部大写 ,常加下划线)
常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。 
例如:MAX_VALUE

变量的命名(大小写混用,具体看爱好)

主要的的命名规范有以下三种:
Camel 标记法:首字母是小写的,接下来的单词都以大写字母开头
Pascal 标记法:首字母是大写的,接下来的单词都以大写字母开头
匈牙利标记法:在以Pascal标记法的变量前附加小写序列说明该变量的类型

归纳

尽量使用完整的英文描述、采用适用于相关领域的术语、采用大小写混合使名字可读、尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一、避免使用长的名字(小于 15 个字母是个好主意)、避免使用类似的名字,或者仅仅是大小写不同的名字、避免使用下划线(除静态常量等)

相关文章:

  • 基于清单的启动器的实现
  • linux运维实战练习-2015年11月8日-11月17日课程作业(练习)汇总
  • 使用netstat命令查看并发连接数
  • Visio中如何画面积一样的形状
  • SIP进行时
  • 有一个很大的整数list,需要求这个list中所有整数的和,写一个可以充分利用多核CPU的代码,来计算结果(转)...
  • 实习小白::(转) Cocos2d-x 3.0 开发(十二)在CocoStudio中使用粒子挂载与曲线动画...
  • 高焕堂讲Android核心
  • python对象的创建和销毁
  • Foundation框架集合 ---- NSArray和NSMutableArray
  • 【BZOJ】2876: [Noi2012]骑行川藏
  • 【BZOJ】3714: [PA2014]Kuglarz
  • intelliJ IDEA使用体验
  • 网络工程实训_4RIP路由(动态路由)
  • LLC子层为什么不在数据包中体现?LLC子层具体作用是什么?Ethernet_II如何表示帧结束?...
  • 分享的文章《人生如棋》
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • mysql常用命令汇总
  • node学习系列之简单文件上传
  • Redis在Web项目中的应用与实践
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • yii2权限控制rbac之rule详细讲解
  • 从输入URL到页面加载发生了什么
  • 记一次和乔布斯合作最难忘的经历
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 坑!为什么View.startAnimation不起作用?
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 深度学习入门:10门免费线上课程推荐
  • 世界上最简单的无等待算法(getAndIncrement)
  • 异常机制详解
  • 源码安装memcached和php memcache扩展
  • 自动记录MySQL慢查询快照脚本
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #Java第九次作业--输入输出流和文件操作
  • #前后端分离# 头条发布系统
  • #图像处理
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (八)Spring源码解析:Spring MVC
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (十五)使用Nexus创建Maven私服
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转载)深入super,看Python如何解决钻石继承难题
  • .bat文件调用java类的main方法
  • .net 7 上传文件踩坑