• 1. 第二章 JAVA语言基础1
  • 2. 本章主要内容2.1 简单JAVA程序介绍 2.2 变量与数据类型 2.3 表达式与运算符 2
  • 3. 接受用户从键盘输入的一个字符在显示器上输出字符主函数例1: SimpleCharInOut.java import java.io.*; public class SimpleCharInOut { public static void main(String[] args) throws Exception { char c; System.out.print("Enter a character please:"); c=(char)System.in.read(); System.out.println("you've entered character: "+c); } }把类库中的所有以java.io开头的包及其全部程序引入到本程序中来类名3
  • 4. 说明:每个Java application(java 应用程序)中有且仅有一个main方法,其方法头为: public static void main(String[] args) main()方法是应用程序的入口。 程序中有数据输入或输出处理要将java.io包引入。 类名习惯以大写英文字母开头,若由多个单词构成,每个单词的首字母大写。 Java程序的文件名与类名相同,扩展名为.java。4
  • 5. 例2: SimpleGraphicsInOut.javaimport java.applet.*; import java.awt.*; public class SimpleGraphicsInOut extends Applet {Label prompt,output; TextField input; public void init() {prompt=new Label("Enter a character please:"); input=new TextField(3); output=new Label(" "); add(prompt); add(input); add(output); } public boolean action(Event e,Object o) { output.setText("you’ve entered character:"+input.getText()); return true; } }小应用程序对小应用程序进行初始化对用户的输入作响应5
  • 6. 说明:每个Java Applet(java小应用程序)不包含有main方法。 小应用程序是对已有类Applet的扩展,是Applet的子类,类定义时必须包含extends Applet。 作为Applet类的子类,程序开始将包java.applet引入。 小应用程序不用显示调用init()、action()方法。6
  • 7. 本章主要内容2.1 简单JAVA程序介绍 2.2 变量与数据类型 2.3 表达式与运算符 7
  • 8. 一、标识符和关键字1.关键字 关键字对Java编译器有特殊的含义,它们可标识数据类型名或程序构造(construct)名。下表列出了在Java编程语言中使用的关键字。 8
  • 9. 表2-19
  • 10. 注: true、false和null为小写,而不是象在C++语言中那样为大写。严格地讲,它们不是关键字,而是文字。然而,这种区别是理论上的。 无sizeof运算符,因为所有数据类型的长度和表示是固定的,与平台无关,不是象在C语言中那样数据类型的长度根据不同的平台而变化。这正是Java语言的一大特点。 goto和const不是Java编程语言中使用的关键字。 10
  • 11. 2、标识符 在Java编程语言中,标识符是赋予变量、类或方法的名称。变量、函数、类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。标识符可从一个字母、下划线(_)或美元符号($)开始,随后也可跟数字、字母、下划线或美元符号。标识符是区分大小写,没有长度限制,可以为标识符取任意长度的名字。 下面是几个有效的标识符: identifier thisone UserName User_name _system_varl $max 下面是几个非法的变量名: 3max (变量名不能以数字开头) room# (包含非法字符“#”) class (“class”为保留字) 标识符不能是关键字,但是它可以包含关键字作为它的名字的一部分。例如,thisone是一个有效标识符,但this却不是,因为this是一个Java关键字。 11
  • 12. 二、JAVA语言的基本数据类型逻辑型(boolean) 字符型(char) 整型(byte short int long) 浮点型(float double) 基本数据类型:1. 逻辑型 常量:true false 变量:用boolean进行声明的变量 用途:用作分支或循环判断12
  • 13. 2. 字符型常量:任何用单引号作起止分界符的单个字符 变量:用char进行声明的变量 举例:'a','B', '#', '*', '&' 注: Java中的字符型数据是16位无符号型数据,它表示Unicode集,而不仅仅是ASCII集。 ASCII集占用Unicode集的前127个值,因此,在JAVA中使用ASCII码与在其他编程语言中使用ASCII码是一样的。 字符型变量的取值可以使用字符常量,也可以使用整型常数。13
  • 14. public class CharVar { public static void main(String[] args) { char a,b; a='A'; b=65; System.out.println(a+" "+b); } }输出结果: A A14
  • 15. 不能直接将整型变量赋值给字符型变量,这样会产生数据类型不匹配错误。 例如: int i=65; char c=i; 是错误的,可以改为:int i=65; char c=(char)i; 字符可以可以加、减一个整型数值。 public class CharVar { public static void main(String[] args) { char a,b,c; a='A'; b=(char)(a+32); System.out.println(a+" "+b); } }必须进行强制类型转换15
  • 16. 表2-216
  • 17. 3. 整型常量:123 , -34,78L(长整型)(十进制) 077,-010(八进制) 0x3ABC,-0x100(十六进制) 变量:用byte ,short ,int , long声明的变量 注:四种整数类型的存储空间长度、能表示的范围是不一样的,如下表所示。 17
  • 18. 表2-318
  • 19. 4. 实型常量:4.345f , -34.089F(单精度) 7.897,-10.34(双精度) 变量:用float , double声明的变量 注: 如果一个数包括小数点或指数部分,或者在数字后带有字母F或f(float)、D或d(double),则该数为浮点数。 如果不明确指明浮点数的类型,浮点数缺省为double。 float f=3.14; 是错误的,应该写成: float f=3.14f; 在两种类型的浮点数中,float为32位,double为64位。 19
  • 20. 5. 基本数据类型的转换数据转换方式:自动转换 强制类型转换(1) 自动转换 当级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。 基本数据按精度从“低”到“高”顺序如下: byte short int long float double 例:int x=50; float y; y=x; 如果输出y的值,结果是50.020
  • 21. 5. 基本数据类型的转换(2) 强制类型转换 当级别高的变量的值赋给级别低的变量时,必须进行强制类型转换。 例:int x; float y=23; x=(int)y; 如果输出y的值,结果是23.0 x的值,结果是23 注: 将浮点数转换为整型数时,对小数部分进行截断处理,而不考虑四舍五入。21
  • 22. public class Example2_2 { public static void main (String args[ ]) { byte a=120; short b=255; int c=2200; long d=8000; float f; double g=123456789.123456789; b=a; c=(int)d; f=(float)g; //导致精度的损失. System.out.print("a= "+a); System.out.println(" b= "+b); System.out.print("c= "+c); System.out.println(" d= "+d); System.out.println("f= "+f); System.out.println("g= "+g); } }a=120 b=120 c=8000 d=8000 f=1.23456792E8 g=1.2345678912345679E822
  • 23. 三、JAVA语言的数组1. 声明数组 数组元素类型 数组名[]; 或 数组元素类型[] 数组名; 例:int a[],b[][]; float[] c; 注:数组声明后还不能直接使用,因为声明数组只是给出了数组的名字和数组元素的类型,还没有为这些元素分配内存空间。 数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标来使用数组中的数据,下标从0开始。23
  • 24. 三、JAVA语言的数组2. 创建数组 创建数组是为了给已经声明的数组指定内存空间。 数组名=new 数组元素类型[数组元素个数]; 注:"数组名.length" 表示一维数组中的包含元素的个数。 例1:int a[]; a=new int[8]; System.out.println(a.length); 例2:int x=20,k[]; k=new int[x]; System.out.println(a.length);int a[]=new int[8]; int a[]={1,2,3,4};24
  • 25. 例3: public class Example2_3 { public static void main(String args[]) { int a[]={1,2,3,4}; int b[]; System.out.println(a[3]); b=a; b[3]=100; System.out.println(a[3]); System.out.println(b[3]); } } 使b与a共用一段内存是否可以去掉此语句?25
  • 26. 本章主要内容2.1 简单JAVA程序介绍 2.2 变量与数据类型 2.3 表达式与运算符 26
  • 27. 按照运算符功能来分,基本的运算符分包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符等。 一、算术运算符 + - * / % ++ -- 注: (1)算术运算符的总体原则是先乘除、再加减,括号优先。 (2)整数除法会直接砍掉小数,而不是进位。 (3)对取模运算符%来说,其操作数可以为浮点数。如:37.2%10=7.2。 27
  • 28. (4)Java也用一种简写形式进行运算,并同时进行赋值操作。 例如,为了将10加到变量x,并将结果赋给x,可用:x+=10。 (5)Java对加运算符进行了扩展,使它能够进行字符串的连接,如"abc"+"def",得到串"abcdef"。 (6)前缀++、--与后缀++、--的区别: ++i在使用i之前,使i的值加1,因此执行完++i后,整个表达式和i的值均为i+1; i++在使用i之后,使i的值加1,因此执行完i++后,整个表达式的值为i,而i的值变为i+1。 --i在使用i之前,使i的值减1,因此执行完--i后,整个表达式和i的值均为i-1;i--在使用i之后,使i的值减1,因此执行完i--后,整个表达式的值为i,而i的值变为i-1。28
  • 29. 例: System.out.println(5%2); System.out.println(5.0/2); System.out.println("abc"+"xyz"); System.out.println('a'); System.out.println('a'+1); System.out.println('a'+'c'); 结果为:1结果为:2.5结果为:abcxyz结果为:a结果为:98结果为:19629
  • 30. 二、关系运算符与逻辑运算符关系运算符:> < >= <= == != 逻辑运算符:&& || ! & | ^ 注: 关系表达式与逻辑表达式的结果均为逻辑量。 逻辑运算符的操作数必须是boolean型数据。30
  • 31. 三、位运算符 & | ^ ~ << >> 注: 位运算符的操作数为整数 数符位参与运算 <<执行左移位,右边空位补0(乘) >>执行右移位,左边空位补0或1(除)31
  • 32. 四、instanceof及new运算符 instanceof运算符左边的操作数是一个对象,右边的操作数是一个类。当左边的对象是右边的类创建的对象时,结果是true,否则结果是false。 new运算符用来创建一个新的对象或数组。32