JavaSE二次学习之标识符和编程命名相关的内容
前段时间阿里开源了《阿里巴巴 JAVA 开发手册》,里面详细叙述了有关编程命名、sql规约、工程规约等内容,作为一个初学者,只讨论一下-编程规约-的部分。
这几天又重新回去看了看JavaSE的部分,使用的是毕向东的系列视频,别嫌弃人家是培训机构,这个系列的课程确实讲的很好,而且经典基础的部分改动很少,是不?
一、一般的参考书上对标识符定义的要求以下几个:
阿拉伯数字0-9,不做开头;
字符a-z,大小写皆可;
符号‘_’‘$’可用,其他符号不可用,可做开头;
非关键字;
这几个要求挺好满足的,很容易注意到,也很容易记住,但是这还不够,下面是几条我特别赞同的。
(1)Java里禁止使用那两个符号_ 、作为开头。(所以这里我有些费解)
(2)包名、类名、方法名、常量名、变量名,这几个点很好理解。
包名采用三段式命名,默认全部小写
【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
类名,首字母大写,并且遵循驼峰形式
【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外: (领域模型的相关命名) DO / BO / DTO / VO 等。
方法名、常量名、变量名(成员,局部),首字母小写,驼峰形式
【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。
有几点不理解的:
1关于不能使用下划线和美元符号作为变量或者方法开头的规则,为什么要这样用呢,记得初学的时候明确写着可以用,而且javascript和python都在大量使用这类命名方式。
2关于数组的命名方法,‘7. 【强制】中括号是数组类型的一部分,数组定义如下: String[] args;反例: 使用 String args[]的方式来定义。’,这两种类型的却别大吗?先留下一个坑,以后学静了再来填上。
这份文档的内容很多,对很多内容进行了限定,初拿到这份文档的时候,感觉真是‘繁文缛节’,后来随着学习的深入,意识到这些内容的价值不仅仅是一本关于命名规范的手册,还是对整个团队协作的大改进。
我们都知道Java是强类型语言,本身就制定了很多规范,正式这些规范造就了Java,现在回想那些动态语言,很多地方让人费解,在此留坑,日后再来填上。
JavaSE二次学习之标识符和编程命名相关的内容的更多相关文章
- 孙鑫VC学习笔记:多线程编程
孙鑫VC学习笔记:多线程编程 SkySeraph Dec 11st 2010 HQU Email:zgzhaobo@gmail.com QQ:452728574 Latest Modified ...
- 201871010126 王亚涛《面向对象程序设计(Java)》第十二周学习总结
内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/ ...
- 201871020225-牟星源《面向对象程序设计(java)》第十二周学习总结
201871020225-牟星源<面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
- 毕业设计 之 二 PHP学习笔记(一)
毕业设计 之 二 PHP学习笔记(一) 作者:20135216 平台:windows10 软件:XAMPP,DreamWeaver 一.环境搭建 1.XAMPP下载安装 XAMPP是PHP.MySQL ...
- (十二) 一起学 Unix 环境高级编程 (APUE) 之 进程间通信(IPC)
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- 学习《Python核心编程》做一下知识点提要,方便复习(一)
学习<Python核心编程>做一下知识点提要,方便复习. 计算机语言的本质是什么? a-z.A-Z.符号.数字等等组合成符合语法的字符串.供编译器.解释器翻译. 字母组合后产生各种变化拿p ...
- Python 2.7 学习笔记 面向对象的编程
python是一种面向对象的语言.本文介绍如何用python进行面向对象的编程. 首先我们说下对象和类,类是一种类型的定义,对象是类的实例. 一.内置对象类型(内置类) 其实我们前面已经大量用到了对象 ...
- WCF学习笔记之事务编程
WCF学习笔记之事务编程 一:WCF事务设置 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元: WCF通过System.ServiceModel.TransactionFlowA ...
- 201521123061 《Java程序设计》第十二周学习总结
201521123061 <Java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对 ...
随机推荐
- nyoj_323:Drainage Ditches(网络流入门)
题目链接 网络流入门@_@,此处本人用的刘汝佳的Dinic模板 #include<bits/stdc++.h> using namespace std; const int INF = 0 ...
- MySQL系列(二)---MySQL事务
MySql 事务 目录 MySQL系列(一):基础知识大总结 MySQL系列(二):MySQL事务 什么是事务(transaction) 保证成批操作要么完全执行,要么完全不执行,维护数据的完整性.也 ...
- (转)maven打包时跳过测试
1 运行mvn install时跳过Test 1.1 方法一 <project> [...] <build> <plugins> <plugin> &l ...
- 初学Python(六)——输入输出
初学Python(六)——输入输出 初学Python,主要整理一些学习到的知识点,这次是输入输出. 输入: # -*- coding:utf-8 -*- ''''' python中的输出为print ...
- nodeJS之域名DNS
前面的话 本文将详细介绍域名解析模块DNS 工作原理 打开浏览器,在上方地址栏输入网址的那一刻,这个回车按了之后,发生了很多事情.首先,计算机只懂0和1,也就是说人类的字母网址计算机是不懂的,它只认识 ...
- Ubuntu超好用软件:剪贴板
这个软件的作用就是保存你复制或者剪贴的内容 对于经常复制文字的Ubuntu使用者作用还是比较大的 下面附上安装代码 安装: sudo add-apt-repository ppa:shantzu/cl ...
- 之前同事问到的一道python题目
Python面试题 之前同事问了一道Python题目如下,暂时归类为面试题 题目:把类似'123.456'的字符串转换成浮点型数据 方法一: >>> print '{:.3f}'.f ...
- Python数据可视化Matplotlib——Figure画布背景设置
之前在今日头条中更新了几期的Matplotlib教学短视频,在圈内受到了广泛好评,现应大家要求,将视频中的代码贴出来,方便大家学习. 为了使实例图像显得不单调,我们先将绘图代码贴上来,此处代码对Fig ...
- JavaScript闭包只学这篇就够了
闭包不是魔法 这篇文章使用一些简单的代码例子来解释JavaScript闭包的概念,即使新手也可以轻松参透闭包的含义. 其实只要理解了核心概念,闭包并不是那么的难于理解.但是,网上充斥了太多学术性的文章 ...
- Linux - 简明Shell编程01 - 第一个脚本(HelloShell)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo "hell ...