标识符

/*
    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";
    }
}

最终要求:随意给出一个单词,判断他是否合法不合法。

原文地址:https://www.cnblogs.com/xlwu/p/13052745.html