美文网首页程序员
Java学习3:标识符与关键字与变量

Java学习3:标识符与关键字与变量

作者: 苦难_69e0 | 来源:发表于2020-08-30 19:10 被阅读0次

    标识符的理解

    在Java程序当中,使用EditPlus文本编辑器进行代码编写的时候,有一些单词是蓝色,又得是红色,有的是黑色,有的是紫色,有的是粉色......
    注意:在java源代码中,在EditPlus工具中显示的高亮颜色为黑色时,这个单词属于标识符。
    标识符可以标识:类名,方法名,变量名,接口名,常量名...
    凡是程序员自己又权力命名的单词都是标识符。
    注意:main是一个方法的名称,属于标识符,但是这个标识符不能修改,因为这个main是java开发者固定死的。

    标识符的命名规则

    命名规则属于语法机制,必须遵守,不遵守命名规则标识符不符合语法。这样,编译器会报错。
    规则1:标识符只能由数字、字母(包括中文)、下划线、美元符号$组成,不能含有其他符号。

    规则2:标识符不能以数字开头。

    规则3:关键字不能做标识符。
    例如:public、class、static、void,这些蓝色的字体都是关键字,关键字是不能做标识符的。

    规则4:标识符是严格区分大小写的。大写A和小写a不一样。
    虽然java中的标识符严格区分大小写,但是对于类名来说,如果一个java源文件中同使出现了A类和a类,那么谁在前就生成谁,以后编写时最好不要出现这种情况。

    规则5:理论上,标识符是没有长度限制的。

    创建一个Java文件,起名123.java可以吗?
    当然是可以的,在windows操作系统中,文件名叫做123.java没毛病。123其实并不是标识符,只是一个文件名。只不过在123.jaa文件中,无法定义public的类。

    标识符的命名规范

    命名规则是语法,不遵守就会编译报错。
    命名规范只是说,大家尽量按照统一的规范来进行命名,不符合规范也行,代码是可以编译通过的,但是你的代码风格和大家不一样,这个通常也是不允许的。
    命名规则类似于现实世界中的法律。
    命名规范类似于现实世界中的道德。
    统一按照规范进行的话,代码的可读性很好。代码很容易让其他开发人员理解。
    具体的命名规范有:
    规范1:见名知意。(这个标识符在起名的时候,最好以看这个单词就知道啥意思。)

    规范2:遵循驼峰命名方式,什么是驼峰(一高一低,一高一低...)。
    驼峰有利于单词与单词之间很好的分隔。

    规范3:类名、接口名有特殊要求
    类名和接口名首字母大写,后面每个单词首字母大写。
    例如:StudentTest、UserTest,这是类名、接口名。

    规范4:变量名和方法名有特殊要求
    变量名和方法名首字母小写,后面每个单词首字母大写。
    例如:nianLing(NianLing这样就不符合了)
    mingZi(MingZi这样就不符合了)

    规范5:所有常量名,全部大写,并且单词和单词之间采用下划线衔接。
    例如:USER_AGE:用户年龄

    关键字的理解

    在SUN公司开发JAVA语言的时候,提前定义好了一歇具有特殊含义的单词,这些单词全部小写,具有特殊含义,不能用作标识符。
    凡是在EditPlus中以蓝色字体形式存在的都是关键字,具有特殊含义。
    切记:java语言中的所有关键字都是全部小写。
    注意:java语言中是严格区分大小写的!!!!!
    关键字:
    public
    static
    void
    class
    byte
    short
    int
    long
    float
    double
    boolean
    char
    true
    false
    if
    while
    for
    private
    protected
    else
    do
    continue
    break
    default
    throw
    throws
    try
    catch
    final
    finally
    case
    switch
    transient
    package
    new
    this
    abstract
    strictfp
    native
    goto
    super
    extends
    implements
    import
    instanceof
    return
    synchronized
    const
    enum
    assert
    interface
    volatile
    ......
    目前这些关键字不需要单独花时间去背,在以后的编写过程中,就会慢慢熟悉了。

    变量

    字面量

    开发软件是为了解决显示世界中的问题。而显示世界中,有很多问题都是使用数据进行描述的。所以软件执行过程中最主要就是对数据的处理。
    注意:在java语言中“数据”被称为“字面量”
    字面量可以分为很多种类:
    整数型字面量:1 2 3 100 -20
    浮点型字面量:1.3 3.14 5.2
    布尔型字面量:true、false 没有其它值了,表示真和假
    字符型字面量:'a'、'b'
    字符串型字面量:"a"、"b"
    其中字符型和字符串型都是描述了现实世界中的文字。
    需要注意的是:所有的字符型只能使用单引号括起来。所有的字符串型只能使用双引号括起来。
    字符型一定是单个字符才能称为“字符型”。
    分析:
    10 + 20 = 30
    在内存中找一块空间存储10,再找一块空间存储20,cpu负责“+”运算,算完之后的结果是30,那么这个30也会在内存当中找一块临时的空间存储起来。
    那有没有可能多次访问同一空间呢?
    当然是可以的,这时就要引入“变量”。

    public class BianLiang{
      public static void main(String[] args){
        //定义/声明一个变量,起名i
        int i = 10;
        //以下这几次访问都是访问的同一块内存空间。这样使用变量后内存空间就得到了复用。
        System.out.println(i);
        System.out.println(i);
        System.out.println(i);
        System.out.println(i);
        System.out.println(i);
        //以下程序表示访问的时字符i以及字符串i,以下的两个i和以上的i变量没有任何关系。
        System.out.println('i');
        System.out.println("i");
      }
    }
    

    javadoc的使用

    javadoc命令用来生成帮助文档,前提是注释要写到javadoc注释的这种形式下才行。在这里不进行研究,等到做项目的时候,在做深入了解。

    对变量的理解

    变量其实就是内存当中存储数据的最基本的单元。
    变量就是一个存储数据的盒子。
    在java语言当中任何数据都是有数据类型的,其中整数型:int,字符串型:String,浮点型:double,字符型:char。
    不同的数据类型,在内存中分配的空间大小不同。根据不同的类型,非陪不同大小的空间。
    对于int这种整数类型,JVM会自动给int分配4个字节大小的空间。
    1个字节 = 8个比特位。
    1个比特位就是一个1或0。比特位是二进制位。
    1个int占有32个二进制位。
    二进制位就是:满2进1位
    十进制位就是:满10进1位
    int i = 1实际上在内存中是这么表示的:00000000 00000000 00000000 00000001
    对于一个变量来说,包括三要素:变量的数据类型,变量的名字,变量中保存的值。
    类型+名字+值
    类型决定空间的大小。
    起个名字是为了以后方便访问。(以后访问这个数据是通过名称来访问的)
    值是变量保存的数据。
    变量名属于标识符。变量名命名规范:首字母小写,后面每个单词首字母大写,遵循驼峰命名方式,见名知意。

    变量的声明与赋值

    变量怎么声明/定义,语法格式:数据类型 变量名;
    例如:int nianLing;
    在java语言中有一个规定,变量必须先声明,再赋值才能访问。
    变量怎么赋值,语法格式:变量名 = 值;
    运算符“=”,这个运算符在这里被称为赋值运算符。
    赋值运算符“=”的特点是:等号右边先执行,执行完之后赋值给左边的变量。
    也可以在定义变量的同时,赋值。语法格式:数据类型 变量名 = 值;
    重新赋值

    int age = 18
    System.out.println(age);
    age = 20
    System.out.println(age);
    

    代码执行顺序时从上向下依次逐行执行。
    在同一个域中(这个域怎么理解,后面讲),变量名不能重名,不能重复声明。
    变量可以重新赋值,但在同一个域当中,不能重复声明。(与类型无关)
    在一行上可以声明多个变量
    例如:int a,b,c = 100;
    这样的话,a,b都没有赋值,只有c赋值100。所以,接下来要赋值a,b才能正常输出。
    或者:int a = 10,b = 20,c = 30;
    这样可以给abc同时赋值。

    int a = 100;
    System.out.println(a);
    int b = a;
    System.out.println(b);
    

    这个代码段,是可以实现的。原理就是把a变量中保存的值,“复制”一份传给b。
    到底什么叫做同一个域????
    目前不好解释,先这么记:一个大括号代表一个域。

    {A域
      {B域
        {C域
    
        }
      }
    }
    

    A域包括B域,B域包括C域。

    变量的分类

    变量根据出现的位置进行划分:
    在方法体当中声明的变量叫:局部变量。
    在方法体之外,类体内声明的变量叫:成员变量。
    注意:局部变量只在方法体当中有效,方法体执行结束该变量的内存就释放了。

    public class BianLang1{
      //成员变量
      int i = 100;
      //主方法
      public static void main(String[] args){
        //局部变量
        int k = 100;//main方法结束k内存空间释放。
      }
    }
    

    变量的作用域

    变量的有效范围就叫作用域。
    关于变量的作用域,可以记住一句话,出了大括号就不认识了。(死记)
    java中有一个很重要的原则,就近原则(其他编程语言都有这个原则)。哪个离我近,就访问哪个。

    public class BianLiang2{
      //成员变量
      int i = 10000;
      public static void main(String[] args){
        //局部变量
         int i = 100;//这个i的有效范围是main方法。
      }
      public class void x(){
      //局部变量
      //这个i的有效范围是x方法
      int i = 200;//这个i和main方法中的i不在同一个域当中,不冲突。
      }
    }
    
    {
    int i = 100;
      {
      在这里可以访问i变量
      }
    }
    {
    在这里无法访问i变量
    }
    

    编写程序练习

    第一题,通过变量来描述学生的信息,学生信息包括:学号、姓名、性别、身高。其中学号采用整数,姓名采用字符串。性别采用字符型,身高采用浮点型。具体的学生数据有两份,第一个学生信息是:学号110,姓名张三,性别男,身高1.85米。第二个学生信息是:学号120,姓名李四,性别女,身高1.65米。要求最终将学生信息输出到控制台。

    public class XueSheng{
        public static void main(String[] args){
            //第一个学生信息
            int xueHao1 = 110;//整数类型
            String xingMing1 = "张三";//字符串类型
            char xingBie1 = '男';//字符型
            double shenGao1 = 1.85;//浮点型
            //第二个学生信息
            int xueHao2 = 120;//整数类型
            String xingMing2 = "李四";//字符串类型
            char xingBie2 = '女';//字符型
            double shenGao2 = 1.65;//浮点型
            System.out.println("学号:"+(xueHao1));
            System.out.println("姓名:"+(xingMing1));
            System.out.println("性别:"+(xingBie1));
            System.out.println("身高:"+(shenGao1)+"米");
            System.out.println("----------------------");
            System.out.println("学号:"+(xueHao2));
            System.out.println("姓名:"+(xingMing2));
            System.out.println("性别:"+(xingBie2));
            System.out.println("身高:"+(shenGao2)+"米");
        }
    }
    

    输出结果为:


    学生.png

    相关文章

      网友评论

        本文标题:Java学习3:标识符与关键字与变量

        本文链接:https://www.haomeiwen.com/subject/evnlsktx.html