1、Java语言基础,4,4.1 Java 程序的构成 4.2 数据类型、变量与常量 4.3 表达式 4.4 流程控制语句 4.5 小结,Java 程序的构成,4.1,Java源程序是由类组成的,每个程序中可以定义若干个类,但只能有一个主类。在java application中,主类是指包含main()方法的类,但在java applet程序中,主类是applet类的一个子类。主类是程序执行的起点。java程序中定义类使用class。类的定义是由类头定义和类体定义两部分组成的。类体中包含属性和方法。类头定义中可以包含类的父类和实现的接口:如:class FrameInOut extends Fra
2、me implements ActionListener同其它语言一样,语句也是java的基本组成部分。比语句更小的是表达式、变量、常量和关键词。,数据类型、变量与常量,4.2,一、数据类型:如下表所示。,JAVA的数据类型与C是不一样的,不同点如下所示: 1、占用的长度是不一样的; 2、java的数据类型有一个缺省值; 3、java字符类型与C的字符类型不一样; 4、java的数据类型都存在一个对应的引用类型. 二、标识符: 变量,函数,类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。在Java语言里,标识符以字符或_或$开头,后面可以包含数字,标识符是大小写有区别的,没有
3、长度限制。 有效的标识符mynameict_networkHello_sys_path$bill 例子:inta_number;char_onechar;float$bill; 关键词abstract、continue、for、new、switchboolean、default、goto、null、synchronizedbreak、do、if、package、this,byte、double、implement、threadsby、value、else、import、protected、throwcase、extends、instance、of、public、transientcatch、f
4、alse、int、return、truechar、final、interface、short、tryclass、finally、long、static、voidconst、float、native、super、while 其它保留词以下单词被保留使用:cast、future、generic、inneroperator、outer、restvar 三、常量:是在程序运行期间都不改变的量。 1、布尔常量:true 和false; 2、整形常量:分为十进制、八进制和十六进制。如:100;076;0x789.按在内存中所占用的内存长度以分为整形和长整形。如:-56l,478L。,3、浮点常量:表示是可
5、以含有小数点的数值常量,它可以分为一般浮点常量和双精度浮点常量。如:14.3f,2.31E3;12.56d. 4、字符常量:用一对单引号括起来的单个字符表示。如:a、b、e。转义字符也是字符,不过它含有特殊的含义。 5、字符串常量:是用双引号括起的若干个字符组成。 四、变量:是指在程序运行期间可以变化的量。任何就是都必须先定义后使用,变量的定义形式为:类型符 标识符; 如:char MyChar=b;long MyLong=478l;和C语言一样,每个变量都有一定的生存期。 然后讲p36例子。,表达式,4.3,表达式:是由变量、常量、对象、方法调用和操作符组成的式子。符合语法规则的表达式可以被
6、编译系统执行和计算。 一、赋值和强制类型转换:1、赋值:即给程序中的对象或变量一定的内容,其格式为:变量或对象=表达式;如:i=0;j=i;k=4+j*5;MyFirstString=MyDouble.toString();MySecondString=MyFirstString;,MyFirstString,MySecondString,使用赋值运算符时要注意以下问题: (1)当赋值号左边是一个对象名时,是把右边表达式所得的对象的引用赋给它,而不是为这个对象开辟新的空间。 (2)使用赋值号时,当两边数据类型不一致时,将需要把右边表达式的类型转换成与左边相一致的类型。这种转换有时是自动的,有时
7、是需要强制执行的。 2、类型强制转换:它的格式为: (数据类型)变量名或表达式;java 语言规则:凡是将变量从占用内存较少的类型向占用内存较多的类型转换时,可以不做显式的类型转换,而相反时则必须进行强制类型转换。 如:byte MyByte=10;int MyInteger=-1; 则有:MyInteger=MyByte;MyByte=(Byte)MyInteger;,二、算术运算符: 1、双目运算符:,2、单目运算符:,这里特别要注意的是:+和-,它们若放在前面,是先执行单目运算符,然后再执行其它运算,否则相反。如:int x=2;int y=(+x)*3;与int x=2;int y=(
8、x+)*3;就不一样。(讲例3-4),3、关系运算符:,关系运算的结果是布尔型的值,即:true和false; (讲例p3-5),4、逻辑运算符:,逻辑运算是针对布尔型数据进行的运算,运算结果仍为布尔型值,即:true和false;,大家可以自己考虑。 (讲例p3-6),5、位运算符:,6、其它运算符: (1)、三目运算符:?: 格式为:x?y:z; 规则为:若x为真,则整个式子的结果为表达式y的值,否则为表达式z的值。 如:int x=5,y=8,z=2;int k=x0?x:-x; (2)、复杂赋值运算符: 格式为: x=a; 规则为:x=xa;其中op可以为下列运算任之一:+、-、*、/
9、、%、&、|、。 (3)、括号与方括号:()、。 (4)、对象运算符:instanceof用来测定一个对象是否属于某一类的实例,若是则返回真,否则则返回假。,7、运算符的优先级与结合性:,、注释:java的注释有两种: ()行注释/: ()注释块:以/*开始,到*/结束。 其中:/也称为单行注释,/*/也称为多行注释。,程序控制语句,4.,流程控制语句是用来控制程序中各语句执行顺序的语句,是程序中非常关键和基本的部分。流程控制语句可以把单个语句组合成有意义的,能完成一定功能的小逻辑模块,能否熟练地运行流程控制语句往往很大程度上影响程序的质量。最主要的流程控制方式是结构化程序设计中的三种基村结构
10、。 一、结构化程序设计的三种基本结构:,二、分支语句:Java中分支语句有两个,一个是if语句,另一个是switch语句。 1、if语句: 语句形式为:if(条件表达式)语句块1; else语句块2; 或if(条件表达式)语句块;其它语句; 执行过程为:若条件表达式为真,则执行语句块2,否则执行语句块2。 (讲例p3-7).,2、switch语句: 语句形式为:switch(表达式有e) case 常量1:语句块1;break;case 常量2:语句块2;break;case 常量3:语句块3;break;case 常量n:语句块n;break;default:语句块n+1; 它的执行过程如下
11、图所示。,计算表达式,常量1,常量2,常量n,default,。,break?,语句块1,语句块2,语句块n,语句块n+1,n,y,y,y,y,y,n,n,n,n,break?,n,y,break?,n,y,注意以下程序段的执行情况:switch(MyGrade) case A:MyScore=5;case B:MyScore=4;case C:MyScore=3;case D:MyScore=0; switch(MyGrade) case A:MyScore=5;braek;case B:MyScore=4;break;case C:MyScore=3;break;case D:MyScor
12、e=0;break;,switch(MyGrade) case A:case B:case C:MyScore=1;break;case D:MyScore=0;break; 三、循环语句:是需要重复执行的程序结构,有三种结构,它们如下:,条件表达式,循环体,条件表达式,循环体,表达式2,循环体,表达式1,表达式3,1、while语句:语句形式为: while(条件表达式)循环体; 2、do-while语句:语句形式为: do循环体;while(条件表达式); 3、for语句:语句形式为:for(表达式1,表达式2,表达式3)循环体; (讲例p3-8,p3-9,p3-10),四、跳转语句:是用
13、来在程序进行流程的转移。在Java中的三个跳转语句:continue语句、break语句、return语句。 1、continue语句:它必须用在循环语句中,它有两种使用形式。 (1)不带本标号的continue语句,作用是终止当前这一轮循环,跳过本轮剩余的语句,直接进入当前循环的下一轮。 (2)带标号的continue语句,它的作用使程序的流程直接进入标号标明的循环层次,如以下程序段所示:First_Loop:for(int i=1;i100;i+) for(int j=2;ji;j+)if(i%j=0)continue First_Loop;System.out.println(i); 2、break语句:它的作用是使程序的流程从一个语句块内部跳转出来,它同样有带标号和不带标号的两种形式。 3、return语句:它的作用是从方法中返回值。即retutn 表达式;,