该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

所有的程序开发手册都包含了各种规则。一些习惯自由程序人员可能对这些规则很不适应,但是在多个开发人员共同写作的情况下,这些规则是必需的。这不仅仅是为了开发效率来考虑,而且也是为了后期维护考虑。

命名规范

定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性)

Package 的命名

Package 的名字应该都是由一个小写单词组成。

Class 的命名

Class 的名字必须由大写字母开头而其他字母都小写的单词组成

Class 变量的命名

变量的名字必须用一个小写字母开头。后面的单词用大写字母开头。

Static Final 变量的命名

Static Final 变量的名字应该都大写,并且指出完整含义。

参数的命名

参数的名字必须和变量的命名规范一致。

数组的命名

数组应该总是用下面的方式来命名:

byte[] buffer;

而不是:

byte buffer[];

方法的参数

使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:

SetCounter(int size){

this.size = size;

}

Java 文件样式

所有的 Java(*.java) 文件都必须遵守如下的样式规则

版权信息

版权信息必须在 java 文件的开头,比如:

/**

* Copyright ? 2000 Shanghai XXX Co. Ltd.

* All right reserved.

*/

其他不需要出现在 javadoc 的信息也可以包含在这里。

Package/Imports

package 行要在 import 行之前,import 中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。

package hotlava.net.stats;

import java.io.*;

import java.util.Observable;

import hotlava.util.Application;

这里 java.io.* 使用来代替InputStream and OutputStream 的。

Class

接下来的是类的注释,一般是用来解释类的。

/**

* A class representing a set of packet and byte counters

* It is observable to allow it to be watched, but only

* reports changes when the current set is complete

*/

接下来是类定义,包含了在不同的行的 extends 和 implements

public class CounterSet

extends Observable

implements Cloneable

Class Fields

接下来是类的成员变量:

/**

* Packet counters

*/

protected int[] packets;

public 的成员变量必须生成文档(JavaDoc)。proceted、private和 package 定义的成员变量如果名字含义明确的话,可以没有注释。

存取方法

接下来是类变量的存取的方法。它只是简单的用来将类的变量赋值获取值的话,可以简单的写在一行上。

/**

* Get the counters

* @return an array containing the statistical data. This array has been

* freshly allocated and can be modified by the caller.

*/

public int[] getPackets() { return copyArray(packets, offset); }

public int[] getBytes() { return copyArray(bytes, offset); }

public int[] getPackets() { return packets; }

public void setPackets(int[] packets) { this.packets = packets; }

其它的方法不要写在一行上

构造函数

接下来是构造函数,它应该用递增的方式写(比如:参数多的写在后面)。

访问类型 ("public", "private" 等.) 和 任何 "static", "final" 或 "synchronized" 应该在一行中,并且方法和参数另写一行,这样可以使方法和参数更易读。

public

CounterSet(int size){

this.size = size;

}

java的程序编码_Java 程序编码规范(初学者要牢记)相关推荐

  1. java菱形乱码 编码_JAVA:编码与乱码问题

    一.为什么要编码? 由于人类的语言太多,因而表示这些语言的符号太多,无法用计算机的一个基本的存储单元----byte来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解. byte一个字节即8 ...

  2. linux java字符集编码_Java字符集编码

    1.  概述 在 下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicode编码为"4e2d 65 ...

  3. java字符转变汉子_java字符编码转换研究(转) 第一部分收藏

    未找到原出处,请见谅. 1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2 ...

  4. java字符集编码_Java字符集编码

    1.概述 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicode编码为"4e2d 6587& ...

  5. java语言执行过程_Java程序的运行过程(执行流程)分析

    万事知其然,要知其所以然,所以本节带大家来详细了解一下 Java 程序的执行过程.从<使用记事本编写运行Java程序>一节的案例可以看出,Java 程序的运行必须经过编写.编译和运行 3 ...

  6. ansi编码_Java 字符编码

    点击上方蓝字关注我们! 作者介绍 王云静,Java 开发工程师,2018 年 7 月加入去哪儿网,目前在目的地 - 呼叫中心.曾获得过 ACM 亚洲区域赛铜牌. ----- 基本概念 字符集 字符(C ...

  7. java程序设计教程视频_Java程序设计标准教程:DVD视频教学版

    第1章 搭建Java开发环境. 001 1.1 Java语言的产生与发展 002 1.2 Java语言的特点 002 1.3 搭建Java开发环境 003 1.3.1 下载JDK 003 1.3.2 ...

  8. java sql编码_java+sql 编码 UTF-8、ISO-8859-1、GBK

    java 编码 UTF-8.ISO-8859-1.GBK Java支持UTF-8.ISO-8859-1.GBK等各种字体编码,可笔者发现Java中字体编码的问题仍难倒了不少程序员,网上虽然也有不少关于 ...

  9. java程序编译_Java程序的编译过程

    Java的编译期是一个模糊的概念,需要具体分析. 将 *.java文件转为 *.class的过程称为编译器的前端(前端编译).例如:JDK的javac编译器. 把字节码( *.class文件) 转变为 ...

最新文章

  1. sqlite复制数据主键重复_Flutter 数据库指南
  2. 讨论:Service层需要接口吗?
  3. 除了Java,为什么我们要学Python?
  4. 润乾V5部署url应用名为空applet无法打印解决方案
  5. ASP。NET 中SQL防注入攻击
  6. Django-Json 数据返回
  7. 给其他账户访问mysql的权限,将postgresql数据库的权限授予其他用户
  8. 一文详解CSS常见的五大布局
  9. Linux平台安装Clion
  10. Flutter进阶—质感设计之进度条
  11. intel服务器最新主板芯片组,intel主板芯片组的介绍大全
  12. JGJ254-2011 建筑施工竹脚手架安全技术规范 免费下载
  13. 多自由度机械臂运动学正-逆解|空间轨迹规划控制|MATLAB仿真+实际机器调试
  14. HTML CSS整理笔记(建议收藏)
  15. ye读春秋左传系列视频讲解
  16. 到底要学前端还是后端?
  17. 专治选择困难症:Mate 10 Pro和P20 Pro之间如何选?
  18. KubeSphere 社区双周报 | KubeKey v3.0.2 发布 | 2022-11-24
  19. 第一次当管理时,为啥会有很强的挫败感?
  20. 2-3 编写一个三角形类

热门文章

  1. java int在那个包_int intValue()
  2. Python: PyCharm中导入matplotlib时报错:“Backend Qt5Agg is interactive backend”的解决方案
  3. 染色产品常见疵病分析
  4. 马化腾提问_互联网融合创新会带来哪些改变_知乎回答部分总结
  5. Python爬虫技巧!网站有反爬?我们有selenium!
  6. SQL SERVER LEFT JOIN, INNER JOIN, RIGHT JOIN
  7. 指针知识(四):指针数学计算
  8. Silverlight toolkit 中ListPicker控件的用法【转】
  9. Linux的目录说明
  10. CakePHP中文手册【翻译】-基本概念