Java语言程序设计基础教程ppt课件_第1页
Java语言程序设计基础教程ppt课件_第2页
Java语言程序设计基础教程ppt课件_第3页
Java语言程序设计基础教程ppt课件_第4页
Java语言程序设计基础教程ppt课件_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2章章Java根本的程序设计构造根本的程序设计构造 n标识符和关键字标识符和关键字 nJava的根本数据类型的根本数据类型 n运算符、表达式和语句运算符、表达式和语句 n语句语句 n输入输出输入输出 n数组数组 2.1 标识符和关键字标识符和关键字 n在Java中的标识符和关键字统称为保管字。 2.1.1 标识符 n标识符是赋予常量、变量、方法、类或者接口的称号,可以由用户自行定义,无长度限制,但要符合以下规那么:n1、标识符可以由一个或多个字符组成n2、标识符必需以字母、下划线_或$为开头,后面可以包含数字、字母但不包含空格。n3、标识符中大小写字母有区别,但长度没有限制n4、关键字不能

2、做为标识符运用n5、用以命名类、方法和变量、以及包遵守JAVA的命名规范,类称号的每个单词都以大写字母开头。方法和变量第一个字母不大写,其他照旧。 2.1.2 关键字 nJava中的关键字,它是Java特意保管的,具有特殊的意义和用途,不可以恣意运用或更改,当我们在编写程序时要留意不要运用它作为变量或方法称号,以免呵斥程序编译的错误。nJava的关键字有:nAbstract、default、if、package、this、Boolean、do、implements、private、throw、Break、double、import、protected、throws、Byte、else、inst

3、anceof、public、transient、Case、false、interface、short、try、Catch、final、long、static、void、Char、finally、native、super、volatile、 Class、float、new、switch、while、Continue、for、null、synchronized。ngoto和const在Java中虽然不再运用,但是还作为关键字存在。 2.2 Java的根本数据类型 nJava严厉规定每个数据类型的大小,而且不允许恣意改换变量的数据类型。也就是说假设A变量我们声明为整数类型后,就不能再将A变量改为其它

4、类型,而且所占的空间就是32位,无法更改。表2-1 Java的根本数据类型 类型内容默认值内存空间取值范围booleantrue/falsefalse16位true或falsecharUnicodeu000016位u0000-uFFFFbyte整数08位-128+127short整数016位-32768+32767int整数032位-2147483648+2147483647long整数064位-9223372036854775808+9223372036854775807float浮点0.032位3.40282347E+381.40239846E-45double浮点0.064位1.7976

