Java必懂之命名规范

2023-11-08

定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性。在此我从网上查找了一篇写得比较好的文章,来让大家学习,顺便自己复习一下!!!

有时候自己写的类名不符合规范,Eclipse会出现黄色叹号,就是表示你的命名不规范。

然而,规范不是规定,就算你不遵守规范,程序也是没有错的,但是不利于程序开发与维护,因此,学习java命名规范还是很有必要的!!!!

这里注意要区分好规范和规定,规范是可以不遵守的,规定是一定要遵守的!!!

以下紫色字体是我的精华总结,如果看懂了就不用往下看了,如果想看详细的话,可以直接看转载的文章!!!!


标识符:

定义:给类、接口、方法、变量、对象等起名字的字符序列

规定组成:

1、英文大小写字母(大小写敏感)

2、数字字符

3、$和_

规定:

1、数字不能开头

2、不能使用关键字

3、严格遵守大小写,不限长度

4、起名字时候,尽量做到见名知意

应用规范:

1、包名:多个单词组成,所有的字母都要小写,单词与单词之间用(.)作为连接:例:com.lwccool.test、com.wccool.util;

2、类名(class)、接口(implements):采用大驼峰AaaBbbCcc;

3、变量名、方法名:采用小驼峰aaaBbbCcc;

4、常量:多单词组成,所有的字母都要大写,多单词要用"_"作为连接:例:AAA_BBB_CCC



以下内容转自:博客园(一个人的天空)

以下命名为规范命名规范:在工作的时候一般公司会有自己的命名规范

包的命名  (全部小写,由域名定义)

Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都 可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。 由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。 
例如:一般来说,很多程序员喜欢用com+.公司名+.自定义包名,如com.imooc.test,


类的命名 (单词首字母大写,又称大驼峰命名法)

根据约定,Java类名通常以大写字母开头,如果类名称由多个单词组成,则每个单词的首字母均应为大 写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来 代表对象的,所以在命名类时应尽量选择名词。    
例如: Graphics


方法的命名 (首字母小写,字母开头大写,又称小驼峰命名)

方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。 
例如:drawImage


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

Javadoc注释

Java除了可以采用我们常见的注释方式之外,Java语言规范还定义了一种特殊的注释,也就是我们 所说的Javadoc注释,它是用来记录我们代码中的API的。Javadoc注释是一种多行注释,以/**开头,而以*/结束,注释可以包含一些 HTML标记符和专门的关键词。使用Javadoc 注释的好处是编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。 

例如:

/** 
* This is an example of 
* Javadoc 
* @author darchon 
* @version 0.1, 10/11/2002 
*/

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


变量和常量命名


变量的命名

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

在Java我们一般使用匈牙利标记法,基本结构为scope_typeVariableName,它 使用1-3字符前缀来表示数据类型,3个字符的前缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字 母小写,这样保证了对变量名能够进行正确的断句。例如,定义一个整形变量,用来记录文档数量:intDocCount,其中int表明数据类型,后面为表 意的英文名,每个单词首字母大写。这样,在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容,这使得代码语句可读性强、更加容易理解。 byte、int、char、long、float、 double、boolean和short。

数据类型/前缀(附)
byte b
char c
short sh
int i
long l
char c
string s
float f
double d
hashtable h
[] arr
List lst
Vector v
StringBuffer sb
Boolean b
Byte bt
Map map
Object ob

对于在多个函数内都要使用的全局变量,在前面再增加“g_”。例如一个全局的字符串变量:g_strUserInfo。

在变量命名时要注意以下几点:

· 选择有意义的名字,注意每个单词首字母要大写。

· 在一段函数中不使用同一个变量表示前后意义不同的两个数值。

· i、j、k等只作为小型循环的循环索引变量。

· 避免用Flag来命名状态变量。

· 用Is来命名逻辑变量,如:blnFileIsFound。通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚的理解布尔变量所代表的意义。

· 如果需要的话,在变量最后附加计算限定词,如:curSalesSum。

· 命名不相包含,curSales和curSalesSum。

· static final 变量(常量)的名字应该都大写,并且指出完整含义。

· 如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写。

· 通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用 strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。常 用的量词后缀有:First(一组变量中的第一个)、Last(一组变量中的最后一个)、Next(一组变量中的下一个变量)、Prev(一组变量中的上 一个)、Cur(一组变量中的当前变量)。

