Java程序设计基础-第2章java语言基础.ppt
,主讲:高悟实,JAVA程序设计基础,TEL:88549109 EMAIL:gwssdili.edu.cn,第二章JAVA语言基础,3,通过本章的学习,主要掌握以下知识点: Java使用的数据类型 数据类型转换 由键盘输入数据 运算符与表达式 本章的重点: 由键盘输入数据 本章的难点: 数据类型转换 表达式及运算符的优先级、结合性,4,本章主要介绍编写Java程序必须掌握的若干语言基础知识,包括数据类型、变量、常量、表达式等。掌握这些基础知识,是编写正确Java程序的前提条件。,5,2.1 数据类型,Java定义了4类共8种基本类型,它们的分类及关键字如下: 整型 byte,short,int,long 浮点型 float,double 逻辑型 boolean 字符型 char,Java数据类型分为两大类,一类是基本数据类型,另一类是引用类型。,6,1整型,表2.1 Java语言的四种整型,7,2浮点型,表2.2 Java的两种浮点型,3逻辑型 真:true 假:false 4字符型,8,表2.3 Java的基本数据类型,9,表2.4 数值型常量的特殊值代码,10,2.2 关键字与标识符,1关键字 关键字(keyword)是Java中具有特殊含义的字符序列,因此Java不允许用户对关键字赋予其他的含义。Java定义的关键字如表2.5所示。,11,表2.5 Java定义的关键字,12,2标识符 Java用标识符(identifier)表示变量名、类名和方法名。 (1) 可以由字母、数字和下划线(_)、美元符号($)组合而成; (2) 必须以字母、下划线或美元符号开头,不能以数字开头。,13,2.3 常量,1整型常量 2浮点型常量 单精度浮点常量(后跟一个字母f或F) 双精度浮点常量(后跟一个字母d或D,可省略) 逻辑型常量 true真 false假 字符型常量,14,表2.6 常用的转义字符,15,5字符串常量 双引号引起的部分即为字符串常量 如:“hello world”,6. 常量的声明 用关键字final标识,通常final写在最前面。例如: final int MAX10; final float PI3.14f;,16,2.4 变量,使用变量的原则:先声明后使用。 变量的三个基本要素:名字、类型和值。,17,1变量声明,格式: =,= 例如: int i,j,k; 在声明变量的同时可以对变量进行初始化,即赋初值。例如, int i0;,18,格式: 变量名=值 举例: boolean b=true; /声明boolean型变量并赋值 int x,y=8; /声明int型变量 float f=2.718f; /声明float型变量并赋值 double d=3.1415; /声明double型变量并赋值 char c; /声明char型变量 c=u0031 ; /为char型变量赋值 x=12; /为int型变量赋值,2变量的赋值,19,2.5 数据类型转换,Java语言的数据类型在定义时就已经决定,因此不能随意转换成其他的数据类型,但java语言允许用户有限度地做类型转换处理,这就是数据类型转换。,20,1. 数值型不同类型数据的转换,(1)自动类型转换 转换前的数据类型与转换后的类型兼容。 转换后的数据类型的表示范围比转换前的类型大。,21,【例2.1】数据类型的自动转换。 /app2_1.java 类型自动转换 public class app2_1 public static void main(String args) int a=155; float b=21.0f; System.out.println(”a=”+a+”,b=”+b); /输出a,b的值 System.out.println(”a/b=”+(a/b); /输出a/b的值 输出结果为: a=155,b=21.0 a/b=7.3809524,22,(2) 强制类型转换 格式: (欲转换的数据类型)变量名,23,【例3.2】整型与浮点数据类型的自动转换。 /app2_2.java 整数与浮点数的类型转换 public class app2_2 public static void main(String args) int a=155; int b=9; float g,h; System.out.println(”a=”+a+”,b=”+b); /输出a,b的值 g=a/b; /将a除以b的结果放在g中 System.out.println(”a/b=”+g+”n”); /输出g的值 System.out.println(”a=”+a+”,b=”+b); /输出a,b的值 h=(float)a/b; /先将a强制转换成float类型后再参加运算 System.out.println(”a/b=”+h); /输出h的值 ,24,程序执行结果如下: a=155,b=9 a/b=17.0 a=155,b=9 a/b=17.222221,25,2. 字符串型数据与数值型数据相互转换 (1)字符串转换成数值型数据,表3.7 字符串转换成数值型数据的方法,26,例如: String MyNumber=“1234.567“; /定义字符串型变量MyNumber float MyFloat=Float.parseFloat(MyNumber);,(2)数值型数据转换成字符串 例如: int MyInt=1234; /定义整形变量MyInt String MyString=“+MyInt; /将整型数据转换成了字符串,27,2.6由键盘输入数据,利用键盘输入数据,Java语言有如下基本格式:,import java.io.*; public class class_name /类名称 public static void main(String args) throws IOException bufferedReader buf; String str; buf=new bufferedReader(new InputStreamReader(System.in); str=buf.readLine(); ,28,【例2.3】从键盘输入数据。 /app2_3.java 由键盘输入字符串 import java.io.*; /加载java.io类库里的所有类 public class app2_3 public static void main(String args) throws IOException BufferedReader buf; String str; buf=new BufferedReader(new InputStreamReader(System.in); System.out.print(”请输入字符串;”); str=buf.readLine(); /将输入的文字指定给字符串变量str存放 System.out.println(”您输入的字符串是:”+str); /输出字符串 ,29,【例2.4】从键盘输入数字,然后将其转换成数值型数据。 import java.io.BufferedReader; import java.io.*; public class app2_4 public static void main(String args) throws IOException float num; String str; BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in); System.out.println(“请输入一个实数“); str=buf.readLine(); num=Float.parseFloat(str); System.out.println(“你输入的数为:“+num); ,30,3.输入多个数据,我们可以利用java.util类库中的Scanner类简化输入多个数据。,Import java.util.* Public class class_name /类名称 public static void main(String args) Scanner reader=new Scanner(System.in); double num; . num=reader.nextDouble(); ,31,/app2_5.java 由键盘输入多个数据 import java.io.*; public class app2_5 public static void main(String args) int num1; double num2; Scanner reader=new Scanner(System.in); Scanner.out.print(“请输入第一个数:”); num1=reader.nextInt(); System.out.print(“请输入第二个数:”); num2=reader.nextDouble(); System.out.println(num1+”*”+num2+”=“+(num1*num2); ,32,2.7 运算符与表达式,算术运算符 +、-、*、/、%、+、- 关系运算符 、=、&、|、 赋值运算符 =、及其扩展赋值运算符,如+=、/=等。 条件运算符 ? : 其他运算符号 包括分量运算符.、下标运算符 、实例运 算符instanceof、内存分配运算符new、强制类型转换运算 符(类型)、方法调用运算符()等。,33,1二元算术运算符,表 :二元算术运算符,2.7.1算术运算符,34,2一元算术运算符 表:一元算术运算符,35,2.7.2关系运算符,表: 关系运算符,36,表: 逻辑运算符,2.7.3 逻辑运算符,37,简洁与或运算和非简洁与或运算的区别,非简洁运算必须在计算完左右两个表达式之后,才取结果值。 简洁运算可能只计算左边的表达式而不计算右边的表达式,即对于对于|,只要左边表达式为true,就不计算右边表达式,则整个表达式为true。,38,【例2.6】 关系运算符和逻辑运算符的使用。 /app2_6.java 关系运算符和逻辑运算符的使用 public class app2_6 public static void main(String args) int a=25,b=7; boolean x=a5; /y=true System.out.println(”xy=”+(xy); if(e!=0 ,39,其运行结果为: ab=false xy=true a%e=1 f=0,40,表: 位运算符,2.7.4 位运算符,41,2.7.5 赋值运算符,1 赋值运算符 格式: 变量或对象=表达式,赋值运算符右端的表达式可以还是赋值表达式,形成连续赋值的情况。例如: a=b=c=8;,42,2扩展赋值运算符 在赋值符“=”前加上其他运算符,即构成扩展赋值运算符,例如:a+=3等价于a=a+3。,43,表: 扩展赋值运算符,44,2.7.6条件运算符,格式: ? : 其中“表达式1”是一个结果为逻辑值的布尔表达式。 功能:先计算的值,当的值为true时,则将的值作为整个表达式的值;当的值为false时,则将的值作为整个表达式的值。,45,例如: int a=1,b=2,max; maxa b ? a : b; /max获得a,b之中的较大值 System.out.println(“max=“+max); /输出结果为max2,46,2.7.7 字符串运算符,字符串运算符“+”完成字符串连接操作,如果必要,则系统自动把操作数转换为String型。例如: float a=100.0; /定义变量a为浮点型 print(“The value of a is“+a+“n“); /系统自动将a转换成字符串,47,2.7.8 表达式及运算符的优先级、结合性,48,表:运算符的优先级及结合性(表顶部的优先级较高),Thank You!,