




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2 JAVA编程基础Java程序的基本结构Java中的基本语法格式Java中的基本数据类型Java中的运算符程序的流程控制12.1.1 程序程序是指按照时间顺序依次安排的工作步骤。而程序设计则是对这些步骤的编排和优化。计算机处理的核心是数据和运算。数据的基本存储单位是位,数据按照不同的数据类型来组织和存储。运算的基础是表达式,运算的控制手段是流程。无论是多么复杂的运算,都可以分解成顺序、选择和循环这三种基本的程序结构。 22.1.2 撰写规范的程序代码 程序代码质量评审原则: 正确性 指程序代码要实现软件设计所要求的功能;可靠性 指程序代码最后编译的程序要能够稳定、可靠、安全的运行;规范化 指
2、程序代码书写的风格、命名规则等要符合规范;Java语言编码规范(中文版) 可读性 指程序代码要便于查看和理解;灵活性 指程序代码的设计和编写应该易于维护和改动。 32.1.3 Java程序 一个Java程序的基本框架结构:Java程序由一个或多个独立的类组成,但其中必须有一个公有类(如:HelloWorld),而且源代码文件必须与这个公有类的名字相同(如:HelloWorld.java)。Java的类可以由一个或多个方法组成,其中公有类中的main方法可用作程序运行的入口。 / The First Java Programpublic class HelloWorld public stati
3、c void main(String args) System.out.println(Hello World!); 程序头的注释HelloWorld类main方法修饰符方法头方法体方法名参数返回类型42.1.4 编辑、编译和运行Java程序编辑程序代码HelloWorld.javajavac生成出错信息Yes编译程序代码javac HelloWorld.javaHelloWorld.class解释执行字节码java HelloWorld有编译错误吗?NoJava程序编译通过,会自动生成一个包含了这个源程序字节码的同名.class文件。该文件可以通过Java虚拟机运行。 52.2 Java中的
4、基本语法格式代码的位置分隔符代码的注释标志符关键字常量62.2.1 Java代码的位置所有代码都存在于一个类里修饰符 class 类名 程序代码 72.2.2 Java代码的位置注意:Java是严格区分大小写的功能执行语句以(;)结束,这个分号必须是英文输入法中的(;)连续的字符串不能换行,可使用(+)连接HelloWorld.java8 分隔符使程序代码组织成编译器所理解的形式,它构造了语句的结构和程序的结构。() ; , 空格符 分隔符92.2.3 Java代码的注释注释的作用 * 解释程序中某些部分的作用和功能,提高程序的可读性 * 可以使用注释暂时屏蔽某些语句,在程序调试时使用102.
5、2.4 Java代码的注释单行注释(Comments on one line)以/开头,直到当前行结束的所有文本都会被作为注释多行注释(Comments on one or more lines)以/*开头,以*/结尾,中间的所有文本都会被作为注释文档注释(Documentation comments)以/*开头,以*/结尾,中间可以加入特殊的指令112.2.5 Java代码的注释单行注释int c = 10; / 定义一个整型多行注释/*int c = 10; / 定义一个整型int x = 5;*/ 注意:/*/中可以嵌套”/”注释,但不能嵌 套”/*/”122.2.6 Java代码的注释
6、文档注释/* * Title: test1类 * Company: NEU ISE * author AAA bbb * version 1.0 */CommentTest.java132.2.7 Java代码的注释文档注释放在类、变量和方法之前,说明其作用。可以通过文档生成工具提取文档注释,形成程序文档。javadoc d testdoc version author test.java142.2.8 Java中的标识符标识符是Java程序中的一个名字,可以用来表示程序中的一个变量、方法或类标识符只能包含字母、数字以及两个特殊符号“_”和“$”标识符只能以字母、“_”和“$”开头,不能用数字
7、作为标识符的开头152.2.9 Java中的标识符标识符对大小写是敏感的,就是说myname与MyName是两个不同的标志符标识符是由Unicode字符组成的,因此可以使用汉字作为标识符(不推荐,尽量不用)汉字标识符不能用作类名和接口名162.2.10 标识符举例合法的(valid)标识符identifier12userNameCAPTICAL_NAMEuser_name_sys_var_$strange$_我是标识符非法的(invalid)标识符user name2userstar*michal-jordanc/javaHello+world172.2.11 Java中的关键字又叫保留字(R
8、eserved Words)是Java语言规定的,具有固定含义的标志符。关键字不能作为普通的标识符使用182.2.12 Java中关键字列表abstractdoimplementprivatethisbooleandoubleimportprotectedthrowbreakelseinstanceof publicthrowsbyteextendsintreturntransientcasefalseinterfaceshorttruecatchfinallongstatictrycharfianllynativestrictfpvoidclassfloatnewsupervolatilec
9、ontinuefornullswitchwhiledefaultif package synchronized注意:Java中没有goto、const这些关键字,但不能用goto、const作为变量名192.2.13 Java中的常量常量就是程序里持续不变的值,是不能改变的数据。Java中的常量包括整型常量、浮点型常量、布尔常量、字符常量等202.2.14 常量的表示整型常量 十进制:不能以0开头 十六进制: 以0 x或0X开头 0 x8a 0X56d 八进制:必须以0开头 034 0376 长整型:必须以L(l)结尾 87L 345L浮点数常量 单精度(32位)型:2e3f 0.6f 8.0
10、9e+12f 双精度(64位)型:4.1d 1.23d212.2.15 常量的表示布尔常量:true和false字符常量:a 5 n u0027以反斜杠()开头的字符,反斜杠将其后面的字符转变为另外的含义,称为转义字符。r表示接受键盘输入,相当于按下了回车键;n是换行;t是制表符,相当于table键;b是退格键,相当于Back Space;是单引号,而“是双引号;是一个斜杠“”。字符串常量:“hello” “8698” “nmain” null常量:null,表示对象的引用为空。字符例222.3 Java中的基本数据类型Java的基本变量类型基本类型变量的声明、初始化和赋值基本数据类型之间的兼
11、容性类型转换变量的作用域232.3.1 Java的基本数据类型Java中的数据类型包括基本数据类型和引用类型数据类型基本数据类型引用数据类型数值型字符型(char)布尔型(boolean)整数类型(byte, short, int, long)浮点类型(float, double)类(class)数组(array)接口(interface)242.3.2 Java的基本数据类型基本数据类型(primitive types),是Java语言中内置的数据类型,用于表示最简单的数据基本数据类型包括:整型、浮点型、字符型、逻辑型。252.3.3 整型(integral)整数类型数据用于描述一个一定大小
12、范围内的整数整数类型数据包括以下几种数据: long (64bits):-263263-1int (32bits):-231231-1short (16bits):-215215-1 -3276832767byte (8 bits):-27 27-1 -128127262.3.4 浮点型(floating point)浮点类型数据用于描述一个范围很大的实数浮点类型数据包括两种:float(32bits)单精度、double(64bits)双精度浮点类型表示范围float占用四个字节,数字大小为1.4E-453.4E+38 , -1.4E-45-3.4E+38 。double占用八个字节,数字大
13、小为4.9E-3241.7E+308, -4.9E-324-1.7E+308 。浮点类型数据有一定的精度限制272.3.5 字符型(character)字符类型为char,它用于表示一个字符C语言中char类型为8-bit,采用ASCII来表示。Java中char类型为16-bit,采用Unicode表示。很多时候char可以被当作一个整数类型的数据282.3.6 逻辑型(logical)逻辑类型为boolean,它用于表示真和假boolean类型只有两个值真(true), 假(false)boolean类型有自己的运算,不能参与其他数据类型之间的运算292.3.7 基本类型变量的声明Java
14、中所有的变量在使用之前都必须要进行声明Java中的变量可以随时声明,随时使用声明变量的语法:VariableType name1, name2;302.3.8 基本类型变量的声明例如:int i;char c;可以同时声明多个同一类型的变量,例如:int i1, i2, i3;char c1, c2, c3;double d1, d2, d3;312.3.9 变量的赋值Java中的变量在使用之前都必须被赋一个初值给已经声明的变量赋于某一特定值的操作,称作赋值,比如:int i;i = 5;还可以采用已有的变量赋值,如: char c;c = a;char c1;c1 = c;赋值例322.3.
15、10 变量的初始化第一次对变量赋值的操作称为初始化,例如:int i = 24;char c = A;也可以使用已初始化的变量:float f = 0.2154645f;double d = f;332.3.11 基本数据类型之间的兼容性“小”的数据类型可以直接赋值给“大”的数据类型,“大”的数据类型不能直接复制给“小”的数据类型(编译错误),数据类型之间的大小关系如下:整数类:longintshortbyte浮点类:doublefloat兼容性例1342.3.12 基本数据类型之间的兼容性整数类数据类型可以赋值给浮点类数据类型,比如:floatshort;floatint;doublelon
16、g;floatlong; 352.3.13 基本数据类型之间的兼容性char可以赋值给long和int,但是不能赋值给short和byte(编译错误)char可以赋值给float和doubleboolean与其他数据类型之间没有兼容性兼容性例2362.3.14 基本数据类型之间的兼容性将整数类的文字常量赋值给整数类变量时,如未强制声明文字常量为long型(使用L标志),则文字常量在变量的表示范围之内时可以赋值成功,否则将出现编译错误,例如:byte b = 24;short s = -30000;int i= 150000;byte b= 5000 /错误byte的范围为-128127shor
17、t s= 32768 /错误short范围-3276832767兼容性例3372.3.15 基本数据类型之间的兼容性当整数型文字常量被声明为long类型时,只能赋值给long型变量。当整数型文字常量在065535之间时,可以被赋值给char型变量char型文字常量可以被赋值给整数类变量,只要整数变量的类型可以容纳char型文字常量所表示的数值兼容性例4382.3.16 基本数据类型之间的兼容性浮点型文字常量默认为double型,而double型文字常量不能赋值给float型变量,如:double d = 3.14;float f = 3.14;/错误3.14是double型float f =
18、3.14f;/成功392.3.17 自动类型转换自动类型转换(隐式类型转换)需要同时满足两个条件: 1) 两种类型彼此兼容2)目标类型的取值范围要大于源类型byte b = 3;int x = b; /OK, 程序把b的结果 /自动转成int型402.3.18 强制类型转换强制类型转换(显式类型转换)当两种类型不兼容,或目标取值类型范围小于源类型时,自动类型转换无法进行,需要进行强制类型转换。语法(Type) var;412.3.19 强制类型转换强制类型转换会损伤数据的精度,不恰当的强制类型转换会导致错误的运行结果。byte b;int i = 266;b = (byte) i;System
19、.out.println(b);输出结果为10! (为什么?)强制转换例1422.3.20 表达式的数据类型自动提升所有byte型、short型和char型的值将被提升到int型如果一个操作数是long型,计算结果就是long型如果一个操作数是float型,计算结果就是float型如果一个操作数是double型,计算结果就是double型类型提升例43public static void main(String args)byte b1=1;byte b2=2;byte b3=b1+b2;/errorbyte b4=3+2;byte b5=2+b1;/errorlong l1=2L;int i
20、1=l1+b1;/errorint i2=2L+3;/errorlong l2=l1+b1;long l3=2L+3;float x=2.1f;float y=3.1f;float z1=x+y;float z2=2.0f+3.0f;float z3=2.0f+3.0;/errordouble z4=2.0f+3.0; 类型综和例442.3.20 变量的作用域变量的作用域指一个变量起作用的范围,它决定了一个变量何时可以访问、何时不可以访问Java中任何变量的作用域都从该变量声明之后开始Java中变量的作用域是声明该变量的语句块中;简单的说,变量只能在声明它的那个大括号中可用452.3.21 变
21、量的作用域int x = 4;/这之间只有x可以访问int y = 1;/x和y可以访问int z = 2;/x、y、z都可以访问z = 5;x = 4/只有x和y可以访问,不可以访问z变量作用域例462.4 Java中的运算符数学运算符赋值运算符比较运算符逻辑运算符位运算符移位运算符472.4.1数学运算符 取负:-乘、除、模: * / %加、减:+ -两个整数之间的 / 运算结果还是整数,其结果是除的结果的整数部分,例如:5/2结果为2;要获得实数结果,运算中必须有至少一个浮点数,如:5/2.0结果为2.5482.4.2 数学运算符数学运算的表达式结果:数学表达式的运算结果的数据类型与表达
22、式中最大的数据的类型一致任何整数类型之间的数学运算其结果至少是int型,如果参与运算的数中存在至少一个long数,则运算结果为long;有浮点数参加的运算结果为浮点数,如操作数都是float,则结果为float;如有至少一个double则结果为double;492.4.3 自增、自减运算符前置:+i -i后置:i+ i-其功能是将所变量的值加1(减1);前置与后置的区别:假设i =5则:表达式(+i)的值为6,运算完毕后i = 6表达式(i+)的值为5,运算完毕后i = 6502.4.4 自增、自减运算符 int i = 0;int j = 0;i+;/ j = i+;/ i = +j;/ i
23、nt p = (i+) + (+j);/i=1, j=0i=2, j=1i=2, j=2i=3, j=3, p=551数学运算符 字符相加例522.4.5 赋值运算符简单赋值:=组合赋值:+= -= *= /= %=&= |= = = =53赋值运算符 注1:在JAVA里可以把赋值语句连在一起,如: x = y = z = 5 ; 在这个语句中,所有三个变量都得到同样的值5。注2 :x += 3等效于x = x + 3,等于*= ,-=,/=依此类推。 542.4.6 比较运算符大小比较: = =相等、不等比较:= !=比较运算符的结果值为boolean型;最好不要在浮点型变量间进行相等比较,
24、可以用如下形式判断相等f1 f2 1e-4;不存在连续比较,如2i2 & i555比较运算符 注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。注2:比较运算符“=”不能误写成“=” 56public class Testpublic static void main(String args) int n=3;int m=4;System.out.println();System.out.println(nm is +(nm is +(+n)m);System.out.println(n is +n); 自增比较例572.4.7 逻辑运算符逻辑非:!逻辑异或:
25、逻辑与:&, &逻辑或: |, |逻辑运算符只能用于逻辑(boolean)类型之间逻辑运算的结果值为boolean型;58逻辑运算符 59逻辑运算符TFTFTFTF!TFFT|TFTTTFTF&TFTTFFFF逻辑运算真值表602.4.8 两类逻辑运算应用时的区别在进行二元逻辑运算时,如果第一个操作数就可以确定逻辑表达式的值,则不再计算第二个操作数,这种现象叫做逻辑表达式的短路(short-circuit)有两种情况:在进行“与”运算时,如果第一操作数为“假”,则不再计算第二操作数,直接返回“假”;在进行“或”运算时,如果第一操作数为“真”,则不再计算第二操作数,直接返回“真”;612.4.9
26、 两类逻辑运算应用时的区别逻辑运算(&、|)执行时有表达式短路现象:int i = 5;if(i 5)System.out.println(“i = ”+ i);打印出i = 5622.4.10 两类逻辑运算应用时的区别位运算(&、|)执行时没有表达式短路现象:int i = 5;if(i 5)System.out.println(“i = ” + i);打印出i =6632.4.11 位运算符按位取反:按位与:&按位异或:按位或:|位逻辑运算符只可用于整数类型、char和逻辑类型,不可应用于浮点类型(不可应用于boolean)应用整数类型时采用位逻辑,应用逻辑类型时进行逻辑运算位运算的表达式
27、的类型规则与数学运算一致当运算作用于boolean变量时结果为boolean642.4.12 位运算符位逻辑运算真值表1001&1/T0/F1/T1/T0/F0/F0/F0/F|1/T0/F1/T1/T1/T0/F1/T0/F1/T0/F1/T0/F1/T0/F1/T0/F652.4.13 位运算符位逻辑运算举例 01001111 (79) 10110000 (-80) 00101101 (45) & 01001111 (79) 00001101 (13) 00101101 (45) 01001111 (79) 01100010 (98) 00101101 (45) | 01001111 (7
28、9) 01101111 (111)66public class bitTest public static void main(String args)System.out.println(3+(3)+1);System.out.println(3);System.out.println(3&2);System.out.println(3|2);System.out.println(32);System.out.println(-3)&2);System.out.println(3+1)&2); BitTest.Java672.4.14 移位运算符算术左移、算术右移:逻辑右移:位移运算只能应用
29、于整数类型与char类型,不能应用于浮点类型和boolean类型位移运算的表达式的类型规则与数学运算一致与的区别是:在右移时最左侧填入原来的最高位,在右移时最左侧填入0682.4.15 移位运算符举例:5 2 结果为20相当于 5 X 2200000101 2 结果为5相当于21 / 2200010101 2 00000101-19 2 结果为-5相当于-(192)+1) 11101101 2 11111011692.4.16 移位运算的注意事项移位运算符适用类型有byte、short、char、int、long对低于int型的操作数将先自动转换为int型再移位。对于int型整数移位ab,系统
30、先将b对32取模,得到的结果才是真正移位的位数。例如:a33和a1结果是一样的,a32的结果还是a原来的数字。对于long型整数移位时ab ,则是先将移位位数b对64取模。移位不会改变变量本身的值。如a1;在一行语句中单独存在,毫无意义 。x1的结果和x/2的结果是一样的,x2;byte b2=-52;System.out.println(52);System.out.println(-52);System.out.println(52);System.out.println(-52);System.out.println(b1);移位例712.4.17 运算符的优先级 。低高722.4.18
31、 括号改变运算符的优先级对于int a =2; int b= a + 3 * a+;这样的语句,b最终等于多少呢? 8对于int a =2; int b= (a +)+ 3 * a;这样的语句,b最终等于多少呢? 11732.4.19如何避免多个运算符带来的问题不要在一行中编写太复杂的表达式,也就是不要在一行中进行太多的运算。改为几条语句来实现想要的结果。用括号或是分成多条语句来完成想要的功能,因为括号的优先级是最高的。这也是软件编码规范的一个要求。742.5 程序中的流程控制结构化的程序包含的三种结构:顺序结构选择结构循环结构752.5.1 顺序结构模型i = 6;j = 8;p = i +
32、 j;q = i j;762.5.2 选择结构模型(if语句)if (boolean expression) statement or block(1)else statement or block(2)例子:if(score=60) pass = true; System.out.println(“pass!”);else pass = false; System.out.println(“fail!”);statement or block 1boolean expstatement or block 2TF772.5.3 if else 的简洁写法变量 = 布尔表达式?语句1:语句2:I
33、f (x0) Y=x;Else y=-x; y= x0? x: -x;IfTest1782.5.4 选择结构模(if语句)if语句可以嵌套,如: if(score=60) pass = true; if(score=85) System.out.println(“Excellent!”); else System.out.println(“passed!”); else pass = false; System.out.println(“failed!”); 792.5.5 选择结构模型(if语句)注意:boolean exp处只能是boolean类型,这一点与C/C+不同,比如:int u;
34、if(u = 12)/错误!IfTest2802.5.6 if语句的选择结构-总结 if (表达式) 语句;if (表达式) 语句1; else 语句2;if (表达式1) 语句1;else if (表达式2) 语句2;else if (表达式3) 语句3; else 语句n;每个语句可以是使用 组成的复合语句变量 布尔表达式?语句1:语句2;If语句还可以嵌套使用if (表达式1) if (表达式2) 语句1;else语句2; esle if (表达式2) 语句3;else语句4;嵌套时最好使用确定层次界限;812.5.7 选择结构模型(switch语句)int expstatement o
35、r block 3statement or block 2statement or block 1int1int2int3822.5.8 选择结构模型(switch语句)switch (int expression) case int1: statement or block (1) break; case int2: statement or block (2) break; case int3: statement or block (3) break; default: statement or block(4)switch (season) case 1: System.out.pri
36、ntln(“Spring”); break; case 2: System.out.println(“Summer”); break; case 3: System.out.println(“autumn”); break; case 4: System.out.println(“winter”); break; default: System.out.println(“unkown season!”);832.5.9 switch语句的选择结构 Switch (表达式)case 常量 表达式1:语句1;case 常量 表达式2:语句2;case 常量 表达式n:语句n;default: 语句
37、n+1;default语句是可选的,它接受除上面接受值的其他值,通俗的讲,就是谁也不要的都归它。case后面可以跟多个语句,这些语句可以不用大括号括起来 。 switch语句判断条件可接受int, byte, char, short型,不可以接受其他类型一旦碰到第一次case匹配,就会开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,后面case条件下的代码都会被执行,直到碰到break语句为止。可以利用这个特点来用同一段语句处理多个case条件 SwitchTest842.5.10 循环结构模型(while)boolean expstatement or blockTF例子:int num1 = 1;int num2 = 20;while (num1 num2) num1+; num2-;while (boolean expression) statement or blockWhileTest852.5.11 循环结构模型(do-while)boolean expstatement or blockTFdo statement or block w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 备战月考演讲稿
- 商场服装销售工作总结8篇
- 合作协议书汇编7篇
- 2025黑龙江东北林业大学生态学院校内招聘2人考前自测高频考点模拟试题及一套参考答案详解
- 2025年河北石家庄井陉县中医院公开招聘工作人员19名考前自测高频考点模拟试题及完整答案详解
- 2025北方人才(蒙东)国家标准化考试基地招聘28人考前自测高频考点模拟试题及一套参考答案详解
- 2025年甘肃省大数据中心引进博士研究生模拟试卷及答案详解(典优)
- 2025年漳平市法院系统招聘真题
- 2025福建省计量科学研究院招聘3人考前自测高频考点模拟试题完整参考答案详解
- 2025广西玉林市北流市大伦镇便民服务中心招聘公益性岗位考前自测高频考点模拟试题附答案详解(完整版)
- 【MOOC】声乐作品赏析与演唱-扬州大学 中国大学慕课MOOC答案
- 锅炉节能器施工方案
- 2024版中国宪法课件
- 【MOOC】机械之美-神奇的矿冶机械(双语)-江西理工大学 中国大学慕课MOOC答案
- T-IAC CAMRA 47.3- 2022汽车覆盖件低碳维修技术规范 第3部分:车辆玻璃
- 《食品厂员工绩效方案》
- 工程人员驻场服务方案
- 信息技术居间协议书
- 2024年高考文综(政治)全国卷Ⅰ试卷及答案解析
- TSHZSAQS 00243-2024 新疆北疆免耕复播大豆高产栽培技术规程
- 山水情怀 课件-2024-2025学年高中美术人教版 (2019) 选择性必修2 中国书画
评论
0/150
提交评论