《Java编程思想》读书笔记-基本规范、注释、static关键字、import关键字
扫一扫加我的微信公众号,和我一起打好Java的基础
本文作为构建第一个Java程序的番外篇二,主要跟大家伙儿从浅层次的探讨下Java中的关键字
import
和static
,此外为了让我们的代码可读性更强,必要的包和代码的命名规范是必须的。
今日份重点
- 命名规范
- 注释
- static关键字
- import关键字
- 总结
命名规范
规范的包名
名字管理是所有编程语言都必须重视的一个问题。
Java为了解决命名冲突,建议开发者反过来使用当前应用所归属的Internet域名来作为包名的前缀。比如说百度,其域名为baidu.com
,那么其对应的应用的包名前缀就应该为com.baidu...
。包名格式一般为:
前缀.应用名称.所有者.分层信息
如百度的搜索业务,假如其所有者为tony,当前为service层,则当前的包名理论上应该为:com.baidu.search.tony.service
,其中的.
代表目录分层,按照当前包名,你应该得到一个如com/baidu/search/tony/service
的目录结构:
注意:包名要求全小写哦
规范的类名称
- 首字母大写
- 如有由多个单词组成,则每个单词的首字母大写
规范的变量名称、方法名称
变量和方法名
- 首字母小写
- 如果由多个单词组成,则除首个单词外其他单词的首字母大写
常量
- 全部大写
需要共同遵循的公共规则
- 名字只能由字母、数字、$符号、下划线_、组成
- 不能以数字开头
- 不能使用Java中的关键字
- 不能出现中文及拼音(国际化)
注释
注释就是故事中的旁白,告诉你前因后果,但却从来不出现在荧幕上。
Java中支持两种风格的注释
- 以
/*
开始,以后*/
结束,用于代码块注释,其注释作用是跨行的/*这是一个注释的示例
这种注释的作用是跨行的
我可以干掉一整片*/
以
//
开始,没有结束符号,用于代码行注释,其注释作用是行内的//我只能干掉一行
以上是两种基本的注释方式。在Java中,有把自己提供的接口发布出去的需求,因此可能需要生成JavaDoc文件。为了简便生成JavaDoc的流程,先简单介绍一种接口的注释,其以/**
开头,以*/
结尾:
/**
* 这是一个获取数据的接口,这里做一个接口注释的范例
* @param id 这是id属性的说明
* @param name 这是name属性的说明
* @return 没有返回值
*/
public void getData(Integer id, String name){}
以上示范的是接口注释的使用,其中的@param用于说明接口参数,@return用于说明接口返回值。这些在后面会详细讲,这里只做简单了解。
static关键字
只有在执行了
new
操作的时候,数据存储空间才被分配,类的方法才可以提供给外部使用。
在Java中,static
关键字用于把属性或方法从对象中剥离出来。意味着,按照惯例,类必须实例化(即使用new关键词新建对象)后,才能访问其属性和方法,而使用了static之后,即使类没有实例化,我同样可以访问。
static关键字以下特性:
- 与对象无关,调用方法直接使用
类名.方法名
,调用属性则使用类名.属性名
,当然,以前的调用方式还是保留的,你仍然可以使用对象来调用 - static修饰的属性,无论创建多少个对象,在内存中都只有
一份存储空间
- static修饰的方法不能调用非static修饰的属性或方法,反之则可以
- static修饰的类,必然是静态内部类
static
关键字的放置位置,一般是在类的class
关键字前;或在属性的类型前,或在方法的返回类型前:
public class TypeName{
//属性
public static String s = "Hello World";
//方法
public static void main(String [] args) {
System.out.println(s);
}
//类
public static class Inner {}
}
关于static关键字,在后面的内容中会深入分析,这里只做简单介绍。
import关键字
众人拾柴火焰高,我们不仅仅要自己写代码,还要复用别人的代码。
Java是开源的,因此存在大量附生的开源项目可以供我们使用,Java提供了import关键字用于帮助我们引用别人提供的类或方法。import
引入的内容,需要放在代码头部
如使用import java.util.ArrayList;
,你向编译器发出了要使用ArrayList类的信号,其在编译时就会自动定位到这个类。如果你想引用同一个包中的多个类,那么试试import java.util.*
,这里用了*
来匹配java.util
包下的所有类。
还有一种情况,可能你会在当前类中多次用到某个类的某个静态方法或属性,那么你可以试试这样引入:import static java.util.stream.Collectors.*
,这里直接把Colloctors类静态引入,注意后面的*
,它表示引入该类下所有可见的静态的方法和属性,这样你在调用的时候,就更简便了。比如说你要调用Collectors.toSet()
的时候,你就可以直接写toSet()
就可以啦!是不是很方便呢?
记住哦,在Java中有个比较特别的包,它是默认引入的,不需要我们显式引入。是谁这么大牌?java.lang.*
;
总结
本文主要介绍了Java中的命名规范、注解、import关键字、static关键字等内容。其中,命名规范能极大提高代码的可读性,在实际的协同工作中,能让同事更快地明白你代码表达的意思。代码注解则是你对代码的说明,于己于人都是有益的。我们不会每天都接触同一段代码,注释则帮助我们记忆代码中的重点。import关键字用于引入当前包之外的其他类,帮助我们扩展程序和复用代码。static关键字则是Java中非常重要的一个关键字,在后续还会继续深入探讨,理清它的特性,对我们编写代码,排除bug有很大的益处。
对,你学到了一个新词,bug
,后面,它会教你做人!
下一节,我们开始运用这些只是来编写我们的第一个Java程序!期待着吧!
《Java编程思想》读书笔记-基本规范、注释、static关键字、import关键字的更多相关文章
- JAVA编程思想读书笔记(五)--多线程
接上篇JAVA编程思想读书笔记(四)--对象的克隆 No1: daemon Thread(守护线程) 参考http://blog.csdn.net/pony_maggie/article/detail ...
- JAVA编程思想读书笔记(四)--对象的克隆
接上篇JAVA编程思想读书笔记(三)--RTTI No1: 类的克隆 public class MyObject implements Cloneable { int i; public MyObje ...
- JAVA编程思想读书笔记(三)--RTTI
接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...
- JAVA编程思想读书笔记(二)--容器
接上篇JAVA编程思想读书笔记(一) 第八章.对象的容纳 No1: java提供了四种类型的集合类:Vector(矢量).BitSet(位集).Stack(堆栈).Hashtable(散列表) No2 ...
- Java编程思想读书笔记之内部类
现在是够懒得了,放假的时候就想把这篇笔记写出来,一直拖到现在,最近在读<Java编程思想>,我想会做不止这一篇笔记,因为之前面试的时候总会问道一些内部类的问题,那这本书的笔记就从内部类开始 ...
- Java编程思想读书笔记(一)【对象导论】
2018年1月7日15:45:58 前言 作为学习Java语言的经典之作<Java编程思想>,常常被人提起.虽然这本书出版十年有余,但是内容还是很给力的.很多人说这本书不是很适合初学者,我 ...
- Java编程思想读书笔记(二)【一切都是对象】
begin 2018年1月9日17:06:47 第二章 一切都是对象 Java语言假设我们只进行面向对象的程序设计. 2.1 用引用操纵对象 每种编程语言都有自己的操纵内存元素的方式 操纵内存元素的方 ...
- <Java编程思想>读书笔记(1)-对象导论、一切都是对象
1.面向对象编程:OOP (Object-oriented Programming) 2.Alan Kay 总结的面向对象语言5个基本特性: 1) 万物皆为对象 2) 程序是对象的集合,他们通过发送消 ...
- Java编程思想读书笔记
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Java编程思想读书笔记之一切皆对象
一切皆对象 Java程序运行时,数据保存到哪里 寄存器 这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部.然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配.我们对此没 ...
随机推荐
- 调试 kafka manager 源码
前提:可以上外网. kafka manager 是一款优秀的监控 kafka 的工具,采用 scala 语言编写,如何调试 kafka manager 呢? kafka manager 使用 play ...
- python之value和布尔值
之前做判断的时候如果遇到空列表,空字符串,可以直接使用当做判断条件.比如: s = "" if s: print(s) 不是打印s的,也就在这里if的判断条件是False. 所以, ...
- Eclipse无法正常启动,弹出对话框内容为 A Java Runtime...
1.Eclipse无法正常启动,弹出对话框内容为 A Java Runtime...如下图: 原因分析:由于软件版本的更新或者安装其他开发软件无意之间修改了配置文件中的路径,众所周知,Java虚拟机( ...
- CentOS7系统上的LAPACK源码安装
参考链接:linux下安装blas和lapack BLAS 和 LAPACK 这两个数学库是很多 Linux 科学计算软件需要调用的,所以经常会用到. LAPACK,其名为Linear Algebra ...
- Kubernetes 入门之Kubernetes 的基本概念和术语
Kubernetes是什么? 他是一个全新的基于容器技术分布式架构领先方案: 他也是一个开放的开发平台: 他也是一个完备的分布式系统支撑平台: Kubernetes的基本慨念和术 ...
- canvas 实现刮刮乐
在解决问题前,我们先来了解一下 canvas 标签canvas 是 html5 出现的新标签,像所有的 dom 对象一样它有自己本身的属性.方法和事件,其中就有绘图的方法,js 能够调用它来进行绘图. ...
- MongoDB的数据库导出和导入以及备份
数据库的导出 mongoexport -d 数据库名 -c 集合名 -o 导出文件的保存地址及保存文件名.json --type json 数据库的导入 mongoimport -d 数据库名 -c ...
- python pexpect包的一些用法
转自:https://www.jianshu.com/p/cfd163200d12 mark一下,原文中写的挺详细
- 关于FGPA的复位
关于FGPA的复位 当初开始学FPGA的时候,总是疑惑:FPGA不是没有复位管教么,但总在always看到有复位信号.这个复位信号(我们暂且称为rst_n)从哪里来? 实际上是可以从两个方面获得的,这 ...
- webdriver的三种时间等待( sleep(); implicitly_wait(); WebDriverWait();)
https://blog.csdn.net/HeatDeath/article/details/71774572 基于<Selenium 2自动化测试实战>的学习笔记(11)—— 设置等待 ...