请问那位哥们能够提供关于iso国际论证java方面的资料?我有c方面的

olvest4000 2003-01-15 09:17:56
一、规范格式定义

1. 程序文件头定义
2. 函数/过程/类头定义
3. 常量/变量名定义
4. 注释要求
5. 书写格式
l 缩进格式
l 页宽
l 大括号
l 小括号
l 标点符号
l 空格

二、文件头说明
文件说明一般是放在源文件头部的一段说明, 主要包括此文件的作用说明, 版本,编写人和最後的修改人以及编写和修改的日期, 最后是版权声明, 以说明源代码的权力所属。示例如下:
/* -------------------------------------------------------------------
文件名: share_add.h
功能描述: Declaration of share_add functions.
版本号: 0.92
原作者: kkkk
创建日期:2002-6-23
版权: 2
修改记录:
(1)2002.08.1,修改了classA.method(),增加了什么功能;
------------------------------------------------------------------- */

三、头文件定义
1、定义 package/imports
(1)package 行要在 import 行之前使用,package 和 import 之间留一空行;
(2)import 中系统标准的包名要在本地的包名之前,标准包和本地包之间留一空行;
(3)每一个 package 和 import 用单独一行完成;
举例:
package hotlava.net.stats;
...

import java.io.*;
import java.util.Observable;
...

import myjava.util.Application;


2、定义 include/define
(1)include 要在 define 之前定义,include 和 define 之间留一空行;
(2)include 中系统标准库时要在本地库之前定义,标准库和本地库之间留一空行;
(3)每一个 include 和 define 用单独一行完成;
举例:
#include <stdio.h>
#include <stdlib.h>
...
#include "config.h"
#include "myfunction.h"
...
#define MYSQL_DATABASE "mydatabase"
#define MYSQL_TABLE "mytable"

四、命名规则
定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性)。
1、 变量命名的原则:
以最少的字母达到最容易理解的意义,命名统一用英文字母、数字和下划线的组合。结合微软命名法和匈牙利命名法定义,变量命名格式为:objRole,ojb 为变量的类型、有效范围等描述,只有字母和下划线,Role为变量体的说明,并尽量按单词的英语翻译为名称,以大写字母开头。
局部变量的命名应该短小精悍. 假如你有一个随机的整数循环计数器,它有可能有"i",如果没有任何可能使得它能被误解的话,将其写作"loop_counter"是效率低下的,所以定义了i,j,k,n,m :用作循环计数等临时变量。c1,c2… :用户记录数量的临时变量。tmps1,tmps2…:用于临时存放的字符串变量,如:
//一段循环程序:
for(var I = 0,c1 = count…;I = c1;I++)
{
for(var j = 0,c2 = count…;j = c2;j++)
{
……
}
……
}

关于Java 中Class 变量的命名,由于Java中的Class种类繁多,不可能一一列举其obj描述,但一定要遵循这样的原则:obj用2-3个小写字母的缩写描述对象的Class,后面的单词用大写字母开头。要注意obj不能与下面obj的描述相冲突,例如:
//
public static final Colour _s_f_clrBLACK = new Colour(0, 0, 0);
FileOutputStream fosMyFile = new FileOutputStream(projectFile);

关于obj的描述如下:
类型 Obj
int i
unsigned int ui
bool/boolean bl
long l
unsigned long ul
short n
unsigned short un
byte b
Char c
Unsigned uc
Float f
Double d
String s
指针 p
数组变量 ar
全局变量 m_
外部变量 e_
static _s_
常量/final _f_
volatile _v_
transient _t_
Package 的命名 pkg
Class的命名 cls



举例如下:
//外部变量
extern char * e_pcAddr;
//全局变量
int m_iMyAge;
long m_lMyWokeTime;
char * m_pcMyName;
……
int GetName(){
//局部变量
int iNameLength;
byte bFirstLetter;
bool bIsMy;
}