· 为每个变量选择最佳的数据类型,这样即能减少对内存的需求量,加快代码的执行速度,又会降低出错的可能性。用于变量的数据类型可能会影响该变量进行计算所产生的结果。在这种情况下,编译器不会产生运行期错误,它只是迫使该值符合数据类型的要求。这类问题极难查找。

· 尽量缩小变量的作用域。如果变量的作用域大于它应有的范围,变量可继续存在,并且在不再需要该变量后的很长时间内仍然占用资源。它们的主要问题是,任何类 中的任何方法都能对它们进行修改,并且很难跟踪究竟是何处进行修改的。占用资源是作用域涉及的一个重要问题。对变量来说,尽量缩小作用域将会对应用程序的 可靠性产生巨大的影响。

关于常量的命名方法,在JAVA代码中,无论什么时候,均提倡应用常量取代数字、固定字符串。也就是 说,程序中除0,1以外,尽量不应该出现其他数字。常量可以集中在程序开始部分定义或者更宽的作用域内,名字应该都使用大写字母,并且指出该常量完整含 义。如果一个常量名称由多个单词组成,则应该用下划线“_”来分割这些单词如:NUM_DAYS_IN_WEEK、MAX_VALUE。




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java必懂之命名规范 的相关文章

  • Java 基本类型和包装类型侧重学习笔记(基础)

    包装类可以是null 而基本类型不可以
  • Android动态权限申请框架

    XmPermissions 项目介绍 Android动态权限申请框架 Github地址 https github com lhm0603 XmPermissionsProject 使用说明 XmPermissions 支持 Android
  • Java 常用命令、文档注释、命令行参数

    目录 注释 常用命令 生成API文档 命令行参数 注释 单行注释 多 行 注 释 文档注释 一般标注在类 接口 对外暴露的成员上 描述功能 使用说明 订单业务服务 author chy xxx xxx com version 1 0 sin
  • Java句柄与指针

    java中的句柄分为两种 对象句柄 jvm中对象访问句柄 一 对象句柄 句柄 一个唯一的整数 作为对象的身份id 区分不同的对象 和同类中的不同实例 程序可以通过句柄访问对象的部分信息 句柄不代表对象的内存地址 在Java中的任何东西都可以
  • Java 初级其它类学习笔记(基础)

    外部类和内部类 外部类的封装等级只有以下两种形式 1 public class 外部类名 有public修饰符的外部类属于对外公开的 文件类 即 java文件名与此类名保持一致 2 class 外部类名 缺省 修饰的外部类属于普通类 而非
  • 面试必懂之数组排序法总结

    1 寄语 大家在理解的过程中 可以先理解排序的原理 然后按照自己的理解用代码的方式去实现 在写代码的过程中 必要时可以自己去据一个简单一点的数组 在脑海中想想排序的过程 也可以一步一步打印 看结果 这篇文章是我在网上找的 有原理图 但是原文
  • JAVA基础:线程池的使用

    目录 1 概述 2 线程池的优势 2 1 线程池为什么使用自定义方式 2 2 封装的线程池工具类有什么好处 3 线程池的七大参数 3 线程池的创建 3 1 固定数量的线程池 3 2 带缓存的线程池 3 3 执 定时任务 3 4 定时任务单线
  • Java中的DatagramPacket与DatagramSocket的初步

    1 基本概念 a DatagramPacket与DatagramSocket位于java net包中 b DatagramPacket表示存放数据的数据报 DatagramSocket表示接受或发送数据报的套接字 c 由这两个类所有构成的网
  • java数组之二分查找法(折半查找)

    二分法就是用折半的思想 屁话不多说 上源码 public class BinarySearch 二分查找法 折半 折半查找 使用条件 必须是有序数组 需要三个变量 int min 0 int max 数组 length int mid mi
  • 【Java】运算符

    我不去想是否能够成功 既然选择了远方 便只顾风雨兼程 汪国真 目录 1 认识运算符 1 1 认识运算符 1 2 运算符的分类 2 算术运算符 2 1 四则运算符 2 2 复合赋值运算符 2 3 自增 自减 运算符 3 关系运算符 4 逻辑运
  • 使用JAVA控制AD域进行基本的操作详解

    前段时间 我接到了一个新任务 使用JAVA控制AD域进行基本的操作 经几天摸索也看来多位博友的代码 现在摸索出了一套较为详细的Java操控AD域的方法 废话不多说 现进入正题 一 安装域控服务器 什么是域控服务器我就不多说了 请各位自行百度
  • 比较器

    Comparator比较器 Collcetion工具集中的sort public static
  • java实现文件读入、读出功能

    一 文档读取 1 将文件读取为String 2019 12 26 将文档打开 并将文档内容读入String中 public static String TxtToString File file String result try Buff
  • java必懂之"=="与equals的区别

    屁话不多说 直接上代码 equals和关系运算符 的区别 author 刘威辰的秘密花园 1 用在基本数据类型boolean a b 2 判断引用是否指向同一个地址且内容是否相同 equals 1 用于判断两个变量是否对同一个对象的引用 即
  • 封装

    1 生活中封装 快递 外卖 电脑机箱 2 java中封装 隐藏类内部的细节 对外部提供一些访问细节的方法 3 封装例子 方法 类 属性 4 封装好处 提高代码复用性 提高代码安全性 提高代码易用性 5 实现步骤 1 隐藏内部细节 属性 2
  • 数据结构与集合之(1)ArrayList 与 Arrays

    数据结构是指逻辑意义上的数据组织方式及其处理方式 从 直接前驱 和 直接后继 个数的维度来看 大体可以将数据结构分为以下四类 1 线性结构 0 至 1 个直接前驱 和 直接后继 线性结构包括 顺序表 链表 栈 队列等 2 树结构 0 至 1
  • Java 中的自动装箱和拆箱详解

    目录 1 Java 中的自动装箱 2 Java 中的自动拆箱 3 自动装箱和拆箱总结 4 在Java中怎样避免自动装箱和拆箱 1 Java 中的自动装箱 自动装箱是 Java 编译器在基本类型和它们对应的包装类之间进行的自动转换 例如 将
  • ConcurrentHashMap源码解读

    曾经研究过jkd1 5新特性 其中ConcurrentHashMap就是其中之一 其特点 效率比Hashtable高 并发性比hashmap好 结合了两者的特点 集合是编程中最常用的数据结构 而谈到并发 几乎总是离不开集合这类高级数据结构的
  • Java 之 认识String类

    目录 一 String类的重要性 二 常用方法 1 字符串构造 2 String对象的比较 3 字符串查找 4 转化 5 字符串替换 6 字符串拆分 7 字符串截取 8 其他操作方法 9 字符串的不可变性 10 字符串修改 三 String
  • 【JAVA日志框架】JUL,JDK原生日志框架详解。

    前言 Java日志体系混乱 Java日志框架系列 清晰简洁整理好整个Java的日志框架体系 第一篇 JDK原生日志框架 JUL 目录 1 概述 2 日志级别 3 配置 4 继承关系 1 概述 日志框架的核心问题 日志是用来记录应用的一些运行

