# 语言规则和基本操作

Java这门语言有一些特殊的规定, 这些规定你应当遵守.
可能有些规定不遵守也没关系, 但是请注意, 往往不遵守规则就会被人鄙视, 或者可能出现报错你也不知道为什么.

# 无中文化

不管你英语水平多垃圾, 作为代码, 你应当尽可能保证代码中不出现中文.

开发过程中经常遇到因为中文的乱码问题, 如果为变量等命名时使用中文会导致代码“变得很丑”, 根本不会起到提升阅读性的目的. 如果你真想让代码是什么意思表述的清晰一些, 你应当用注释(马上就会提到)表示, 注释里你可以写中文.
如果某个路径中出现中文, 可能会因为程序处理差异而出现各种各样你根本不知道是因为什么而导致的错误.

所以, 你应当尽可能使用英文字母来取代中文.

# 注释

在代码任何地方都可以插入注释, 注释能够起到解释说明代码的功能.

下面是两种注释的例子.

jia ru zhe shi yi hang dai ma; //这就是注释,我在这里瞎写东西, 程序照样运行
//code code code code; 比如这行代码不想要了但是不舍得删, 注释就很好使

//但是这样写注释只能是单行的, 其实也有多行注释

/*
就像这样,
这一块都是注释
里面随便写内容都可以!!
*/

注意, 你不能多行注释套多行注释. 比如 /* /**/ */ 是不可以的, 你可以把单行注释放在多行注释内.

# 域的概念

package rinya.bukkit.helloworldplugin;

import org.bukkit.plugin.java.JavaPlugin;

public class HelloWorldPluginMain extends JavaPlugin {
	@Override
	public void onEnable() {
		System.out.println("Hello World!");
	}
}

我们上个Step中写的这些代码, 你会发现其中有{}. 花括号括起来的表示一个域.
域并不是单独存在的, 左花括号{的前面往往有域的头部描述.

请注意, 你要用套娃的思路去理解域是怎样相互嵌套、并列的.
比如public class HelloWorldPluginMain extends JavaPlugin后面对应了一个域, 这个域里包含了一个@Override public void onEnable()引起的一个域.

# 大小写严格区分, 分号是代码的结束

System.out.println("Hello World!");

上一Step中我们编写了这样的一行代码, 其中除需要输出的Hello World!取决于你的目的以外, System.out.println里任何一个字母的大小写都是严格需要区分开的.
尤其是System.out.println, 这个语句在Java中看似不符合后面我们要提到的命名规则, 它有它的特殊性. 这是一句常用的输出语句, 你应当记住.

同时, 作为一句代码, 它以分号作为结束标志. Java中不能漏写分号.

#

# 包的作用

我们上个Step创建的HelloWorldPluginMain类其实有一个问题, 如果真的有一个人出于某些目的, 也创建了一个类叫HelloWorldPluginMain, 而你和他的插件都是非常常用的插件, 大家都会装. 这样有两个类名称一样, 会出现后一个被加载的插件无法被正常加载的情况.
包(Package)就是用来解决这样的类名冲突问题的.

此外, 你可能见过有些人有这些习惯: 电脑里存的课件会存在一个文件夹里, 音乐会存另外一个文件夹里. 代码也是这样, 不同的类按照功能可以分为不同的类别, 包也有文件夹的作用.
其实, 包本质就是文件夹. 这样你也就可以理解为什么包可以解决命名冲突问题了, 存不一样的文件夹里, 可不就解决了命名冲突问题了.

要注意的是, 我不能说testjava.demo.one.three包里的类也在testjava.demo.one包内, 在哪个包里就是在哪个包里, 这两个包没有包含关系.

# 创建一个包

我们刚才创建的那个类包名是rinya.bukkit.helloworldplugin, 其实包名只要符合命名规则即可, 因为我叫rinya, 这是我的bukkit插件作品, 名字叫helloworldplugin,所以我给包名取了这个名字.
其实从本质上来讲, .就是\, 也就是相当于rinya文件夹里有bukkit文件夹里有helloworldplugin文件夹, 刚才的HelloWorldPluginMain.java文件就被我放在这个文件夹里了.

除了在创建类时手动输入包名外, 你还可以在Eclipse中这样创建一个包.

# 命名规则

你可能暂时不知道这些规则怎么用, 没关系, 你现在只需要知道有这个东西即可

Java里名字不是乱起的. 起名首先是让人一看就知道这个东西是干什么用的.

还要注意, Java中所有的取名都有一些规范, 有一些必须遵守, 有一些不遵守程序一样可以运行, 但是这是程序员心中极高尚的信仰, 信仰的光辉引领着我们要去遵守, 否则别人可能会认为你有问题. 具体的命名规则如下:

  1. 大小写: 类名首字母大写、方法名首字母小写, 变量常量等首字母小写, 包名所有字母都小写.
  2. 仅允许使用字母、数字、下划线, 您还可以使用美元符号 ($), 但无论怎么取名, 第一个字符绝不能是数字. 其实中文字符是可以的, 但是不符合命名规范.
  3. 不允许与Java关键字重复, 例如你不能给某个东西起名叫“public”、“class”, 因为它们是Java保留的关键字.
  4. Java严格区分大小写, 因此“Good”和“good”不是一个名字.