//CLASS的命名
class clsColour {
public static final Colour _s_f_clrBLACK = new clsColour(0, 0, 0);
public static final Colour _s_f_clrRED = new clsColour(0xFF, 0, 0);
public static final Colour _s_f_clrGREEN = new clsColour(0, 0xFF, 0);
public static final Colour _s_f_clrBLUE = new clsColour(0, 0, 0xFF);
public static final Colour _s_f_clrWHITE = new clsColour(0xFF, 0xFF, 0xFF);
}
public class clsWebName {
public static void main( String args[] ){
int I = 1,
int iPORT = 8080;
byte[] arbBuffer;
ServerSocket sesServer = null;
……


2、关于CLASS/(类)函数命名及定义格式:
1、CLASS定义:
(1)命名要贴切,要体现对CLASS对象的描述。
(2)Class 的名字必须由大写字母开头而其他字母都小写的单词组成。
(3)每一个CLASS定义前都应该有用来解释类的注释。
(4)对类定义时,extends 和 implements 应该包含在不同的行中。
(5)参数的命名必须和变量的命名规范一致。
举例:
/*
功能描述:在这个位置列出OurColour类的主要功能;
*/
class OurColour
extends Colour
implements MyInterface
{
.........
}
2、(类)函数定义:
(1)命名要贴切,要体现函数实现的功能和处理的对象。
(2)每个单词必须由大写字母开头而其他字母都小写。
(3)(类)函数要把动词放在名词之前。
(4)(类)函数定义前需要有:功能描述, 返回值(如果是函数的话)和输入参数说明(类型,可能的值域)等的注释作为对该函数的解释。
(5)参数的命名必须和变量的命名规范一致。
(6)函数的定义应尽量在一行内完成,但参数太多时,应该以一个完整函数的参数做换行,语句折行后,
应该在原来的语句的参数起始处开始。
举例:
/*
功能描述:在这个位置列出OurColour类的主要功能;
*/
class OurColour
extends Colour
implements MyInterface
{
/*
功能描述:获取某样东西的数量;
参数描述:输入东西的名称;
返回值描述:输出东西的数量;
*/
int GetNumber(string sThingsName)
{
.....
}
.........
}

五、注释
注释是一件很好的事情, 但是过多的注释也是危险的,不要试图去解释你的代码是注释如何如何的好: 你应该将代码写得更好,而不是花费大量的时间去解释那些糟糕的代码.
通常情况下,你的注释是说明你的代码做些什么,而不是怎么做的. 但在重要的局部变量声明, 重要的算法实现, 重要的流程分支, 重要的条件判断部分都应该做注释工作;注释必须清楚明确, 含糊的注释有时比没有注释更让人迷惑。对于函数的描述包括:作用描述, 返回值(如果是函数的话)和输入参数说明(类型,可能的值域).示例如下:
//-------------------------------------------------------------------
// Name: CParticle::Update
// Note: If the particle dies in the update, False is returned
// In: fTimeDelta
// Out: pImageBuf
// Return: return false means update fail
//-------------------------------------------------------------------
bool CParticle::Update(float fTimeDelta,char* pcImageBuf)
要求:
(1)对单行注释使用:" //... " ,多行注释使用:" /* ... */ ";
(2)对于完成某一小功能的代码段,要求在开头有一统一的注释,说明其功能;
(3)注释密度要求每25行代码至少有一行注释;

六、缩进格式
理由是: 缩进的大小是为了清楚的定义一个块的开始和结束.特别是当你已经在计算机前面呆了20多个小时了以后,你会发现一个大的缩进格式使得你对程序的理解更容易. 每一个语法段落使用一个4个空格宽的Tab字符作为缩进

七、页宽
页宽应该设置为80字符. 源代码一般不会超过这个宽度, 并导致无法完整显示, 但这一设置也可以灵活调整. 在任何情况下, 超长的语句应该在一个逗号或者一个操作符后折行. 一条语句折行后, 应该比原来的语句再缩进2个字符.

八、大括号的位置
对于大括号的处理. 同缩进大小不同,几乎没有什么理由去选择一种而不选择另外一种风格,但有一种推荐的风格,它是 Kernighan 和 Ritchie的经典的那本书带来的,它将开始的大括号放在一行的最后,而将结束大括号放在一行的第一位,如下所示:
if (x is true) {
we do y
}

需要注意的是结束的括号在它所占的那一行是空的,除了它跟随着同一条语句的继续符号.如 "while"在 do-while循环中,或者"else"在if语句中.如下:

do {
body of do-loop
} while (condition);
以及
if (x == y) {
...
} else if (x > y) {
...
} else {
...
}
另外,注意到这种大括号的放置方法减小了空行的数量,但却没有减少可读性.于是,在屏幕大小受到限制的时候,你就可以有更多的空行来写些注释了.

九、小括号
左括号和后一个字符之间不应该出现空格, 同样, 右括号和前一个字符之间也不应该出现空格. 下面的例子说明括号和空格的错误及正确使用:
CallProc( AParameter ); // 错误
CallProc(AParameter); // 正确
不要在语句中使用无意义的括号. 括号只应该为达到某种目的而出现在源代码中。下面的例子说明错误和正确的用法:
if ((I) = 42) { // 错误 - 括号毫无意义
if (I == 42) or (J == 42) then // 正确 - 的确需要括号

十、空格
空格的主要用途是用于双目操作符、系统关键字等。如:
int I = 0; //双目操作符。
I = I + 10;//=,+都是双目操作符。
I++; //单目操作符不需要使用空格。
If (…) //用于系统关键字
For (…){…} //用于系统关键字

十一、标点符号
= 等号两边要保留空格
, ; : ? 等标点符号左边应不留空格,若右边没有结束,需要保留一个空格。

十二、提示信息定义
程序在执行过程中,经常会有文字的输出(包括错误信息和提示信息),如果这些
...全文
21 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
olvest4000 2003-01-15
  • 打赏
  • 举报
回复
还有这个网址!http://www-900.ibm.com/developerWorks/cn/java/java_standard/index.shtml

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