5、9313486231570E+3084.94065645841246544E-3242.2.1 布尔型 n布尔型,也就是我们所说的真或假,运用关键字boolean来定义逻辑变量,值为常量:true、false。 n【例2-1】一个布尔型运用的例如。n定义了一个布尔类型变量y,起初给它赋值false,然后又赋值为true,在if条件判别中,由于y是true,条件满足,执行语句所以执行System.out.println(y is true);,最后是一个表达式109,结果为真,所以显示true。 npublic class BoolTest npublic static void main(St

6、ring args) nboolean y;ny = false;nSystem.out.println(y is + y);ny = true;nif (y) nSystem.out.println(y is true);nnSystem.out.println(109? + (10 9);nn 2.2.2 字符型 n字符型在C言语中占8位,而Java中由于运用的是unicode,所以占16位。n【例2-2】举个例子阐明一下字符型数据的运用。npublic class CharDemo npublic static void main(String args) nchar ch1, ch2;

7、nch1 = 65;nch2 = B;nSystem.out.print(ch1 and ch2);nSystem.out.println(ch1 + + ch2);nnn大写的A在ASCII字符集中的值为65,由于ASCII中的字符集占了Unicode中的前127个字符,所以ASCII中的技巧这里面一样用。从上面可以看出,给字符型变量ch1赋值65和A作用是一样的。程序2-2运转结果如下所示。 图2-2 字符型数据运用例如运转结果 2.2.3 整数型 nJava定义了四种整数型,即字节型byte,短整型short,整型int,长整型long。在Java言语中没有无符号这个关键字unsigne

8、d,这个有区别于C言语,也就是说一切的数都为有符号数。 2.2.4 浮点型 n浮点型,也就是所说的实数,其中单精度数float占4个字节,双精度数占8个字节,当需求坚持多次反复迭代的计算的准确性时或操作值很大时,是最好的选择了。n【例2-4】下面例子是一个双精度数计算圆面积的例子。n/计算圆的面积npublic class Area npublic static void main(String args) ndouble pi, r, a;nr = 0.3; /半径npi = 3.1416;na = pi * r * r; /面积nSystem.out.println(面积为: + a);n

9、n 2.2.5 根本数据类型的转换 n在Java中类型由低到高的顺序为:byte、short、char、int、long、float、double。n1、自动转换:当由低到高时可以自动转换,比如:nbyte b;int i=b;long l=b;float f=b;double d=b;n那么这些都可以自动转换,是合法的,但byte、short、char是平级的不能自动转换,必需运用强迫转换。n2、强迫转换:由高级到低级时,必需运用强迫转换。nint i=99;byte b=(byte) i;char c=(char) i;n【例2-5】下面例子阐明这两种转换。npublic class Ch

10、angeTest npublic static void main(String args) nbyte b = 15;nint i = b;nlong l = b;nfloat f = b;ndouble d = b;nSystem.out.println(b);nSystem.out.println(i);nSystem.out.println(l);nSystem.out.println(f);nSystem.out.println(d);nint s = 99;nbyte n = (byte) s;nSystem.out.println(s);nSystem.out.println(n

11、);nn留意:在强迫转换时有时会导致溢出或降低精度,比如整型值赋给留意:在强迫转换时有时会导致溢出或降低精度,比如整型值赋给byte时,假设时,假设整型值大了,会自动取模再赋值,而浮点数赋值给整数时会去掉小数点。整型值大了,会自动取模再赋值,而浮点数赋值给整数时会去掉小数点。 n3、字符串型数据与其他数据类型转换:在Java中是经过toString()方法来实现的。n【例2-6】字符串型数据与其他数据类型转换的例子。npublic class ChangeTest1 npublic static void main(String args) nint i1 = 10;nfloat f1 = 3

12、.14f;ndouble d1 = 3.1415926;n/留意大小写nInteger I1 = new Integer(i1); /生成integer类nFloat F1 = new Float(f1); / 生成float类nDouble D1 = new Double(d1); /生成double类n/分别调用包装类的tostring()方法转换为字符串nString si1 = I1.toString(); /toString在此完成integer类型转换为字符串nString si2 = F1.toString();nString si3 = D1.toString();nSyste

13、m.out.println(si1);nSystem.out.println(si2);nSystem.out.println(si3);nnn4、将CHAR型值直接做为数值转换为其他数据类型n【例2-7】CHAR型值直接做为数值转换为其他数据类型的例子。npublic class ChangeTest2 npublic static void main(String args) nint i;nchar c1 = A;ni = c1;nSystem.out.println(i);nchar c2 = (char) (i + 2); / 此处要强迫转换nSystem.out.println(c

14、2);nn2.3 运算符、表达式 nJava提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。2.3.1算术运算符与算术表达式 n在Java中提供运算功能的就是运算符Operator,例如与算术相关的有加+、减-、乘*、除/这类的运算符。另外还有一个也很常用的取模运算符%。这类以数学运算为主的运算符称为算术运算符Arithmetic Operator。 n算术运算符的运用根本上与加减乘除一样,也是先乘除后加减,必要时加上括号表示运算的先后顺序。 2.3.2比较和条件运算 n数学上有比较的运算,像大于、等于、小于等运算,Java中也提供了这些运算符,这些运算符称为“比较运算符

15、Comparison Operator。它们有大于、大于等于=、小于、小于等于 5 结果 + (10 5);nSystem.out.println(10 = 5 结果 + (10 = 5);nSystem.out.println(10 5 结果 + (10 5);nSystem.out.println(10 = 5 结果 + (10 = 60 ? 是 : 否);nn2.3.3逻辑和位运算 nJava中也提供这几个根本逻辑运算所需的逻辑运算符Logical Operator,分别为与&、或|和取反!3个运算符。 n【例2-11】下面是逻辑和位运算的例如。npublic class Log

16、icalOperator npublic static void main(String args) nint number = 75;nSystem.out.println(number 70 & number 80 | number 80 | number 75);nn2.3.4递增和递减运算 n递增Increment、递减Decrement与赋值Assignment运算符,这几种运算符的目的除了让程序看来比较简约之外,还可以略微添加一些程序执行的效率。n在程序中对变量递增1或递减1是很常见的运算,例如:nint i = 0; ni = i + 1; nSystem.out.pri

17、ntln(i); ni = i - 1; nSystem.out.println(i);n上面这段程序会分别显示变量+1与-1操作的结果,1与0两个数, 【例2-16】递增、递减运算符的例如。 npublic class IncrementDecrement npublic static void main(String args) nint i = 0;nSystem.out.println(+i);nSystem.out.println(-i);nn2.3.5赋值运算符 n到目前为止,只学习过一个赋值运算符,也就是=这个运算符,现实上赋值运算符还有其他几个,如表2-2所示。 赋值运算符范例

18、结果+=a+=ba=a+b-=a-=ba=a-b*=a*=ba=a*b/=a/=ba=a/b%=a%=ba=a%b&=a&=ba=a&b|=a|=ba=a|b=a=ba=ab=a=ba=a=a=ba=ab表2-2 赋值运算符 2.4语句 在Java言语中,语句可分为以下5类:1方法调用语句System.out.println(“Hello);2表达式语句由一个表达式构成一个语句,最典型的是赋值语句,如:x = 23;一个表达式加上一个分号就构成了一个语句,分号是语句不可短少的部分。3复合语句可以用把一些语句括起来构成复合语句,如: z = 23 + x;System.o

19、ut.println(“Hello);4控制语句包括条件语句和switch开关语句。5package语句和import语句Package语句和import语句与类、对象有关,相关内容在第3章中引见。 2.4.2 控制语句 nJava的控制语句有2种类型,即条件语句和switch开关语句。 n1条件控制语句n为理处理“假设发生了,就要的需求,Java提供了if条件控制语句。它的语法如下:nif(条件式)n 语句1;nelsen 语句2;n假设在if后有两个以上的语句,称之为复合语句Compound Statement,此时必需运用 定义程序块Block将复合语句包括起来。例如:nif(条件式)

20、n 语句1;n 语句2; nnelse n 语句3;n 语句4;n【例2-19】运用if条件式来判别运用者的输入是奇数还是偶数。 nimport java.util.Scanner;npublic class OddDecider3 npublic static void main(String args) nScanner scanner = new Scanner(System.in);nSystem.out.print(请输入数字: );nint input = scanner.nextInt();nint remain = input % 2; / 求除 2 的余数nif (remai

21、n = 1) / 假设余数为1nSystem.out.println(input + 为奇数);nelsenSystem.out.println(input + 为偶数);nn2switch 条件式条件式 nswitch只能比较数值或字符,运用适当的话,可比if判别式有效率。switch的语法构造如下:nswitch(变量称号或表达式) n case 符合数字或字符:n 语句1;n break;n case 符合数字或字符:n 语句2;n break;n default:n 语句3; n 【例2-21】运用switch来改写处置学生的成果等级问题。 nimport java.util.Scan

22、ner;npublic class ScoreLevel2 npublic static void main(String args) nScanner scanner = new Scanner(System.in);nSystem.out.print(请输入分数: );nint score = scanner.nextInt();nint level = (int) score / 10;nswitch (level) ncase 10:ncase 9:System.out.println(得A);nbreak;ncase 8:System.out.println(得B);nbreak;n

23、case 7:System.out.println(得C);nbreak;ncase 6:System.out.println(得D);nbreak;ndefault:System.out.println(得E(不及格);nnn2.4.3 循环语句 n1for循环循环 n在在Java中假设要进展反复性的指令执行,可以运用中假设要进展反复性的指令执行,可以运用for循环式。它的根本语法如下:循环式。它的根本语法如下:nfor(初始式初始式; 判别式判别式; 递增式递增式) n 语句语句1; n 语句语句2; n n假设语句只需一个,也就是非复合语句,假设语句只需一个,也就是非复合语句, 可以省可

24、以省略不写。略不写。for循环的第一个初始语句只会执行一次,循环的第一个初始语句只会执行一次,之后每次重新进展循环时,都会根据判别式来判别能之后每次重新进展循环时,都会根据判别式来判别能否执行下一个循环,而每次执行完循环之后,都会执否执行下一个循环,而每次执行完循环之后,都会执行递增式。行递增式。【例2-22】for循环的功能例如。 npublic class SimpleLoopFor npublic static void main(String args) nfor (int i = 0; i 10; i+)nSystem.out.print( + i);nn2while循环循环 nJa

25、va提供while循环式,它可以根据所指定的条件式来判别能否执行循环体。语法如下:nwhile(条件式) n 语句1; n 语句2; n 【例2-25】计算输入成果平均的程序。 nimport java.util.Scanner;npublic class ScoreAverage npublic static void main(String args) nScanner scanner = new Scanner(System.in);nint score = 0;nint sum = 0;nint count = -1;nwhile (score != -1) ncount+;nsum

26、+= score;nSystem.out.print(输入分数(-1终了):);nscore = scanner.nextInt();nnSystem.out.println(平均: + (double) sum / count);nn2.4.4 break和continue nbreak可以分开当前switch、for、while、do while的程序块,并前进至程序块后下一条语句,在switch中主要用来中断下一个case的比较。在for、while与do while中,主要用于中断目前的循环执行,break的例子之前曾经看过不少,这里不再举例。ncontinue的作用与break类似,

27、主要用于循环,所不同的是break会终了程序块的执行,而continue只会终了其之后程序块的语句,并跳回循环程序块的开头继续下一个循环,而不是分开循环。 n例如:nfor(int i = 1; i 10; i+) n if(i = 5)n break;n System.out.println(i = + i); nn这段程序会显示i = 1到4,由于当 i 等于5时就会执行break而分开循环。 n看下面这个程序:nfor(int i = 1; i 10; i+) n if(i = 5)n continue;n System.out.println(i = + i); n n这段程序会显示1

28、到4,与6到9。当 i 等于5时,会执行continue直接终了此次循环,这次循环中System.out.println()行并没有被执行,然后从程序块开头执行下一次循环,所以5并没有被显示。2.5输入输出n1利用System.out.println(),可以非常容易实现输出 n【例2-29】一个输出的例子。npublic class OutputTest npublic static void main(String args) nfloat x;nx = 100.0f / 3.0f;nSystem.out.println(x);nSystem.out.println(100.0 / 3.0

29、);nnn2格式化输出n在java.text包中,提供了NumberFormat类可以产生这种格式,然后我们再用format方法来得到格式化的字符。 【例2-30】一个格式化输出的例子。 nimport java.text.*;npublic class OutputTest1 npublic static void main(String args) n double x;n x = 100.0 / 3.0;n NumberFormat f1 = NumberFormat.getNumberInstance();/ 数字格式n String s = f1.format(x);n System

30、.out.println(s);n NumberFormat f2 = NumberFormat.getPercentInstance();/ 百分比格式n s = f2.format(x);n System.out.println(s);n NumberFormat f3 = NumberFormat.getCurrencyInstance();/ 货币格式,这跟系统区域有关n s = f3.format(x);n System.out.println(s);nnn3键盘输入n【例2-31】一个键盘输入的例子。nimport javax.swing.*;npublic class Input

31、Test npublic static void main(String args) nString name = JOptionPane.showInputDialog(please input you name:);nString input = JOptionPane.showInputDialog(please input you age:);nint age = Integer.parseInt(input);nSystem.out.println(your name: + name + you age: + age);nSystem.exit(0);nn2.6 数组 n2.6.1数

32、组的概念n数组Array是一组一样数据类型数据的有序集合。在Java言语中数组元素可以由简单数据类型组成也可以由对象组成。数组中的每个元素都具有一样的数据类型,可以用一个一致的数组名和一个下标来独一地确定数组中的元素。 n数组主要具有下面的特点:n数组是一样数据类型的元素的集合。n数组中的各元素是有先后顺序的,在内存中按照这个先后顺序延续存放在一同。n数组元素用整个数组的名字和其在数组中的顺序位置来表示。如a0表示名字为a的数组中的第一个元素,a1表示数组a中的第二个元素。n从数组的构成方式上看,可将其分为一维数组和多维数组。2.6.2一维数组n1 一维数组的定义ntype arrayName

33、 ; n类型type可以为Java中恣意的数据类型,包括简单类型和复合类型。 例如: nint intArray ;nDate dateArray;n2 一维数组的初始化 n 静态初始化 nint intArray=1,2,3,4; nString stringArray=abc, How, you; n 动态初始化 n1简单类型的数组 nint intArray; nintArray = new int5; n2复合类型的数组 nString stringArray ; nString stringArray = new String3;/为数组中每个元素开辟援用空间32位nstringAr

34、ray0= new String(How); /为第一个数组元素开辟空间 nstringArray1= new String(are); /为第二个数组元素开辟空间 nstringArray2= new String(you); / 为第三个数组元素开辟空间 n3一维数组元素的援用 n数组元素的援用方式为:narrayNameindex nindex为数组下标,它可以为整型常数或表达式,下标从0开场。每个数组都有一个属性length指明它的长度,例如:intArray.length指明数组intArray的长度。 2.6.3多维数组nJava言语中,多维数组被看作数组的数组。 n1二维数组的定

35、义 ntype arrayName ; ntype arrayName; n2二维数组的初始化 n 静态初始化 nint intArray =1,2,2,3,3,4,5; nJava言语中,由于把二维数组看作是数组的数组,数组空间不是延续分配的,所以不要求二维数组每一维的大小一样。 n 动态初始化 n1) 直接为每一维分配空间,格式如下: narrayName = new typearrayLength1arrayLength2; nint a = new int23; n2) 从最高维开场,分别为每一维分配空间: narrayName = new typearrayLength1 ; narrayName0 = new typearrayLength

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论