版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JavaJava语言与语言与JBuilderJBuilder应用初步应用初步第二章第二章 JavaJava基本语法基本语法面向对象基础面向对象基础变量变量运算符运算符分支与循环结构分支与循环结构面向对l对象的基本特征状态:对象的状态用一个或多个变量表示,这些变量称为成员变量行为:对象的行为用函数或子程序实现,它们称为成员函数一个对象就是一组变量和函数形成的一个软件包面向对l面向对象程序的特点一切都是对象:程序是对象的组合:对象有自主存储空间:对象属于特定的类:面向对lJava程序结构对象是全局性的Java中没有全局变量和全局函数所有的函数都属于特定的类除少数几种基本变量以外,Java中的所有变
2、量类型都是类变l变量定义与变量类型变量:用于保存数据。变量在使用前需要先进行定义和初始化double resValue = 12.1 + 25.8;变量的定义:给变量设定名字和类型type name;“type”表示变量类型,“name”表示变量名变l变量类型简单变量的类型变l变量类型的跨平台性变量的表示范围不随操作系统变化lint型:32位,范围为-21474836482147483647lfloat型,32位,IEEE 754规范ldouble型:64位,IEEE 754规范字符型变量是16位Unicode字符类型,可以直接表示包括中文在内的各国文字变l变量名变量名需要满足的条件:l变量名
3、必须以字符开头;l必须是一串连续的Unicode字符,不能有空格,也不能有减号(否则会与减法相混淆);l变量名不能是Java关键字,逻辑值(true或false),以及保留字null;l在同一个有效区域里的变量名必须唯一,不同区域(比如不同子程序里)里的变量名可以重复。变l变量名Java关键字列表变lJava变量名的命名规范变量名以小写字母开头,类名以大写字母开头,常量名全部由大写字母组成如果变量名由多个单词组成,则将单词连在一起写,每个单词的首字母大写l例:flagDone, totalNum常量:多个单词间以下划线连接l例:MAX_INTEGER, MAX_ARRAY_NUM变l中文变量名
4、对于16位Unicode字符,汉字与英文字母没有区别可以在变量名中使用汉字,也可以混合使用汉字、英文字母,如:lint 整数 = 5;lchar 汉字 = 文;ldouble 费用_Fee = 3.3;变l常数的类型默认的常数类型:变l指定常数的类型变l引用变量简单变量仅能存储简单的数据,对于复杂的数据,必须用引用变量来表示引用变量里存储的仅仅是一个指针,它指向真正的对象所在地。例如下面的例子:变l变量的初始化所谓初始化,就是给变量赋一个初值任何变量,在访问它的值以前,必须先要给它赋一个值,否则结果是不可预料简单变量的初始化:只需赋一个值即可,还可以在变量定义时即将其初始化int aNum =
5、 0;double aValue = 0.0;char aChar = ;变l变量的初始化Java语言对变量初始化的要求非常严格,如果变量存在未初始化的可能,则提示出错,不能继续编译在Delphi语言中,对于变量可能未初始化的问题只会给出一个警告,还可以继续编译C/C+语言根本不提示此类问题,完全由程序员自己把握变l引用变量的初始化用new语句在内存中创建一个对象,再将引用变量指向这个对象TheClass aClass;aClass = new TheClass();程序第一行定义了一个引用变量,aClass,此时它还只是一个空的指针;第二行语句在内存中创建了一个TheClass型的对象,再将
6、变量aClass指向该对象变l最终变量最终变量的值在初始化之后就不能再变了。最终变量相当于常量最终变量的定义:使用final关键字:final int aConstInteger = 25;最终变量的定义和初始化也可以分开:final int aConstInteger;aConstInteger = 25;最终变量在定义之后应当尽快初始化,以免发生多次赋值而出错运l什么是运算符运算符对1个、2个或3个参数完成一项函数功能按参数的数量划分:l一元运算符、二元运算符和三元运算符按功能划分:l可分为5类:算术运算符、关系与条件运算符、移位与逻辑运算符、赋值运算符、其它运算符运l运算符的形式一元运算
7、符又可分为前缀符号和后缀符号前缀符号的运算符在运算数之前,如“+a”后缀符号的运算符在运算数之后,如“a+”二元运算符只有一种形式,就是运算符在两个运算数之间,例如:“a + b”三元运算符只有一个:“op1 ? op2 : op3”,它相当于一个简化的条件选择语句运l算术运算符包括基本的四则运算:加法“+”,减法“-”,乘法“*”,除法“/”,余数“%”算术运算符都支持浮点数和整数运算运l算术运算符如果两个运算数是相同类型的,则运算的结果也是同样类型如果两个运算数类型不同,Java会先将数值转换为较精确的类型,再进行计算,结果也是较精确的类型数据类型精度的次序:lbyteshortintlo
8、ngfloatdouble例,整数和浮点数相加,首先将整数转换成浮点数,再相加,结果也是浮点数型运l其它的算术运算符4个一元运算符,其中“+”和“-”运算符各有前缀和后缀两种形式运l其它的算术运算符最容易混淆的是“op+”和“+op” ,例如:int a1 = 10;int a2 = 10;int b1, b2;b1 = a1+;b2 = +a2;运l关系运算符比较两个值是否满足某种关系。如果满足,则返回 “true”(真),否则返回 “false”(假)常用的关系运算符:运l关系运算符在Java中,“=”代表给变量赋值,而用“= =”代表相等,这与传统的习惯不同初学者往往习惯性地用“=”表示
9、相等,从而出现“if (a = b) .”的错误“!=”运算符表示“不等于”,这与C, C+语言的形式一样。但在Basic,Pascal等语言中,用“”表示“不等于”。程序员应当注意不同语言中不等号的形式差别。运l6种条件运算符列表运l条件运算符“&”和“&”的差别:“&” 只有在需要时才计算右边op2的值,如果通过op1就能知道结果时,op2就不会计算“&”运算符会计算出两边op1和op2的值,再得到返回值例:if ( (57) & (132) ) then . “57” 不成立,那么“(57) & (132)”显然不会成立,因此不再计算“132”运l负数的二进制存储方法在计算机里,负数一般
10、是以二进制“补码”的形式存储的补码是以最大的二进制数减去负数的绝对值再加1而得的例:整数“-14”,计算机中实际存储的值是 “1 0000 0000 0000 0000 - 0000 0000 0000 1110 = 1111 1111 1111 0010”运l移位与按位运算符移位和按位运算符就是对二进制数值进行操作的运算符移位运算符的作用是将二进制数向左或向右移一位。下表列出全部3种移位运算符:运l移位与按位运算符:有符号右移,将二进制数右移一位,如果二进制数的最高位为0,则左端补0,如果最高位为1,则左端补1,相当于除以2:无符号右移,将二进制数向右移一位,左端补0,常用于直接设置二进制位
11、的操作运移位运算符常用于直接设置二进制位,此时每一位都有其具体的含义,并不代表一个整数,因此有符号右移就失去了意义,而应当使用无符号右移符“”按位运算符:对二进制数的每一位分别进行逻辑操作,Java提供了4种按位运算符:运l移位与按位运算符“&”运算符对操作数op1和op2的每一位进行“与”操作例:10 & 13,计算过程如下: 1010 & 1101 - 1000和1101按位与的结果是将第2位置0,其它位不变,用于将某位数字置零的操作运l移位与按位运算符“|”运算符进行按位的“或”运算,只要有一个操作数的对应位为1,结果的对应位就是1例:计算1010 | 0001的结果: 1010 | 0
12、001 - 1011和0001按位“或”之后,右边第1位被置“1”,其它位不变。常用于将某一位置“1”运l移位与按位运算符“”运算符实现按位异或运算,只有两个操作数的对应位不同,结果才为1例:1010 1111的结果: 1010 1111 - 0101与1111异或的结果是每一位都相反,常用于将某些位颠倒,其它位不变的操作运l移位与按位运算符“”是按位运算符中唯一的一元运算符,它的作用是将二进制数的每一位取补,例如: 1010 - 0101按位运算符在设置逻辑标志时非常有用,通过按位运算符可以方便地设置、修改、访问每个标志位的状态运l赋值运算符“=”:最基本的赋值运算符,将一个变量或常量的值赋
13、给另一个变量。例如:int a = 5; / a的值为5a = 8; / 现在a的值为8快捷赋值运算符,用于同时实现算术、移位或按位操作与赋值操作。例如:i = i + 2;可以用快捷赋值符号“+=”表示:i += 2;运l赋值运算符快捷赋值运算符列表:运l其它运算符其它运算符列表:运l其它运算符“? :”,是唯一的一个三元运算符,形式为:op1 ? op2 : op3首先判断op1,如果op1为真,则返回op2的值;如果op1为假,则返回op3的值“(变量类型)”,将变量转换成指定类型:float b = 3.6;int c = (int)b * 2;b被强制转换成整数,抛弃小数部分以后的值
14、为3,于是c = 6运l运算符的优先级列表分支与l分支控制语句if语句:是最基本的分支控制语句,使程序根据条件有选择地执行语句if语句的形式如下:if (关系表达式) 语句它的含义是:如果关系表达式为真,则执行后面花括号里的语句,否则就不执行花括号里的语句分支与l分支控制语句例:对于前面的例子,如果当a不是正数时也需要在屏幕上显示,语句如下:if (a 0) System.out.println(变量a是正数。);else System.out.println(变量a是负数或零。);当a不是正数时,执行else内的代码,显示“变量a是负数或零”分支与l分支控制语句组合的if . else 语句
15、:例,要求当a是正数、a是负数、a是零时分别显示:if (a 0) System.out.println(变量a是正数。);else if (a 0) System.out.println(变量a是负数。);else System.out.println(变量a是零。);分支与l分支控制语句处理多种选择问题的方法:l利用多个if . else结构l利用switch语句处理switch语句的语法结构:lswitch语句将IntVar的值与每个case语句的整数值比较l如果符合,就执行这个case中的语句l如果不与任何一个case符合,就执行default中的语句switch (IntVar) c
16、ase 1: 语句 break; case 2: 语句 break; . case n: 语句 break; default: 语句分支与l分支控制语句switch分支的特点:每个分支均以一个break语句结尾作用是跳出switch结构如果没有break语句,那么程序在执行完这个case的代码后,会接着执行下面一个case的代码分支与l例题:不带break语句的switch结构switch (n) case 1: System.out.println(n的值是1);case 2: System.out.println(n的值是2);case 3: System.out.println(n的值是
17、3);case 4: System.out.println(n的值是4);case 5: System.out.println(n的值是5);default: System.out.println(n的值不在预设范围内。);分支与l循环控制语句循环控制语句的作用是反复执行一段代码常用的循环结构:lwhile循环ldo . while循环lfor循环循环结构的组成部分:l循环头(控制语句)l循环体(代码)分支与l循环控制语句while循环while (条件表达式) 语句当条件表达式为真时,反复执行花括号中的语句,直到条件为假,则退出循环例:计算1+2+3+.,一直到结果大于100,求此时加到的最
18、大的数是多少分支与l循环控制语句例题程序如下:int sumx = 0;int x = 0;while (sumx = 100) x +; sumx += x; System.out.println(最大的加数为: + x + 。);程序的核心是一个while循环结构,当sumx没有超过100的时候,反复执行累加程序分支与l循环控制语句do.while结构,形式如下:do 语句 while (条件表达式)while结构和do.while结构的差异:lwhile循环:先判断,再执行。如果一开始循环条件就不满足,则循环内的语句根本不会执行ldo.while循环:先执行,后判断。不管循环条件满不满足,循环内的语句至少会执行一遍分支与l循环控制语句while和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件代理服务合同定制
- 工业气体订购协议详解
- 肉禽购销协议格式
- 动画制作招标文件
- 房屋宅基地买卖合同纠纷处理
- 农业科研成果与农民知识产权保护考核试卷
- 家用纺织品的品牌形象建设与推广考核试卷
- 木材采运的危害与预防考核试卷
- 人寿医疗合同模板
- 托管学生转让合同范例
- 农业合作社全套报表(已设公式)-资产负债表-盈余及盈余分配表-成员权益变动表-现金流量表
- 高速公路施工交通组织专项方案
- 全国教师教学创新团队申报书(范例)
- GMP质量体系洁净度检测报告书
- YS/T 755-2011亚硝酰基硝酸钌
- LS 8010-2014植物油库设计规范
- GB/T 9119-2000平面、突面板式平焊钢制管法兰
- GB/T 4955-1997金属覆盖层覆盖层厚度测量阳极溶解库仑法
- GB/T 33143-2016锂离子电池用铝及铝合金箔
- GB/T 26316-2010市场、民意和社会调查服务要求
- GB/T 22427.7-2008淀粉粘度测定
评论
0/150
提交评论