zoukankan      html  css  js  c++  java
  • 标识符

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

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

  • 相关阅读:
    [BZOJ-1007&洛谷P3194][HNOI2008]水平可见直线--【半平面交(单调栈)】
    [BZOJ-1006&洛谷P3196][HNOI2008]神奇的国度--【图的染色-最大势MCS算法】
    [BZOJ-1005&洛谷P2624][HNOI2008]明明的烦恼-【Purfer序列】py+java
    [BZOJ1211 & 洛谷P2290] [HNOI2004]树的计数-【Purfer序列】py+Java
    【BZOJ-1004&洛谷P1446】[HNOI2008]Cards-置换群(burnside引理|DP)
    POJ-2409 Let it Bead 【置换群-Polya定理】
    Dijkstra--POJ 2502 Subway(求出所有路径再求最短路径)
    二分--LIGHTOJ 1088查找区间(水题)
    二分--1043
    二分---LIGHTOJ 1062
  • 原文地址:https://www.cnblogs.com/xlwu/p/13052745.html
Copyright © 2011-2022 走看看