1、在java程序当中,使用EditPlus工具进行代码编写的时候,有一些单词是蓝色,有的是红色,有的绿色,有的是黑色,有的是紫色,有的是粉色…

2、注意:在java源代码当中,在EditPlus工具中显示的高亮颜色为黑色时,
这个单词属于标识符。

3、标识符可以标识什么?

  • 类名
  • 方法名
  • 变量名
  • 接口名
  • 常量名

4、到底什么是标识符呢?
凡是程序员自己有权利命名的单词都是标识符。

5、标识符可以随意编写吗,有命名规则吗?命名规则是什么?

  • 命名规则属于语法机制,必须遵守,不遵守命名规则标识不符合语法,
  • 规则1:标识符只能由数字、字母(包括中文)、下划线_、美元符号$组成,不能含有其它符号
  • 规则2:标识符不能以数字开头
  • 规则3:关键字不能做标识符。例如:public class static void 这些蓝色的字体都是关键字,关键字是不能做标识符的。
  • 规则4:标识符是严格区分大小写的。大写A和小写a不一样。
  • 规则5:标识符理论上是没有长度限制的。

6、标识符除了命名规则之外,还有命名规范:

  • 命名规则和命名规范有什么区别?
  • 命名规则是语法,不遵守就会编译报错。
  • 命名规范只是说,大家尽量按照统一的规范来进行命名,不符合规范也行,
  • 代码是可以编译通过的,但是你的代码风格和大家不一样,这个通常也是不允许的。
  • 规则类似于:现实世界中的法律。
  • 规范类似于:现实世界中的道德。
  • 一按照规范进行的话,代码的可读性很好。
  • 代码很容易让其它开发人员理解。
  • 具体的命名规范是哪些?
  • 规范1:见名知意(这个标识符在起名的时候,最好一看这个单词就知道啥意思。)
  • 规范2:遵循驼峰命名方式,什么是驼峰(一高一低,一高一低…)
    驼峰有利于单词与单词之间很好的进行分隔
    BiaoShiFuTest,这个很好,一眼就能看出来是4个单词。
  • 规范3:类名、接口名有特殊要求
    类名和接口名首字母大写,后面每个单词首字母大写。
    StudentTest、UserTest ,这是类名、接口名。
  • 规范4:变量名、方法名有特殊要求
    变量名和方法名首字母小写,后面每个单词首字母大写。
    nianLing(NianLing这样就不符合了。)
    mingZi(MingZi这样也不符合了。)
  • 规范5:所有“常量”名:全部大写,并且单词和单词之间采用下划线衔接。
    USER_AGE :用户年龄
    MATH_PI:固定不变的常量3.1415926…
public class Test{
	// main是一个方法的名称,属于标识符
	// 但是这个标识符不能修改,因为这个main是SUN固定死的。
	public static void main(String[] args){
	}
//doSome是一个方法名,可以改成其他的名字
	public static void doSome(){
		// k是一个变量名
		int k = 100;
		// nianLing 是一个变量名
		int nianLing = 20;
	}
}
/*
编译报错,错误信息是:
错误: 需要<标识符>
错误原因:编译器检测到class这个单词,那么编译器会从class这个
单词后面找类名,
而类名是标识符,编译器找了半天没有找到标识符,
因为123ABC不是标识符,所以编译器提示的错误信息是:需要<标识符>
解决办法:将123ABC修改为合法的标识符。
*/
class Y123ABC{
}
// 类名是标识符,标识符“中”不能有空格
/*
编译器错误信息是:
	错误: 需要'{'
	编译器检测到class,然后找class后面的标识符,编译器找到了一个合法的标识符
	叫做“Hello”,然后编译器继续往后找“{”,结果没有找到“{”,所以报错了。

解决办法:
		办法1:是把World删除
		办法2:把空格删除
*/
/*
class Hello World{
}
*/
// 虽然java中的标识符严格区分大小写
// 但是对于类名来说,如果一个java源文件中同时出现了:A类和a类
// 那么谁在前就生成谁。大家以后最好不要让类名“相同”。
// 最好类名是不同的。
class HelloWorld2{
}
class helloWorld2{
}