Android Java类编写规范

本文仅是我个人在实际开发中习惯的编写方式,当然这种方式也是来自很多官方的推荐,所以在一定程度上是可以被模仿套用的。本文将不定期更新~

使用特殊转义序列而不是它的八进制

我们应该用特殊的转移序列,比如:(\b, \t, \n, \f, \r, \”, \’及\),而不是它们对应的八进制,比如:\012

大胆使用非ASCII字符

如果我们在实际中需要用到非ASCII字符,我们当然可以去查表得到他们的转义码,但是没有必要。你可以大胆的在代码中这么写,或者加上注释。应为这样很便于阅读。

String unitAbbrev = "μs";

import不要使用通配符

不要出现类似这样的import语句:import java.util.*;

不要忽略大括号

大括号与if, else, for, do, while语句一起使用,即使只有一条语句(或是空),也应该把大括号写上。

什么时候换行

对于非空块和块状结构,大括号遵循Kernighan和Ritchie风格
(Egyptian brackets):

  1. 左大括号前不换行
  2. 左大括号后换行
  3. 右大括号前换行
  4. 如果右大括号是一个语句、函数体或类的终止,则右大括号后换行; 否则不换行。例如,如果右大括号后面是else或逗号,则不换行。
boolean isShow = true;
        if (isShow) {

        } else {

        }

截断代码换行

如果一行代码太长了,那么可能会需要换行。这时候换行的原则是:在“非赋值运算符”处断开。下面是几个例子:

“+”在下一行

String url = "http://blog.isming.me/2014/10/27/"
                + "google-java-style/";

“&”在下一行

if (changed == true
                & show == true) {

        }

“."在下一行

     Logger
             .init(YOUR_TAG)               // default PRETTYLOGGER or use just init()
             .setMethodCount(3)            // default 2
             .hideThreadInfo()             // default shown
             .setLogLevel(LogLevel.NONE);  // default LogLevel.FULL

变量声明

每次只声明一个变量,不要:int a,b;

推荐下面的方式:

int a;
int b;

数组中的中括号

中括号应该是类型的一部分,不要按照C++的方式来写,而且中括号和左边不要有空格。应该像下面这样:

int[] d

Switch-case中的default

每个switch语句都包含一个default语句组,即使它什么代码也不包含。

Switch-case中的break

如果你的上一个判断和下个判断需要执行的代码是一致的,那么你可以不用break,但必须在原来break的地方加上注释。

switch (input) {
            case 1:
            case 2:
                prepareOneOrTwo();
                // break;
                // fall through
            case 3:
                handleOneTwoOrThree();
                break;
            default:
                handleLargeNumber(input);
        }

限定符的顺序

我们的变量或方法可能有多个限定符,比如public,static什么的,那么请按照如下的顺序进行编写。

public protected private abstract static final transient volatile synchronized native strictfp

eg:

public static final String TAG;

包名的取法

包名全部小写,连续的单词只是简单地连接起来,不能使用下划线。

类名

类名通常是名词或名词短语,接口名称有时可能是形容词或形容词短语。

方法名

方法名通常是动词或动词短语。

异常

一般情况下捕获的异常都是需要打印出log的,但有些异常是我们在已知的,或者在这里出现异常是必然的化,我们可以不加捕获,但需要添加注释。

如果一个捕获的异常被命名为expected,则它可以被不加注释地忽略。下面是一种非常常见的情形,用以确保所测试的方法会抛出一个期望中的异常,
因此在这里就没有必要加注释。

try {
  emptyStack.pop();
  fail();
} catch (NoSuchElementException expected) {
}

Javadoc标记

标准的Javadoc标记按以下顺序出现:@param@return@throws@deprecated, 前面这4种标记如果出现,描述都不能为空。
当描述无法在一行中容纳,连续行需要至少再缩进4个空格。

  /**
     * Adds a {@link Fragment} to this activity‘s layout.
     *
     * @param containerViewId The container view to where add the
     *                        fragment.(换行得有缩进)
     *
     * @param fragment        The fragment to be added.
     */

除了第一个段落,每个段落第一个单词前都有标签<p>,并且它和第一个单词间没有空格。

时间: 2024-10-28 23:07:15

Android Java类编写规范的相关文章

工具类编写规范

本文内容摘抄自晓风轻,链接:https://zhuanlan.zhihu.com/p/29199049 1.定义自己的工具类,隐藏实现,封装/解耦的思想. 尽量不要在业务代码里面直接调用第三方的工具类.这也是解耦的一种体现.如果我们不定义自己的工具类而是直接使用第三方的工具类有2个不好的地方:不同的人会使用不同的第三方工具库,会比较乱.将来万一要修改工具类的实现逻辑会很痛苦. 以最简单的字符串判空为例,很多工具库都有 StringUtils工具类,如果我们使用commons的工具类,一开始我们直

