首页 考试吧论坛 Exam8视线 考试商城 网络课程 面授课程 模拟考试 实用文档 缤纷校园 英语学习
2010考研 | 自学考试 | 成人高考 | 专 升 本 | 法律硕士 | MBA/MPA | 中 科 院
四六级 | 商务英语 | 公共英语 | 职称日语 | 职称英语 | 博思 | 口译笔译 | GRE GMAT | 日语 | 托福
雅思 | 专四专八 | 新概念 | 自考英语 | 零起点英韩语 | 在职申硕英语
在职攻硕英语 | 成人英语三级
等级考试 | 水平考试 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
公务员 | 报关员 | 报检员 | 外销员 | 司法考试 | 导游考试 | 教师资格 | 国际商务师 | 跟单员
单证员 | 物流师 | 价格鉴证师 | 银行从业资格 | 证券从业资格 | 人力资源管理师 | 管理咨询师
期货从业资格 | 社会工作者
会计职称 | 注会CPA | 经济师 | 统计师 | 注册税务师 | 评估师 | 精算师 | 高会 | ACCA | 审计师
法律顾问 | 会计证
建造师一级二级) | 造价师 | 监理师 | 安全师 | 咨询师 | 结构师 | 建筑师 | 安全评价师
估价师房地产估价土地估价) | 设备监理师 | 岩土工程师 | 质量资格 | 房地产经纪人 | 造价员
投资项目管理 | 土地代理人 | 环保师 | 环境影响评价 | 物业管理师 | 城市规划师 | 公路监理师
公路造价工程师 | 招标师
执业护士 | 执业医师 | 执业药师 | 卫生资格
 丹丹云 
您现在的位置: 考试吧(Exam8.com) > 软件水平考试 > 心得技巧 > 正文

JAVA的编程风格

    很久以来都在体会着JAVA的风格,现在做一简单陈述,希望大家多提宝贵意见。

    对于一种好的编程语言,学习它的编程风格是很重要的。每种语言都有自己的编写和注释约定,当然所有语言都建立在最基本的约定之上。编程中最重要的并不是让代码按自己希望的方式运行,而是程序中那种自明的编程风格(这对于程序员的益处相信众多程序员都身有体会)!但这还不够,程序还应该具有可读、相对持久和可维护性。可读性非常重要,因为你不希望自己以前的作品在之后的阅读中给自己留下障碍,当然,更重要的是自己的程序能让其他程序员读懂并且修改。

    下面我把工作中所理解的java风格做一简单总结,这是我所理解的好的编程风格和应用中我们应当如何使用java编写自己的代码的小Guide。这并不完全,希望大家帮我陆续总结各自的经验。

    一般性概述

    好的编程风格固然重要,但是你一定听说过一些程序员的个人风格。其实我们完全不必为那些所谓条条框框所累,但是作为原则是我们至少不能打破这些常规。我们应该在保持自己风格的同时尽量的把自己与编程潜原则靠拢。

     可读性很容易达到,比如,让自己的代码缩排排列、名字采用描述性但不要过长(短名应仅仅用在非远程)、特殊名称比如pi应当被定义为final类型。模块性是编程需要注意的另一重点,把代码划分到类里,在类中把功能划分到方法中,别让一个类太大,否则在使用、修改和理解上都会造成不必要的麻烦,方法也一样,如果一个方法长度超过50行,它产生错误的概率将接近100%,尽量把大方法划分为小方法,编程中为避免重复编写,还应尽量调用JAVA标准类库。

    尽量避免在写代码和注释时使用不同语言,经常见到论坛有朋友询问诸如在java中调用c、调用php、调用shell之类的问题,其实在编程中,我们应尽量使用一种语言去完成事情。另外就是不必最优化自己的代码,应该选择相对较优的算法就可以了。

    类、方法和fields

    类应体现出某种物质的基本概念,比如要编程实现“汽车”的组成,那么所有的汽车都可以用类Car实现。这个类应当包括域描述、属性描述和car的状态(color, number of doors, age等)和由car可完成的操作(getColor, setColor等)。为了提高类的可重用性,不要在类中有过多的描述,当然这也会增加错误产生的机会。

    类名首字母大写,比如Date, String, Hashtable等 ... ...

    类如下定义:(未使用Javadoc做注释):