随机推荐

  • DCGAN生成动漫头像(附代码)

    DCGAN 顾名思义 就是深度卷积生成对抗神经网络 也就是引入了卷积的 但是它用的是反卷积 就是卷积的反操作 我们看看DCGAN的图 生成器开始输入的是噪声数据 然后经过一个全连接层 再把全连接层的输出reshape 然后经过反卷积 判别器
  • 链表-单向链表、双向链表、链表反转、删除链表指定指定值

    目录 单向链表 双向链表 链表反转 删除链表中指定的所有值 单向链表 package basic linkedList public class SingleNode public SingleNode next public int va
  • 关于idea导入gradle工程,出现sync failed的问题

    在 精通Spring MVC4 这本书中 作者通篇采用gradle来作为项目构建工具 当我们下载下来随书源码后 想导入到idea中 发现idea控制台正在syncing 在第三步configure时一直出错 有时候依赖下载不下来 你到mav
  • c编译时的错误:程序中有游离的‘\240’‘\302’‘\XXX 时解决方案

    偶尔从网上看到不错的源码 想研究下 不幸编译时遇到 错误 程序中有游离的 240 302 之类的错误 大量的源码不可能再全部重敲一遍 经过一番研究 终于让我找到简单的解决方案 还是本着让后人少走弯路的想法 分享下 首先 编译器提示的 xxx
  • 西门子S7协议格式解析

    文章目录 简介
  • 基于FPGA的超声波测距

    文章目录 一 项目框架 二 超声波测距模块 三 串口模块 1 串口发送模块 2 串口发送控制模块 四 蜂鸣器模块 五 vga显示模块 1 vga协议驱动代码 2 vga数据控制模块 六 数码管 1 数码管段选控制 2 数码管位选 七 顶层文
  • Vue与ElementUI的v-loading控件

    Vue与Element的v loading控件 在需要添加loading动画的组件中加入v loading xxx xxx为true时表示加载 false时关闭加载 默认样式如下 如果要修改样式或者添加文字 则使用element loadi
  • qt调用图片并自适应界面大小显示

    一 前言 记录qt使用图片打开 查看和关闭等操作 实现点击按键 打开选择的指定位置图片 有缩放显示 并可以点击放大按键放大图片 放大后图片自适应电脑窗口大小 大于窗口尺寸会根据最大宽和高缩放 小于窗口尺寸就按原比例居中显示出来 二 环境 w
  • chromedriver不在路径的解决办法

    from selenium import webdriver driver webdriver Chrome 错误信息 WebDriverException Message chromedriver executable needs to
  • BUUCTF-Secret File

    Secret 意为秘密 可知我们需要在网页中寻找到隐藏的flag文件 启动环境打开靶机 直接查看源码 发现一个文件 打开后点击 secret 但是会直接跳转到 end php 并且提示查阅结束 说明页面跳转过快 需要手动抓放包来查看 经过拦
  • 微信 Android 模块化架构重构实践(上)

    转自 https cloud tencent com developer article 1005631 作者 carlguo 微信Android架构历史 微信Android诞生之初 用的是常见的分层结构设计 这种架构简单 清晰并一直沿袭至
  • 解决mysql链接时报错Authentication plugin ‘caching_sha2_password‘ cannot be loaded的问题

    1 打开命令提示符 2 输入 cd C Program Files MySQL MySQL Server 8 0 bin 3 进入到C Program Files MySQL MySQL Server 8 0 bin gt 目录之后 键入
  • NLP学习(二)中文分词技术

    运行平台 Windows Python版本 Python3 x IDE PyCharm 一 前言 这篇内容主要是讲解的中文分词 词是一个完整语义的最小单位 分词技术是词性标注 命名实体识别 关键词提取等技术的基础 本篇博文会主要介绍基于规则
  • Windows中账户没有登录的情况下程序开机自启动

    windows打开任务计划程序 开始菜单 所有程序 管理工具 任务计划程序 打开后点击右边创建任务 在常规界面填写启动名称描述等信息 安全选项勾选不管用户是否登录都要运行 我这里为了保险起见还勾选了使用最高权限 在触发器界面选择新建 开始任
  • c++运算符

    运算符 作用 用于执行代码的运算 1 算术运算符 下表显示了 C 支持的算术运算符 假设变量 A 的值为 10 变量 B 的值为 20 则 运算符 描述 实例 把两个操作数相加 A B 将得到 30 从第一个操作数中减去第二个操作数 A B
  • 程序员学数据库那些事儿

    最近有人问 是问 不是请教 我数据库怎么学 要学哪些 以下我谈一些个人想法 其实我的数据库知识不是很扎实 真心的 当年我学这个东西时某个大神告诉我 学会sql server 走遍天下都不怕 事实上 这几年如果只会sqlserver根本到哪都
  • C++ 构造函数和析构函数是否可以继承?

    先看一个例子 cpp view plain copy include
  • 架构师需要了解的Paxos原理、历程及实战

    架构师需要了解的Paxos原理 历程及实战 数据库高可用性难题 数据库的数据一致和持续可用对电子商务和互联网金融的意义不言而喻 而这些业务在使用数据库时 无论 MySQL 还是 Oracle 都会面临一个艰难的取舍 就是如何处理主备库之间的
  • linux下部署redis

    基础知识 1 Redis的数据类型 字符串 列表 lists 集合 sets 有序集合 sorts sets 哈希表 hashs 2 Redis和memcache相比的独特之处 1 redis可以用来做存储 storge 而memcache
  • Java必懂之命名规范

    定义规范的目的是为了使项目的代码样式统一 使程序有良好的可读性 在此我从网上查找了一篇写得比较好的文章 来让大家学习 顺便自己复习一下 有时候自己写的类名不符合规范 Eclipse会出现黄色叹号 就是表示你的命名不规范 然而 规范不是规定