Android开发之——编码规范

1. 前言 这份文档参考了 Google Java 编程风格规范和 Google 官方 Android 编码风格规范.该文档仅供参考,只要形成一个统一的风格,见量知其意就可. 2. 源文件基础 2.1 文件名 源文件以其最顶层的类名来命名,大小写敏感,文件扩展名为.java. 2.2 文件编码:UTF-8 源文件编码格式为 UTF-8. 2.3 特殊字符 2.3.1 空白字符 除了行结束符序列,ASCII水平空格字符(0x20,即空格)是源文件中唯一允许出现的空白字符,这意味着: 所有其它字符串

Java Script 编码规范

Java Script 编码规范 以下文档大多来自: Google JavaScript 编码规范指南 Idiomatic 风格 参考规范 ECMAScript 5.1 注解版 EcmaScript 语言规范, 5.1 版 基本原则: 无论有多少人在维护,所有在代码仓库中的代码理应看起来像同一个人写的. 前言 下面的章节描述的是一个 合理 的现代 JavaScript 开发风格指南,并非硬性规定.其想送出的核心理念是高度统一的代码风格(the law of code style consiste

Java编程风格规范(Google )

Google Java编程风格指南 前言 这份文档是Google Java编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格. 与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准.然而,这份文档主要侧重于我们所普遍遵循的规则, 对于那些不是明确强制要求的,我们尽量避免提供意见. 1.1 术语说明 在本文档中,除非另有说明: 术语class可表示一个普通类,枚举类,接口或是anno

使用 Java 程序写文件时,记得要 flush()

使用 Java 程序往磁盘写文件时碰到了这样的问题:文件写不全. 假如内容(StringBuffer/StringBuilder)有 100W 个字符,但是通过 Java 程序写到文件里的却不到 100W ,部分字符不见了. 代码大致是这样的: 1 private void writeToDisk() throws Exception { 2 File file = new File("FILE_PATH"); 3 OutputStreamWriter osw = null; 4 os

java开发命名规范(转载)

java开发命名规范 使用前注意事项: 1.  由于Java面向对象编程的特性, 在命名时应尽量选择名词 2.  驼峰命名法(Camel-Case): 当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,首字母以小写开头,每个单词首字母大写(第一个单词除外). 如:myFirstName 一 包名的书写规范 (Package) 推荐使用公司或机构的顶级域名为包名的前缀,目的是保证各公司/机构内所使用的包名的唯一性.包名全部为小写字母,且具有实际的区分意义. 1.1 一般要求 1.

我要带徒弟学JAVA架构 ( 写架构,非用架构 )

我要带徒弟学JAVA架构 (写架构.非用架构) 非常多人做java开发2,3年后.都会感觉自己遇到瓶颈. 什么都会又什么都不会.怎样改变困境,为什么非常多人写了7,8年还是一个码农,工作中太多被动是由于不懂底层原理. 公司的工作节奏又比較快,难有机会学习架构原理,也没人教.所以这个时候,学习架构原理,扩展思维,对自己以后职业生涯尤为重要. 相同公司的两个新人,一个新人一点就通.学东西非常快,有的人.学东西非常慢,也非常痛苦,处处都是新技术.为什么?由于那个人懂原理,万物都有规律,掌握了规律学其它

Android Java包各种功能简述

开发Android应用程序基本上使用的都是Java语言.那么要想灵活的应用这一系统,就应当熟悉其中的Android Java包的各种功能. 一般的JAVA应用中,如果需用引用基础类库,通常需要使用如下的方式: import javax.swing.*; 以上代码表示了引用JAVA的GUI组件Swing,javax.swing即JAVA中的一个包. Adroid提供一些扩展的JAVA类库,类库分为若干个包,每个包中包含若干个类.例如:在Android中计算器是一个相对简单的程序,其入口程序文件为C

C++基础学习教程(七)----类编写及类的两个特性解析---&gt;多态&amp;继承

类引入 到目前为止我们所写的自定义类型都是关键字struct,从现在起我们将采用class方式定义类,这种方式对于学习过其他高级语言包括脚本(Such as Python)的人来说再熟悉不过了. 但是在写之前我们还是需要比较一下用struct和class之间有什么区别. 首先对于struct,在C兼容性方面很重要,尽管C++是有别于C的另一门语言,但许多程序还是必须与C交互,C++有两个重要功能,可以方便的与C交互.其中之一的就是POD,即是Plain Old Data(简单旧式数据)的缩写.