代码:

public class Car {

 /* Instance variables are placed either in the beginning
    or at the end of the class */

 private int age;
 private Color color;
 
 /* The constructor should be placed in the beginning */

 public Car(int age, Color color) {
   this.age = age;
   this.color = color;
 }  

 /* Example method */
 public int getAge() {
   return age;
 }  
 
 /* The main method is optional, but looks like this.
    If it exists, it is either the first or the last
    method in the class */
 
 public static void main(String [] args) {
   ...

 }
}


    注意类名和大括号间的空格!

    方法

    方法一般定义为public。当然,如果方法仅仅在当前类用到可以定义为private,而如果希望一个子类沿用这个方法则不同,这时候的方法应定义为protected。

    java中的方法定义很有趣,它们一般小写字母开头,如果有两个字组成,第二个字的首字母则大写。因此名字的描述性是至关重要的。这使你不用阅读整篇代码来判断这是一个什么方法。在给自己的方法取名时应尽量不要太短或者太长,另一个需要注意的是大多方法使用动词(动宾短语)。 

    例如:
    public void eat() {}
    public void eatBananas() {}

    Selector(选择器)方法有get前缀,后缀是它们将要get的,比如
    public int getBananas() {}

    Mutator(存取器)方法则有set前缀,后缀则是他们要set的,比如
    public void setBananas(int amount) {}
    注意mutators大多无返回值。

    方法的参数应当以如下方式给出:
    public void aMethod(type parameter1, type parameter2, ... , type parametern) {}

    如果参数过长,也可以断开为几行,应对齐向下排列如:
    public void aMethod(type parameter1, type parameter2,... ,
                   type parametern, type parameter n+1,... ,
                   type parameterm, type parameter m+1) {}

    另外要注意类的左束括号应在方法的右束括号之后而非下一行:

代码:

public int aMethod() {
 int i = 0;
 if(i == 0)
   System.out.println("success!");
}


    为了文件可读性好,还要注意语句最好写在同一行,当然一行写不下是可以断行的,比如行字母超过80。

    fields

    比如变量,如果不希望它永久有效,应设为private。如果一个变量在类中不发生任何动作(比如数据结构中的node)则可以设置为public,常量一般声明为public。如果不能确定一个变量到底该声明为什么,应暂且声明为private。

    field的名字一般使用小写字母,不要使用下横线或其他特殊字符。 如果变量包含两个字,那么第二个字的首字母大写。比如:

    int i, j, k;
    Date date;
    double myField;

    常量一般全部大写,也可以包含下横线:

    public static final int MAX_SIZE_OF_DATABASE

    fields的名字通常为名词。较重要的fields更应具备描述性,比如程序中包含一个游戏的得分,那可以用score来代表。如果变量变化较频繁,那使用一个单一字符来代表就ok了:

i, j, k 通常代表整数
r, t, u, v, w 通常代表实数
x, y, z 通常是并列出现或代表浮点数
s, s1, s2, 通常代表字符串
c, ch 通常代表字符
f, file 通常代表文件
tmp, temp 通常代表临时变量
ctr, cnt, cntr 一般代表计数器(如果i, j, k这些变量已被使用)
dummy, foo, bar 一般代表哑元变量
args 是main-method的主参数名

    缩排与换行

    每行长度不得超过80字符。如果需要可以折行时,也应当与上一行有共同的缩排距离。代码应如何交错、如何建立新行、在哪里建立允许、哪里不允许都有一些一般约定,缩排空格一般为2个或4个空格。

    条件表达式

    如果见到如下语法表达式:

代码:

if (expr)          
 statement1;
else
 statement2;


    代码行向右错排两个空格如上所示。

    如果在一个表达式中有超过一条的声明,则需要大括号:

代码:

if (expr){
  statement1;
  statement2;
} else{
  statement3;
  statement4;
}


   

1 2 3 下一页
转帖于:软件水平考试_考试吧
文章搜索
JAVA的编程风格网友评论网友评论
版权声明 --------------------------------------------------------------------------------------
    如果软件水平考试网所转载内容不慎侵犯了您的权益,请与我们联系,我们将会及时处理。如转载本软件水平考试网内容,请注明出处。