1、1.标识符的定义标识符是以字母(包括汉字),下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。,2. 注意几点: (1) Java的保留字不能作为标识符。 (2) Java是大小写敏感的语言。(3) 能见名知义。,2.1.1 标识符,一些单词赋以特殊的用途,不能当作一般的标识符使用,这些单词称为关键字(Key word)或保留字(reserved word)。,有关Java关键字要注意两点:Java语言中的关键字均为小写字母表示。TRUE、NULL等不是关键字。 goto和const虽然在Java中没有作用,但仍作为关键字保留。,2.1.2 关键字,下列哪些是
2、合法的Java标识符名字?,A. counterl B. $index, C. name-7 D. _byte E. 1array F. 2i G. try H. char,【答案】AD,2.1.3 分隔符,在Java中,圆点“.”、分号“;”、空格和花括号“ ”等符号具有特殊的分隔作用,2.1.4 注释,(1)单行注释符,在语句行中以“/”开头到本行末的所有字符视为注释。 (2)多行注释,以“/*”和“*/”进行标记,其中“/*”标志着注释块的开始,“*/”标志注释块的结束。 (3)文档注释,类似前面的多行注释,但注释开始标记为“*”,结束仍为“*/”,2.2.1 数据类型,2.2.1 基本
3、数据类型,1布尔常量,布尔常量只有true和false两个取值。,2.2.2 常量,2整数常量,不带小数的数,但包括负数 。,在Java中整数常量分为long、int、short和byte四种类型,Java语言的整型常量默认为int类型,Java中对于数值数据的表示有以下几种形式: 十进制:数据以非0开头,例如:4,-15; 八进制:数据以0开头,例如:054,012; 十六进制:数据以0x开头,例如:0x11,0xAD00二进制(是JDK1.7新增功能):数据以0b开头,例如:0b101。,3浮点常量,浮点常量有两种表示形式: 小数点形式:如:6.37,-0.023; 指数形式:也称科学表示
4、法, 如:3e-2代表0.03, 3.7E15代表3.7*1015,区分类型-在常量后面加后缀修饰float类型以F/f结尾,double类型以D/d结尾。 如果浮点常量不带后缀,则默认为双精度常量。,4. 字符常量,字符常量是由一对单引号括起来的单个字符或以反斜线()开头的转义符, Java的字符编码采用了国际统一标准的Unicode码 (2字节),5字符串常量,由双引号括起来的有0到多个字符组成 的字符系列。 例如:“ “ -含0个字符“ “ -含1个空格“ a“ , “ 123 456“,1 变量的定义与赋值,变量必须先声明,后使用。,声明格式:类型 变量名=值 ,变量名=值,;,例:d
5、ouble m , n=0; char c=a;,变量的命名要符合标识符的规定;在一定范围内不能定义两个同名的变量; 程序中用变量名来引用变量的数值。,2.2.3 变量, 代表可选项,2变量的取值范围,不同数值型变量的存储空间大小不同,因此能存储的数值范围也不同。各种数值变量对应的包装类中分别定义了两个属性常量MAX_VALUE和MIN_VALUE指示相应基本类型的数值范围,字节型的取值范围是:-128 127 短整型的取值范围是:-32768 32767 整型的取值范围是:-2147483648 2147483647 长整型的取值范围是:-9223372036854775808 922337
6、2036854775807 单精度浮点型的取值范围是:1.4E-45 3.4028235E38 双精度浮点型的取值范围是:4.9E-324 1.7976931348623157E308,3 赋值与强制类型转换,赋值语句的格式: 变量=表达式;,先计算右边表达式的值,再将结果赋给左边的变量。,x=x+1;,自动转换的次序为: byteshortcharintlongfloatdouble,强制类型转换格式为: 变量 = (数据类型)表达式,赋值号两边数据类型不一致的处理:,例2-1 简单数据类型的使用 public class SimpleDataType public static void
7、main (String args ) int i = 3; byte b = (byte)i; short si = 20000; int li=(int)4.25; float f = 3.14f;System.out.println(b+“t“+si+“t“+i+“t“ +li+“t“+f); ,【运行结果】 3 20000 3 4 3.14,2.3 表达式与运算符,运算符按操作数的数目分类: 一元运算符:只需要一个运算对象的运算符称为一元运算符。 例:x=-x; 二元运算符:需要两个运算对象的运算符号称为双元操纵符。 例:x=x+2; 三元运算符:三元运算符需要三个运算对象。Java有
8、一个三元运算符“ ? : ”,它是一个简要的ifelse语句。,1. 双目算术运算符,几点注意: 1) “/”运算对与整数和浮点数情况不同,7/2结果为3,而7.0/2.0结果为3.5。 2) 取模运算“%”一般用于整数运算,它是用来得到余数部分。例如:7%4的结果为3。但当参与运算的量为负数时,结果的正负性取决与被除数的正负。,2.3.1 算术运算符,(3)如果出现各种类型数据的混合运算,系统将按自动转换原则将操作数转化为同一类型,再进行运算。如:一个整数和一个浮点数进行运算,结果为浮点型。,看看如下程序段。 char c = a; int d = c-c; int x = c+1; cha
9、r c2 = (char)x; System.out.println(c+“t”+d+“t”+x+“t”+c2); 则该程序段对应的输出结果如下:,a 2 98 b,2. 单目算术运算符,几点说明: 变量的自增与自减与+出现的前后位置无关。无论是+x还是x+均表示x要增1。 表达式的值与运算符位置有关。,2.3.2 关系运算,结果是布尔值(true或false),2.3.3 Java逻辑运算符,设x=3,执行下面语句结果为true。 System.out.println(x=3)|(x/02); 如果将代码改为:System.out.println(x/02)|(x=3); 则运行时将产生算术
10、运算异常,不能用x去除0。,2.3.4 位运算,是对操作数以二进制比特(bit)位为单位进行的操作运算,1 移位运算符-使用示例,在处理带符号的右移中,右移后左边的留出的空位上复制的原数的符号位。而不带符号的右移中,右移后左边的空位一律填0。带符号的左移在后边填补0。,数据在计算机内是以二进制补码的形式存储,正负数的区别看最高位:0代表正数;1则为负数,2按位逻辑运算 x=13,y=43,计算各运算结果。,首先,将数据转换为二进制形式:x=1101,y=101011 以字节数据为例,x和y均占用一个字节,所以x和y的二进制为:,x=00001101, y=00101011,x结果应为11110
11、010,十进制结果为-14。,x&y=1001,也即十进制的9,2.3.5 赋值组合运算符,是指在赋值运算符的左边有一个其它运算符例如:x+=2; /相当与x=x+2 其功能是先将左边变量与右边的表达式进行某种运算后,再把运算的结果赋给变量。 能与赋值符结合的运算符包括: 算术运算符:+,-,*,/,% 位运算符: &,|, 位移运算符:,2.3.6 其它运算符,2.3.7 Java运算符的优先级与结合性,Java运算符的优先级与结合性 (续),1数据的输出,(1)print()方法:实现不换行的数据输出; (2)println()方法:与上面方法的差别是输出数据后将换行。 (3)printf
12、()方法:带格式描述的数据输出。该方法包含两个参数,第一个参数中给出输出格式的描述,第2个参数为输出数据,其中,输出格式描述字符串中需要安排与输出数据对应的格式符。常用格式符包括:%d代表十进制数;%f代表浮点数;%e代表科学表示法的指数位数;%n代表换行符;%x代表十六进制数;%s代表字符串。,2.4 数据的输入输出,例2-2 数据输出应用举例,public class Test public static void main(String a ) int m = 12, n = 517;System.out.print(“n%m=“ + (n % m);System.out.println
13、(“tn/m=“ + (n / m);System.out.print(Integer.toBinaryString(m);System.out.println(“t“ + Integer.toBinaryString(m 2);System.out.printf(“Value of PI is %.3f %n“, Math.PI);System.out.printf(“result1= %e %n“, 1500.34);System.out.printf(“result2= %13.8e %n“, 1500.34);,n%m=1 n/m=43 1100 11 Value of PI is 3
14、.142 result1= 1.500340e+03 result2= 1.50034000e+03,1. 字符类型数据的输入,利用标准输入流(System.in)的read()方法,可以从键盘读取字符。但要注意,read()方法从键盘获取的是输入的字符的字节表示形式(返回结果为int类型),需要使用强制转换将其转化为字符型 char c=(char)System.in.read();,2字符串的输入,方法1:利用获取字符的办法将一个个字符拼接为一个字符串。但这样做除了编程复杂外,更重要的是效率也比较低;方法2:将键盘输入的数据看作字符流,利用InputStreamReader将从键盘输入的字
15、节流数据转化为字符序列来识别 。利用BufferedReader对字符流序列进行过滤,借助BufferedReader流对象提供的方法readLine()从键盘读取一个字符串。,通过流变换获取字符串,System.in,read(byte b):读一系列字节,InputStreamReader,字节流,字符流,BufferedReader,read(char cbuf):读一系列字符,readLine():读一行字符串(String),InputStream,带缓冲的字符流,例2-3 字符串类型数据输入,import java.io.*; public class InputString pu
16、blic static void main(String args) String s=“; System.out.print (“Enter a String please: “); try BufferedReader in= new BufferedReader(new InputStreamReader(System.in); s=in.readLine(); catch (IOException e) System.out.println (“Youve entered a String: “ +s); ,3. 整数和双精度数的输入,先通过上面的方法获取一个由数字字符组成的字符串,然
17、后通过下面的转换方法转换成需要的数据。 Integer.parseInt(String s) :将数字字符串转化为整数 。 Double.parseDouble(String s) :将字符串形式的数字数据转化为双精度数。,例如: String x=“123“; int m= Integer.parseInt(x); /m的值为123 x=“123.41“; double n= Double.parseDouble(x) ; /n的值为123.41,2.4.2 用swing对话框实现输入输出,import javax.swing.*; public class Test2public stat
18、ic void main(String args) String s= JOptionPane.showInputDialog(“请输入你的姓名:“);JOptionPane.showMessageDialog(null, “华东交大欢迎你:“ + s); ,例2-4 用Swing对话框输入和显示数据,2.5 常用数学方法,常量 Math.PI代表数学上的 Math.E代表数学上的e,Math类的主要方法 int abs(int i) int max(int i1,int i2) double floor(double d) double random() long round(double
19、d) double log(double d) double exp(double x) double pow(double a, double b) double sqrt(double a) double cos(double d),产生01之间, 不包括0和1 思考? X=(int) (random()*100),不大于d的最大整数,求最靠近d的整数,例2-5 输入圆的半径,计算圆面积,输出结果精确到小数点后3位。,import javax.swing.*; public class Test3public static void main(String args) String s=
20、JOptionPane.showInputDialog(“输入圆半径:“);double r=Double.parseDouble(s);double area= Math.PI * r * r;System.out.printf(“圆的面积=%.3f “,area); ,思考以下问题第1组,标识符用于哪些地方,举3个例子? 注释起什么作用?有哪几种? Java的数据类型有哪些? 布尔常量有哪两个? 八进制和十六进制怎么表示? 如何区分单精度和双精度实数? 字符和字符串有何差异?,思考以下问题第2组,变量定义和赋值有何要求? 赋值时强制转换和自动转换有何规律? 解释/和%运算符的使用特点? 表达式a+和+a的使用差异? 关系运算符相等和不等如何表示? 逻辑运算符有哪些?,思考以下问题第3组,print和println的差异? 如何从键盘获取一个输入串? 如何从键盘输入得到一个整数?双精度数? 使用swing消息框输出至少需要几个参数? Math类方法的使用?写出Java表达式,编程练习,输入园的半径,求周长和面积. 用产生随机数的方法产生两个1位整数,求其和与积.,