JAVA 第二章

第二章

主要内容
标识符与关键字
  • java所有的组成成分都需要有名字,称作标识符,用来表示类名、变量名、方法名

  • 标识符

    • 用来标识类名、变量名、方法名、类型名、数组名、文件名有效字符序列称为标识符,
    • 简单地说,标识符就是一个名字 。
  • Java语言规定

    • 标识符由字母、下划线、美元符号和数字组成,长度不受限制。
    • 标识符的第一个字符不能是数字字符
    • 标识符不能是关键字
    • 标识符不能是truefalsenull
  • 关键字

    • 关键字就是具有特定用途或被赋予特定意义的一些单词,不可以把关键字作为标识符来用 。
    • 例如: boolean、byte、short、int、float、double、char、if、else等。
    • 关键字都是小写的。
    • 遇到大写肯定不是关键字。
  • 变量

    • 强类型语言

      • 变量必须先定义后才能使用
      • 安全性高
      • 速度慢
    • 弱类型语言

      • 速度快
      • 安全性低
    • java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域

    • 命名规范

      • 见名知意
      • 类成员变量首字母小写&驼峰原则
      • 局部变量首字母小写和驼峰原则
      • 常量使用大写和下划线
      • 类名使用首字母大写和驼峰原则
      • 方法名首字母小写和驼峰原则二
    • 变量的声明

      type varName [=value] ;
      //数据类型 变量名 = 值
      
    • 注意事项

      • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
      • 变量名必须是合法的标识符
      • 变量声明是一条完整的语句因此每一个声明必须以分号结束
    • 作用域

      public class Demo{
          //boolean初始值是false,
          //其他基本类型默认值为 0 / 0.0
          //除了基本类型,其余类型初始值是null
      
          //实例变量,从属于对象
          int age;
          String name;
      
          public static void main(String[] args){
              //局部变量,只能在main中使用
              int i = 10;
      
              //实例变量的使用
              Demo demo = new Demo();
              demo.age;
              demo.name;
          }
      
          public void add(){
      
          }
      }
      
  • 常量

    //常量大写
    //修饰符,不存在先后顺序
    
    static final double PI = 3.14;
    
    final static double PI = 3.14
    
  • 数据类型

    • 基本数据类型
    • 引用数据类型
  • 基本数据类型

    • 字节

      • 位(bit):计算机内部存储的最小单位
      • 字节(byte):计算机中数据处理的基本单位
      • 字符:计算机使用的各种符号
    • 有8种基本数据类型:

      • boolean:一个字节

      • byte:一个字节(-128-127

      • short:两个字节(-32768-32767

      • int:四个字节(-2^31 ~ 2^31-1)

      • long:八个字节

        • 在数字后面加上L
        • long num = 30L;
      • float:四个字节,

        • 存储时保留八位有效数字
        • 在数字后面必须加上F
        • float num = 50.1F;
      • double:八个字节

      • char:两个字节(-27~27-1

      • String 不是关键词,是类

    • 8种基本数据类型习惯上可分为以下四大类型:

      • 逻辑类型:boolean

      • 整数类型:byte、short、int、long

        • 进制
          • 八进制:前缀加0
          • 十六进制:前缀加0x
      • 字符类型:char

        • Java语言使用Unicode标准字符集,最多可以识别65536个
        • 转义字符
          • \t 制表符
          • \n 换行符
          • \b (退格)
          • \‘ (单引号)
          • \“ (双引号)
          • \ (反斜线)
      • 浮点类型:float、double

  • 类型转换运算

    • Java中数据的基本类型(不包括逻辑类型)按精度从 排列:

      1. byte
      2. short
      3. char
      4. int
      5. long
      6. float
      7. double
    • 规则:

      • 当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。

        • 例如:
          float x=100; 
          
      • 当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。

        • 显示转换的格式:

          (类型名)要转换的值;
              例如:
              int x=(int)34.89; 
          
        • 当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算;

        • 例如:

           byte b = 128;  //(error)  
           byte b = (byte)128  //(ok)
          
    • 不能把布尔值进行转换

    • 不能把对象类型转换为不相干类型

输入、输出数据
  • Scanner对象

    • 通过Scanner类获取用户的输入

    • 基本语法

      Scanner s = new Scanner(System.in);
      
    • 通过Scanner类的next()nextLine()方法获取输入的字符串

      • next()

        • 一定要读取到有效字符才可以结束输入
        • 对输入有效字符之前遇到的空白,将自动去除
        • 只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
        • next()不能得到带有空格的字符串
      • nextLine()

        • Enter作为结束符,即返回输入回车键之前的所有字符
        • 可以获得带空格的字符串
    • 在读取前我们一般需要使用hasNext()hasNextLine()来判断是否还有输入的数据

      package com.lxt.scanner;
      
      import java.util.Scanner;
      
      publilc class Demo{
        public static void main(String[] args){
          //创建一个扫描器对象,用于接收键盘数据
          Scanner scanner = new Scanner(System.in);
      
          Ststem.out.println("使用next方式接收:")//判断用户有没有输入字符串
          if(scanner.hasNext()){
            //使用next方式接收
            String str = scanner.next();
            System.out.println("输出内容为:" + str);
          }
          //凡是属于IO流的类,如果不关闭会一直占用资源
          scanner.close();
        }
      }
      
  • 输入基本型数据

    • 可以使用Scanner类创建一个对象:

      Scanner reader = new Scanner(System.in);
      
    • 其中:reader对象调用下列方法,读取用户在命令行输入的各种基本类型数据:

      • nextBoolean()、
      • nextByte()、
      • nextShort()、
      • nextInt()、
      • nextLong()、
      • nextFloat()、
      • nextDouble()。
    • 上述方法执行时都会堵塞,程序等待用户在命令行输入数据回车确认

  • 输出基本型数据

    • java使用System类中的方法实现数据输出

      • 例如:
        System.out.println()
        //或
        System.out.print()
        
      • 输出串值,表达式的值。
      • 二者的区别是
        • 前者输出数据后换行,
        • 后者不换行。
      • 如果需要输出的字符串的长度较长,可以将字符串分解成几部分,然后使用并置符号:+将它们首尾相接,
        • 例如:
          System.out.println("你好," + "很高兴认识你" ); 
          
    • JDK1.5新增了和C语言printf函数类似的输出数据的方法,格式如下:

      System.out.printf("格式控制部分",表达式1,表达式2,…表达式n)
      
      • 格式控制部分由格式控制符号:
        • %d%c%f%s和普通的字符组成,普通字符原样输出。格式符号用来输出表达式的值。

          • %d输出int类型数据值;
          • %c输出char型数据;
          • %f输出浮点型数据,小数部分最多保留6位;
          • %s输出字符串数据。
        • 输出数据时也可以控制数据在命令行的位置,例如:

          • %md输出的int型数据占m列;
          • %m.nf输出的浮点型数据占m列,小数点保留n位。
          • 例如:
            System.out.printf("%d,%f",12, 23.78); 
            
数组
  • 数组是相同类型的数据按顺序组成的一种复合数据类型。

  • 通过数组名加数组下标,来使用数组中的数据。

  • 下标从0开始排序。

  • 声明数组

    • 声明一维数组有下列两种格式:

      数组的元素类型 数组名[];
      数组的元素类型[] 数组名; 
      
      float boy[];
      char[] cat; 
      
    • 声明二维数组有下列两种格式:

      数组的元素类型 数组名[][];
      数组的元素类型 [][] 数组名; 
      
      float a[][];
      Char [][] b;
      
  • 为数组分配元素空间

    • 为数组分配元素的格式如下:

      数组名 = new 数组元素的类型[数组元素的个数];
          
      boy = new float[4];
      
    • 说明:

      • 数组属于引用型变量,数组变量中存放着数组的首元素的地址,通过数组变量的名字加索引使用数组的元素,比如:
        boy[0] = 12;
        boy[1] = 23.908F;
        boy[2] = 100;
        boy[3] = 10.23f;
        
    • 注意:数组的声明和分配空间可以在声明时同时完成

      float boy[] = new float[4];
      
  • 数组初始化

    • 创建数组后,系统会给数组的每个元素一个默认的值

      • 例如,float型是0.0。
    • 静态初始化

      int[] a = {1,2,3}
      
    • 动态初始化

      int[] a = new int[3];
      a[0] = 1;
      a[1] = 2;
      a[2] = 3;
      
  • 数组元素的使用

    • 一维数组通过索引(下标运算)符访问自己的元素。
      • 如:boy[0],boy[1]等.
      • 需要注意的是索引从0开始
      • 因此,数组若有4个元素,那么索引到3为止,如果程序使用了如下语句:
        boy[4] = 384.98f;
        
      • 程序可以编译通过,但运行时将发生ArrayIndexOutOfBoundsException 异常,因此在使用数组时必须谨慎,防止索引越界。
  • length属性的使用

    • 对于一维数组,数组名.length的值就是数组中元素的个数;

    • 对于二维数组数组名.length的值是它含有的一维数组的个数

      float  boy[] = new float[4];
      //boy.length的值为4.
      int[][] a = new int[3][8];
      //a.length的值是3.
      //a[0].length的值是8
      //a[1].length的值是8
      //a[2].length的值是8
      
  • 数组的引用

    • 数组属于引用型变量,两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。
重点和难点
  • 重点:标识符、Java语言的数据类型、数组

    • 标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符(关键字不能做标识符).

    • Java语言有8种基本数据类型(boolean byte short char int long float double)

    • 数组是相同类型的数据元素按顺序组成的一种复合数据类型,数组属于引用型变量.

    • 两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。

  • 难点:基本数据类型的精度和数组

习题
  1. 问答题
    1. 什么叫标识符?标识符的规则是什么?false是否可以作为标识符?
    2. 什么叫关键字?
    3. java地基本数据类型
    4. float和double型常量在表示上有什么区别
    5. 一维数组、二维数组的长度
答案
  1. 问答题

      1. 标识符:用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
      2. 标识符的规则:标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。
      3. false不是标识符。
      1. 关键字:关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
      2. true 和 false 不是关键字。
      3. 关键字举例:class implements interface enum extends abstract。
    1. java的基本数据类型 :boolean,char,byte,short,int,long,float,double。

    2. float和double的区别

      1. float常量必须用F或f为后缀。
      2. double常量用D或d为后缀,但允许省略后缀。
    3. 获得数组长度的方法

      1. 一维数组名.length。
      2. 二维数组名.length。
  2. 选择题

    1. 标识符的规则
    2. 变量的声明
    3. char型字符在Unicode表中的位置范围是0-65535
    4. 变量类型转换运算
  3. 阅读或调试程序

    1. 【代码1】:4。【代码2】:b[0]=1。

    2. 【代码1】:40。【代码2】:7

  4. 编写程序

    1. public class E {
         public static void main(String args[]) {
           System.out.println((int)‘你’);

System.out.println((int)‘我’);

System.out.println((int)‘他’);

}

}

  1. public class E {
       public static void main (String args[ ]) {
          char cStart=‘α’,cEnd=‘ω’;

for(char c=cStart;c<=cEnd;c++)

System.out.print(" "+c);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值