/* 1 在java程序当中,使用EditPlus工具进行代码编写的时候,有一些单词是蓝色,有的是红色,有的绿色,有的黑色,有的是紫色,有的是粉色。。。 2 注意: 在java源代码当中,在EditPlus工具中显示的高亮颜色为黑色时,这个单词属于标识符。 3 标识符可以标识什么? 可以标识: 类名 方法名 变量名 接口名 常量名 ...... 4 到底什么是标识符呢? 一句话搞定:凡是程序员自己有权利命名的单词,都是标识符。 5 标识符可以随意编写吗?有命名规则吗?有 标识符的命名规则: 规则1:标识符只能由数字、字母(包括中文)、下划线_、美元符号$组成,不能含有其他符号。 规则2:标识符不能以数字开头 规则3:关键字不能做标识符。例如:public class tatic void 这些蓝色字体都是关键字,关键字是不能做标识符的。 规则4:标识符是严格区分大小写的。大写A和小写a不一样。 规则5:标识符理论上是没有长度限制的。 什么是命名规格? 命名规则属于语法机制,必须遵守,不遵守命名规则表示不符合语法,这样子,编译器会报错。 每一天你会编写很多程序,你会遇到很多编译错误,也会遇到很多运行错误,你是否需要准备一个单独的文件来记录这些信息, 以及记录这些信息是怎么导致的,原因是什么,怎么去解决,解决办法是什么? 非常有必要的,要想成为一个调错高手,这个有必要进行一下。 */ public class BiaoShiFuTest{ // main是一个方法的名称,属于标识符 // 但是这个标识符是不能修改,因为这个main是sun固定死的。 public static void main(String[] args){ } //doSome是一个方法名,可以改成其他的名字 public static void doSome(){ //k是一个变量名 int k = 100; //age是一个变量名 int age = 20; } } /* 编译报错,错误信息是: BiaoShiFuTest.java:45: 错误: 需要<标识符> class 123ABC{ ^ 1 个错误 错误原因:编译器检测到class这个单词,那么编译器会从class这个单词后面找类名,而类名是标识符,编译器找了半天没有找到标识符, 因为123ABC不是标识,所以编译器提示的错误信息是:需要<标识符> 解决办法: 将123ABC修改为合法的标识符。 */ class 123ABC{ } // 类名是标识符,标识符“中”不能有空格 /* 编译器错误信息是: BiaoShiFuTest.java:62: 错误: 需要'{' class Hello World{ ^ 编译器检测到class,然后找class后面的标识符,编译器找到了一个合法的标识符叫做“Hello”, 然后编译器继续往后找“{”,结果没有找到“{”,所以报错了。 解决办法: 办法1:把World删除 办法2:把空格删除 */ class Hello World{ } //正确写法1: class Hello{ } //正确写法2: class HelloWorld{ } /* 错误 关键字不能做标识符 BiaoShiFuTest.java:89: 错误: 需要<标识符> class public{ ^ BiaoShiFuTest.java:89: 错误: 非法的类型开始 class public{ ^ */ class public{ } //这个可以,因为public1不是关键字,可以用。 class public1{ } /* 虽然java中的标识符严格区分大小写 但是对于类名来说,如果一个java源文件中同时出现了:A类和a类 那么谁在前就生成谁。大家以后最好不要让类名“形同”。 最好类名是不同的。 */ class A{ } class a{ }
/* 题目: 创建一个java文件,起名123.java可以吗? 可以,完全可以,在windows操作系统中文件名叫做:123.java没毛病。 123其实并不是标识符,他只是一个文件名。 只不过在123.java文件中无法定义public的类。 在123.java文件中定义public的类可以吗? 因为之前有一条规则是这样说的:public的类可以没有 但如果有public的类,也只能有一个,并且public的类的名字必须和源文件名保持一致 */ /*public class 123{ //但是最终尴尬了,因为123不能做标识符。是错误的标识符 }*/ /* 标识符除了命名规则之外,还有命名规范。 1 命名规则和命名规范有什么区别? 命名规则是语法,不遵守就会编译报错。 命名规范只是说大家尽量按照统一的规范进行命名,不符合规范也行,代码是可以编译通过的, 但是你的代码风格和大家不一样,这个通常也是不允许的。 规则类似于:现实世界中的法律。 规范类似于:现实世界中的道德。 统一按照规范来的话,代码的可读性很好。 代码很容易让其他开发人员理解。 2 具体的命名规范是哪些? 规范1:见名知意(标识符在起名的时候,最好一看这个单词就知道啥意思。) 规范2:遵循驼峰命名方式,什么是驼峰(一高一低,一高一低...) 驼峰有利于单词与单词之间很好的分隔。 BiaoShiFuTest,这个很好,一眼就能看出来是4个单词。 规范3:类名、接口名有特殊要求 类名和接口名首字母大写,后面每个单词首字母大写。 StudentTest、UserTest,这是类名、接口名。 规范4:变量名、方法名有特殊要求 变量名和方法名首字母小写,后面每个单词首字母大写。 nianLing(NianLIng这样就不符合了。) mingZi(MingZi这样也不符合了。) 规范5:所有常量名:全部大写,并且单词和单词之间采用下划线衔接。 USET_AGE:用户年龄。 MATH_PI:固定不变的常量:3.1415926...... */ public class IdentifierTest{ public static void main(String[] args){ //以下代码看不懂没关系,别着急。 //主要看两个汉语拼音,可读性很强。 //nianLing和mingZi都是黑色字体的标识符。 int nianLing = 20; String mingZi = "zhangsan"; } }
最终要求:随意给出一个单词,判断他是否合法不合法。