3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例 第三章 数据类型、变 量与表达式 3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
Review 1: 试着编写一个简单的java application程序,当通过java Welcome命令时,可以在命令行界面上打印一行语句: “Welcome to Java World !!!”
Welcome to Java World!!! Java 程序至少包含一个类,每个类从类的声明开始,定义自己的数据和方法。 public 为修饰符; Class为保留字; Welcome 为类的名字 //welcome.java: this application program prints Welcome to Java World on the console !!! public class Welcome { Public static void main ( String[] args ) System.out.println( “Welcome to Java World !!!” ); } 注:保存的时候文件名要和类名一致,包括大小写
编译源程序 运行Java程序 首先在命令提示符下,进入该文件的根目录 用javac命令编译源文件,如: javac Welcome.java java Welcome
Review 2:Applet程序的编写与运行 编写源程序 (例MyFirstApplet.java) import java.applet.*; import java.awt.*; public class MyFirstApplet extends Applet { public void paint(Graphics g) g.drawString("Hello! java world!",2,20); }
建立MyFirstApplet.html,将MyFirstApplet.class字节码文件放入其中。 编译源程序 建立MyFirstApplet.html,将MyFirstApplet.class字节码文件放入其中。 <HTML> <HEAD> <TITLE> MyFirstApplet program </TITLE> </HEAD> <BODY> <p> <applet code=MyFirstApplet.class width=300 height=200> </applet> </BODY> </HTML> 浏览MyFirstApplet.html
小窍门:为他人的阅读提供方便 文档生成器(javadoc.exe) 实现步骤: 接受源文件(后缀为.java)输入,然后自动生成一个HTML文件,内容包括java源文件中的类、变量、方法、接口、异常等。 实现步骤: 在文档中利用/** ….*/实现注释 利用javadoc -d path Welcome.java命令
学习目标 认识Java基本数据类型 理解标识符、变量和常量 使用赋值语句 使用Java运算符并书写Java表达式 编写简单的Java程序
2.1 数据类型 数据类型的分类如下所示: 整型:byte,short,int,long 数值型 实型:float,double 基本数据类型 字符型:char 布尔型:boolean 数据类型 类:class 复合数据类型 数组和字符串 接口:interface
基本数据类型 布尔型数据只有两个值true和false,且它们不对应于任何整数值。布尔型变量的定义如: 布尔型 boolean 布尔型数据只有两个值true和false,且它们不对应于任何整数值。布尔型变量的定义如: boolean b = true; 字节型 byte 字节型以一个字节来表示有符号整数值,取值范围为-128~127。它有八进制、十进制和十六进制三种表示方式。定义如下: byte x=18;
数据类型 所占位数 数的范围 -215~215-1 -231~231-1 -263~263-1 整型数据 短整型(short):用2个字节表示整数值; 整型(int):用4个字节表示整数值; 长整型(long):用8个字节表示整数值。 注:在声明长整型时,在整数后要加“L”或“l”以示区别。 数据类型 所占位数 数的范围 short 16 -215~215-1 int 32 -231~231-1 long 64 -263~263-1
开动脑筋:编译结果是什么? public class ByteTest { public static void main ( String [] args ) byte b; b = 3 ; b = b * 3; System.out.println( b ); }
开动脑筋:编译结果是什么? public class ByteTest { public static void main ( String [] args ) byte b; b = 3 ; b = (byte) (b * 3); System.out.println( b ); }
字符型 char 字符(char)类型以2个字节表示一个字符。char类型的数据可以转换为整数类型、其值范围为0~65535。定义char类型字符时,要用一对单引号将字符括起来。如: char c=’x’; 浮点型 float与double是Java用来表示实数的两种数据类型。 float是32位单精度浮点数,而double则是64位双精度浮点数。Float类型的数据其最后一个字符之后需加入“F”或“f”,如果数据其最后一个字符之后没有“F”或“f”,则默认为double类型的数值。
再动动脑筋! public class FloatTest { public static void main ( String [] args ) float f; f = 1.3 ; System.out.println( f ); }
再动动脑筋! public class FloatTest { public static void main ( String [] args ) float f; f = 1.3f ; System.out.println( f ); }
2.2标识符与关键字 2.2.1 标识符 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)。 例子: 合法标识符:identifier,userName,User_Name,_sys_val, $change 非法标识符:2mail, room#,class
Java语言对标识符的使用有如下规定: 1、标识符可以由字母、数字、下划线(_)或美元符号($)组成。 2、标识符必须以字母、下划线或美元开头。 3、Java语言是区别大小写语言,Myfirst与myfirst分别代表不同的标识符。 4、标识符不能与关键字(保留字)同名。 5、使用标识符应该在一定的程度上反应出它所表示的变量、常量、类或对象和含义。
java语言中的保留字均用小写字母表示。 2.2.2 关键字 具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserved word),也称为关键字 ,下面列出了java语言中的所有保留字: bstract,break,byte,boolean,catch,case,class,char,continue,default,double,do,else,extends,false,final,float,for,finally,if,import,implements,int,interface,instanceof,long,length,native,new,null,package,private,protected,public,return,switch,synchronized,short,static,super,try,true,this,throw,throws,threadsafe,transient,void,while java语言中的保留字均用小写字母表示。
2.3 常量 整型常量 十进制整数 :如123,-456,0 八进制整数 : 以0开头,如0123表示十进制数83,-011表示十进制数-9。 十六进制整数 :以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18。
浮点型常量 浮点数常量也叫实常量。 十进制数形式:由数字和小数点组成,且必须有小数点,如0.123, 1.23, 123.0 科学计数法形式 :如123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。 float型(单精度浮点型)的值,必须在数字后加f或F,如1.23f。
布尔型常量 JAVA语言的布尔常量的取值要么为true、要么为false,它们分别表示真、假两种不同的状态。 字符型常量 字符常量是用单引号括起来的一个字符,如'a','A'; 字符串型常量 字符串常量是用一对双引号括起来的一系列字符。如”It is a nice day!”和”Java” ;注意,‘c’不等于“c”。
null常量只有一个值,用null表示,表示对象的引用为空。 自定义 利用final 数据类型 常量名 = 数值 Final int A =12;
2.4 变量 2.4.1变量的概念 JAVA语言的变量用于存储值变化的量。它是在程序运行期间,系统为程序分配的一块内存单元,变量名为内存单元的名称, 内存单元中所装载的数据就是变量的值。 JAVA语言中的变量必须先定义后使用,定义变量包括指明变量的数据类型和变量名称,必要时还可以指定变量的初始数值。 JAVA语言的变量的定义语句格式为: 数据类型 变量名表;
int a,b,c; People i,j; J=new people (); i=j;
变量有两种类型 简单类型变量 保存在堆栈中 对象变量 保存在堆中 需要用new来分配空间
变量名 字节 Int型 变量名
对象 变量名 32位地址 对象实际存储空间
一个进程有一个堆栈,独享 堆栈大小有限制 进程 堆栈 简单变量
对象内容不放在堆栈stack中,放在堆heap中 对象引用放在堆栈中 进程 堆 堆栈 对象变量
数据类型的转换有自动转变和强制转换两种形式。 2.4.2 基本数据类型转换 数据类型的转换有自动转变和强制转换两种形式。 自动类型转换 整型,实型,字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。 自动类型转变,需要同时满足两个条件,第一是两种类型彼此兼容,第二是目标类型的取值范围大于源类型。 例如,当byte型向int型转换时,由于int型的取值范围大于byte型,就会发生自动转换。 不同类型数据间的优先关系如下: 低------------------------------------------------------>高 byte,short,char-> int -> long -> float -> double
当两种类型彼此不兼容,或者目标类型的取值范围小于源类型,自动转换无法进行,这时就需要进行强制类型转换。强制类型转换的通用格式如下: 目标类型 变量=(目标类型)值; 高级数据要转换成低级数据,需用到强制类型转换 如:int i = 256; byte b = (byte) i; b=? 表达式数据类型的自动提升 如果在JAVA应用程序表达式中出现数据类型不一致的情形,那么JAVA运行时系统首先自动将低优先级类型的数据转换成高优先级类型的数据,然后才进行表达式值的计算。
变量的作用域 Java 语言的变量有一定的生存周期和有效范围。Java 语言用大括号将若干语句组成语句块,变量的有效范围是声明它的语句所在的语句块,一旦程序的执行离开了这个语句块,变量就变得没有意义,不能再使用了。
2.5 运算符与表达式 2.5.1 Java中的运算符 运算符是一种特殊符号,用以表示数据的运算、赋值和比较。一般由一至三个字符组成,但Java将其视为一个符号。运算符有以下几种: ·算术运算符 ·赋值运算符 ·比较运算符 ·逻辑运算符 ·位运算符
算术运算符: +,―,*,/,%,++,――。 例如: 3+2; a-b; i++; --i; 注意: (1)“+”除有字符串连接的功能外,还能将字符串与其他的数据类型相连组成一个新的字符串,条件是表达式中至少有一个字符串。如:”a”+68;,结果是”a68”。 (2)++a是在变量参与参与运算之前自增1,然后用新值参与运算;而a++则是先用原来的值参与运算,然后再将自己加1。--a与a—与上述相类似。 (3)除号“/”,整数除和小数除是有区别:整数之间做除法时,只保留整数部分而舍弃小数部分。 Int a=4; 3+a++; 3+(++a);
If (a=3){} 赋值运算符=,及其扩展赋值运算符如+=,―=,*=,/=等 例如: i=3; i+=3; (i=i+3) 比较运算符: >,<,>=,<=,==,!= 例如: count>3; I==0; n!=-1; 逻辑运算符:!,&&,|| , &,|,^ 位运算符: >>,<<,>>>,&,|,^,~ 条件运算符:? : 例如:result=(sum= =0 ? 1 : num/sum); If (a=3){}
表达式 表达式是由操作数和运算符按一定的语法形式组成的符号序列。一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值;表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。
小试牛刀 例子: 编写的程序用于计算圆的面积; 接受用户的输入,读取半径值; 利用下面的公式计算面积: 显示面积area。 Area = radius * radius * 3.14159 显示面积area。
//ComputeArea.java: Comute the area of a circle public class ComputeArea { Public static void main ( String[] args ) Double radius; Double area; System.out.println( “Welcome to Java World !!!” ); }
import javax.swing.JOptionPane; public class ComputeArea { public static void main(String[ ] args) double radius; double area; radius = Double.parseDouble(JOptionPane.showInputDialog("请输入半径值")); area = radius * radius *3.14159; JOptionPane.showMessageDialog(null,"area = "+ area); }
第三部分 控制语句