第2章 Java编程基础_补充案例
- 格式:doc
- 大小:538.00 KB
- 文档页数:35
第2章Java语言基础2.1Java Java程序的构成程序的构成2.2Java Java数据类型、常量和变量数据类型、常量和变量2.3Java Java运算符、表达式、语句、程序运算符、表达式、语句、程序2.4Java Java流程控制语句流程控制语句2.5Java Java语言编程的基本技巧语言编程的基本技巧2.6Java Java数组数组目录2.7Java Java编程作业提交要求编程作业提交要求2.8本章小结·Java语言主要由以下元素组成。
Java语言主要由以下元素组成。
)Identifier).标识符(Identifier1.标识符(Word))Reserved WordKeyWord)或保留字()或保留字(Reserved2.关键字(.关键字(KeyWord3.分隔符:要求用英文半角字符)Operator)4.运算符(运算符(Operator)Expression).表达式(Expression5.表达式(Statement)).语句(Statement6.语句(Method)).方法(Method7.方法(class)).类(class8.类(interface)).接口(interface9.接口(package))10.包(10.包(package2.1.1标识符object、、attibute、·标识符:用户用来标识attibute、、objectinterface、标识符:用户用来标识package、classpackage、class、、interface、parameter等成份的名字。
parameter等成份的名字。
const/constant、method、const/constantmethod、、local variablevariable、标识符的命名规则:Java标识符的命名规则:·Java标识符是字母、下划线、$$、数字组成的字符混合序列,不能以数字开头。
第2章Java编程基础案例2-1 while循环语句一、案例描述1、考核知识点编号:029002017名称:while循环语句2、练习目标➢掌握while循环语句的语法格式和使用➢了解while循环语句的特点3、需求分析while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环才会结束。
为了让初学者熟悉while语句,本案例将使用while语句实现统计1-10以内奇数的功能。
4、设计思路(实现原理)1)编写一个类Example122)定义一个变量x为1,用while语句循环条件为x<=103)在while循环中,使用表达式x%2判断是否为奇数,如果为奇数,则变量count的值加1。
二、案例实现运行结果如图2-14所示。
图2-1运行结果三、案例总结1、while循环语句和条件判断语句有些相似,都是根据条件判断来决定是否执行大括号内的执行语句。
区别在于,while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。
2、while循环的执行流程如图2-15所示。
图2-2流程图案例2-2 for循环语句一、案例描述1、考核知识点编号:029002018名称:for循环语句2、练习目标➢了解for循环语句的特点➢掌握for循环语句的语法格式和使用3、需求分析for循环语句是最常用的循环语句,一般用在循环次数已知的情况下。
为了让初学者熟悉for 循环语句,本案例将使用for循环语句计算1+2+3+4+5...+100表达式的结果4、设计思路(实现原理)1)编写一个类Example132)在该类中定义一个变量sum来存储每次循环整数相加的和。
3)在for循环语句中定义变量x,循环条件为x<=100二、案例实现图2-3编译结果三、案例总结1、在for循环中,for关键字后面()中包括了三部分内容:初始化表达式、循环条件和操作表达式,它们之间用“;”分隔,{}中的执行语句为循环体。
第2章Java 编程基础2.1 Java基本语法格式2.1.1 Java代码的落脚点Java中的所有程序代码都必须存在于一个类中,用class关键字定义类,在class前面可以有一些修饰符。
格式如下:修饰符 class 类名{程序代码}2.1.2 Java是严格区分大小写的例如,我们不能将class写成Class。
2.1.3 Java是一种自由格式的语言在Java中,所有的程序代码分为结构定义语句和功能执行语句,一条语句可以写在若干行上,功能执行语句的最后必须用分号(;)结束,不必要对齐或缩进一致。
可以按自己的意愿任意编排,只要每个词之间用空格、制表符、换行符或大括号、小括号这样的分隔符隔开就行。
例如第一章的例子程序改成下面这种编排方式也是可以的:class Test{public static void main(String [] args){System.out.println(“My first java program”);}}用哪种代码书写的格式因个人爱好而定,但出于可读性的考虑不建议使用这种格式。
脚下留心:1. Java程序中一句连续的字符串不能分开在两行中写,以上程序如果写成下面这种方式是会编译出错的:class Test{public static void main(String [] args){System.out.println(“My first javaprogram”);}}2. 功能执行语句的最后必须用分号(;)结束,但中国的初学者常将这个英文的(;)误写成中文的(;)自己却找不出错误的原因来,对于这样的情况,编译器通常会报告“illegal character”(非法字符)这样的错误信息。
2.1.4 Java程序的注释为程序添加注释可以提高程序的可读性,它是写在程序里的信息,用来说明某段程序的作用和功能。
Java里的注释根据不同的用途分为三种类型:●单行注释●多行注释●文档注释第一种是单行注释,就是在注释内容前面加双斜线(//),java编译器会忽略掉这部分信息。
第二章Java编程基础案例2-1 定义不同类型的变量一、案例描述1、考核知识点编号:00102005名称:变量的定义及其数据类型2、练习目标➢了解变量的定义方式➢掌握如何为不同类型的变量赋值3、需求分析变量用于存储程序运行期间的一些数据。
为了加深初学者对变量的认识,本案例针对八种基本数据类型,分别定义了八个变量,并进行赋值操作。
4、设计思路(实现原理)1)编写一个类Example01。
2)在Example01的main()方法中,针对八种基本数据类型,分别定义变量并赋值。
3)使用println语句打印变量的值。
二、案例实现定义Example01类,其代码如下:class Example01{public static void main(String[] args) {//定义字节变量byte b = 12;System.out.println(b);//定义短整型变量short s = 1234;System.out.println(s);//定义整数变量int i = 12345;System.out.println(i);//定义长整型变量long l = 12345678912345L;System.out.println(l);//定义单精度类型(7-8位的有效数字)float f = 12.5F;System.out.println(f);//定义双精度类型(15-16位的有效数字)double d = 12.5;System.out.println(d);//定义字符类型char c = 'a';//重新赋值,Java中的字符采用的编码是Unicode编码。
占用2个字节。
c = '中';System.out.println(c);//定义布尔类型boolean flag = true;System.out.println(flag);}}运行结果如图2-1所示。
图2-1运行结果三、案例总结1、Java对变量的数据类型有严格的限定。
在定义变量时必须声明变量的类型,并且变量值的类型和变量类型必须一致,否则程序会报错。
2、byte类型的变量存储的值必须是-27 ~27-1之间的整数。
赋值的时候,尽量不要超出范围,如果超出可能损失精度。
3、定义变量的方式有两种,具体如下:方式一:数据类型变量名 = 初始化值;方式二:数据类型变量名;变量名 = 初始化值;案例2-2 变量的自动类型转换一、案例描述1、考核知识点编号:00102006名称:变量的类型转换2、练习目标➢了解变量进行自动类型转换的条件3、需求分析变量的自动类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。
为了明确哪些数据类型可以实现自动转换,本案例演示的是将一种数据类型的值赋给另外一种数据类型变量的情形。
4、设计思路(实现原理)1)编写一个类Example02。
2)在类Example02中,定义byte类型的变量a,int类型的变量b,float类型的变量f,double 类型的变量d,其中,变量a的初始值为10,变量f的初始值为12.5f。
3)将变量a的值赋给变量b,变量a、b、f相加后的结果值赋给变量d。
4)使用println语句打印出变量b和变量d的值。
二、案例实现定义Example02类,其代码如下:class Example02{public static void main(String[] args){//隐式转换byte a = 10;int b = a;float f = 12.5F;System.out.println(b);double d = a+b+f;System.out.println(d);}}运行结果如图2-2所示。
图2-2运行结果三、案例总结1、要实现自动类型转换,必须同时满足两个条件,第一是两种数据类型彼此兼容,第二是目标类型的取值范围大于源类型的取值范围。
2、列出三种可以进行自动类型转换的情况,具体如下:(1)整数类型之间可以实现转换,如byte类型的数据可以赋值给short、int、long类型的变量,short、char类型的数据可以赋值给int、long类型的变量,int类型的数据可以赋值给long类型的变量。
(2)整数类型转换为float类型,如byte、char、short、int类型的数据可以赋值给float类型的变量。
(3)其它类型转换为double类型,如byte、char、short、int、long、float类型的数据可以赋值给double 类型的变量。
案例2-3 变量的强制类型转换一、案例描述1、考核知识点编号:00102006名称:变量的类型转换2、练习目标➢掌握不同数据类型间的强制类型转换3、需求分析强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。
例如,两种类型彼此不兼容,或者目标类型取值范围小于源类型,都需要进行强制类型转换。
为了明确两种不同类型的变量如何进行强制类型转换,本案例以int和byte类型为例,演示如何将int类型的变量强转为byte类型。
4、设计思路(实现原理)1)编写一个类Example032)在Example03中的main()方法中定义一个int类型的变量i和byte类型的变量b,并将变量i 的值赋给变量b3)使用println语句打印出变量b的值二、案例实现定义Example03类,其代码如下:class Example03{public static void main(String[] args){int i = 10;byte b = (byte)i;System.out.println(b);}}运行结果如图2-3所示。
图2-3运行结果三、案例总结1、强制类型转换,具体格式如下:目标类型变量 = (目标类型)值2、在对变量进行强制类型转换时,会发生取值范围较大的数据类型向取值范围较小的数据类型的转换,如将一个int类型的数转为byte类型,这样做极容易造成数据精度的丢失。
int在内存中占用4个字节。
byte类型的数据在内存中占用1个字节,当将变量i的数据在内存中占的内存大于1个字节时,前面3个高位字节的数据会丢失,数值也会发生改变。
案例2-4 变量的作用域一、案例描述1、考核知识点编号:00102007名称:变量的作用域2、练习目标➢了解变量的作用域3、需求分析在程序中,变量一定会被定义在某一对大括号中,该大括号所包含的代码区域便是这个变量的作用域。
为了让初学者熟悉变量的作用域,本案例将在三层的大括号内分别定义三个变量x、y、z,用输出语句输出变量的值,观察变量的作用域。
4、设计思路(实现原理)1)编写一个类Example042)在main方法下定义变量x,并在每一层大括号内都使用一次x,观察x的作用域3)在第一层括号内定义变量y,并在第二层括号内使用y,观察y的作用域4)在第二层括号内定义z,并在第一层括号内使用z,观察z的作用域二、案例实现(1)定义Example04类,具体代码如下所示:public class Example04 {public static void main(String[] args) {int x = 12;{int y = 96;{int z = 0;y = x;}System.out.println("x is " + x);System.out.println("y is " + y);z = x;System.out.println("z is " + z);}System.out.println("x is " + x);}}运行结果如图2-4所示。
图2-4运行结果(3)对上述代码进行修改,修改后的代码如下所示:public class Example04 {public static void main(String[] args) {int x = 12;{int y = 96;{int z = 0;y = x;System.out.println("z is " + z); }System.out.println("x is " + x);System.out.println("y is " + y);}System.out.println("x is " + x);}}运行结果如图2-5所示。
图2-5运行结果三、案例总结1、第一次程序编译错误是因为程序在变量z的作用域外进行访问,所以程序找不到变量z。
如果在变量z的作用域内访问z,程序就会编译成功。
2、x定义在main方法下,所有main方法下的任何位置都能够使用变量x。
3、y定义在第一层括号下,因为第二层括号在第一层括号内,所以在第二层括号内使用变量y也不会报错。
案例2-5 算术运算符一、案例描述1、考核知识点编号:00102008名称:算术运算符2、练习目标➢了解算术运算符的用法3、需求分析在程序中,经常会使用算术运算符进行四则运算,为了让初学者熟悉算术运算符的用法,本案例将以++、--、\等运算符为例,讲解不同算术运算符的作用。
4、设计思路(实现原理)1)编写一个类Example052)在main方法下定义变量a,并赋值为2,定义变量b,并赋值为4;3)首先运算表达式++a+b++,并把计算结果赋给变量x,然后将b/a的值赋给变量y;4)输出变量a、b、x和y的值二、案例实现public class Example05 {public static void main(String[] args) {int a = 2;int b = 4;int x = ++a + b--;int y=b/a;System.out.println("a=" + a);System.out.println("b=" + b);System.out.println("x=" + x);System.out.println("x=" + y);}}运行结果如图2-6所示。
图2-6运行结果三、案例总结1、在进行自增(++)和自减(--)的运算时,如果运算符(++或--)放在操作数的前面则是先进行自增或自减运算,再进行其它运算。
反之,如果运算符放在操作数的后面则是先进行其它运算再进行自增或自减运算。
2、在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。
如果除法运算有小数参与,得到的结果会是一个小数。