《Java面向对象程序设计》课件-项目2 Java编程基础_第1页
《Java面向对象程序设计》课件-项目2 Java编程基础_第2页
《Java面向对象程序设计》课件-项目2 Java编程基础_第3页
《Java面向对象程序设计》课件-项目2 Java编程基础_第4页
《Java面向对象程序设计》课件-项目2 Java编程基础_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

项目2Java编程基础Java程序设计项目描述

/

Projectdescription学做任何事情,都要打好基础。同样地,要掌握并熟练使用Java语言,必须充分了解Java语言中的基础知识。本项目将针对Java的基本语法、Java中的数据类型、运算符、流程控制、数组进行详细地讲解。0102显示购物清单打印结算清单显示购物清单任务102数据类型类型数据类型占用空间应用场合:取值范围布尔型boolean8位(1个字节)存储逻辑变量:truefalse字节型byte8位(1个字节)存储字节数据:-27~27-1整型short16位(2个字节)存储短整型数据:-215~215-1int32位(4个字节)存储整型数据:-231~231-1long64位(8个字节)存储长整型数据:-263~263-1浮点型float32位(4个字节)存储浮点数据:-3.4E+38~-1.4E-45,1.4E-45~3.4E+38double64位(8个字节)存储双精度浮点灵敏:-1.7E+308~-4.9E-324,4.9E-324~1.7E+308字符型char

存储一个字符温湿度传感器数据:温度25.5℃

湿度75%;人体传感器数据:truefalse;温度传感器范围:-10~60;风扇的控制:’开’‘关’;这些数据在Java程序中要如何表示呢?如何选择?数据类型常量

保持不变的值。常量在程序的运行过程中是不允许改变的。

Java中的常量包括整型常量、浮点型常量、字符型常量、字符串常量、布尔型常量等。整形常量有4种表示形式,分别为:二进制、八进制、十进制和十六进制。0b00000101,0x003A,10001030204常量布尔型常量布尔型常量只有两个值true和false,该常量用于表示真和假。浮点型常量指的就是小数,可分为单精度float浮点数和双精度double浮点数两种。1.23f3.14d3.14字符(串)型常量字符型常量用于表示一个字符。'a''1''$''\n''\072''\u0000’字符串表示一串连续的字符。"HelloWorld""123456""你好!Java"数据类型变量声明、赋值Java使用变量来装载程序运行过程中可以发生变化的值,在编程中使用变量让程序语言表达更方便简洁。变量声明语法:

有两种写法,一种是声明时同时赋值,如上面代码中的1-3行。一种是需要变量时重新赋值,如上面代码中的第5-6行。数据类型

需要注意的是,变量的命名要符合标识符的规定,变量名首字母小写,同时变量要使用前必须先声明和赋值后才可以使用,以下是常见的使用变量的错误:数据类型变量布尔型变量用来存储布尔值,变量使用关键字boolean声明,该类型的变量只有两个值true和false。整数类型变量用来存储整数数值,分为4种不同的类型:字节型(byte)、短整型(short)、整型(int)和长整型(long)。数据类型变量整数类型变量用来存储整数数值,分为4种不同的类型:字节型(byte)、短整型(short)、整型(int)和长整型(long)。字符型变量用来存储一个字符,在Java中使用关键字char表示,字符型变量占用2个字节。在给char类型变量赋值时,可以使用一对英文半角格式的单引号‘’把符号括起来。数据类型下面列举一个例子来定义八种数据类型变量,便于读者更好的理解在代码中如何定义变量。数据类型的转换自动转换自动类型转换也称为隐式类型转换,指的是两种数据类型在转换的过程中不需要进行显示的声明,自动完成转换。自动类型转换要满足两个条件,第一个是两种数据类型彼此兼容,第二个是目标类型的取值范围要大于源类型的。强制转换强制类型转换也称为显式类型转换,指的是两种数据类型在转换的过程中需要进行显式的声明。当两种类型不兼容,或者目标类型取值范围小于源类型时需要使用。从取值范围低到高可自动转换的为:byte,short,char>int>long>float>double(其中符号>表示可以自动转换的方向)。其中byte类型还可转换成short类型。数据类型的转换需要注意的是,变量在进行强制转换时,如果值的大小超出了目标类型的取值范围,会造成数据精度的丢失。接下来通过一个例子来演示数据精度丢失的情况。当变量i强制转换成变量b时,前面3个字节的数据将丢失,得到byte类型数据10000001(二进制)。100000001(补码)换成原码为11111111,该数值十进制为-127。数据类型的转换关于补码计算机中的符号数有3种表示法:原码、反码和补码。3种表示方法均有符号位和数值位两部分,数的最高位用来表示符号位,符号位用0表示“正”,用1表示“负”。原码:符号位加上真值的绝对值,即用第一个二进制位表示符号(正数该位为0,负数该位为1),其余位表示值。反码:正数的反码与其原码相同;负数的反码符号位不变,其余位为其原码逐位取反。补码:正数的补码与其原码相同;负数的补码是在其反码的基础上加上1。任务实施1.任务分析定义变量存储购买物品的单价和个数,将购物清单打印到控制台,运行效果如下图所示。2.代码参考教材任务2-1打印结算清单任务2算术运算符运算符可分为算术运算符、赋值运算符、比较运算符、逻辑运算符等。算术运算符描述例子(假设a=2,b=3)结果+正号,放在一个操作数前面表示正数+a2加法,两个操作数进行加法运算a+b5-负号,放在一个操作数前面表示负数-a-2减法,两个操作数进行减法运算a-b-1*乘法,两个操作数进行乘法运算a*b6/除法,两个操作数进行除法运算a/b0%取余,左操作数除以右操作数的余数a%b2++自增,操作数的值增加1(放在变量前面或后面)a=2;b=++a;a=3;b=3;a=2;b=a++;a=3;b=2;--自减,操作数的值减少1(放在变量前面或后面)a=2;b=--a;a=1;b=1;a=2;b=a--;a=1;b=2;算术运算符从运行结果中可以看出,在进行算术运算的时候需要注意几点如下:(1)在进行除法运算时,当除数与被除数都为整数时,得到的结果也是一个整数。但是如果除法运算中有小数参与,得到的结果将会是一个小数。例如1.0/2的结果为0.5,或者1/2.0的结果也为0.5。(2)在进行取模运算时,运算结果和被除数符号相关,和除数符号无关。算术运算符自增运算符“++”和自减运算符“-–”可以写在变量前也可以写在变量后,写在前面,叫做前置如++a,写在后面,叫做后置如a++。不管前置不是后置,对于变量而言,都是自增1或自减1。上述代码中的第6行,变量a会自增,所以a的值为6,但是表达式a++,因为a在前,所以会先用a的值作为表达式a++的值赋给res。上述代码中的第8行,变量b会自减,所以b的值为9,但是表达式--b,因为b在后,所以会用b减后的值作为表达式--b的值赋给res。也就是说,表达式的值会看看谁在前,就先用谁的值作为表达式的值的结果,res=a++则res得到a的值,然后a自增。res=--a则res得到a自减后的值。赋值运算符运算符描述例子(假设x=10)结果=简单赋值,将符号右边的值赋给左边的变量x=5;5+=加和赋值,将符号左边的变量与右边的值相加后再赋值给左边的变量。x+=5;等价于x=x+5;15-=减和赋值,将符号左边的变量减去右边的值后再赋值给左边的变量x-=5;等价于x=x-5;5*=乘和赋值,将符号左边的变量乘以右边的值后再赋值给左边的变量x*=5;等价于x=x*5;50/=除和赋值,将符号左边的变量除以右边的值后再赋值给左边的变量x/=5;等价于x=x/5;2%=取模和赋值,将符号左边的变量除以右边的值后再赋值给左边的变量x%=5;等价于x=x%5;0赋值运算符的作用就是将常量、变量或者表达式的值赋给某个变量。赋值运算符比较运算符也称为关系运算符,用于对两个数值或变量进行比较,得到一个布尔值true或false。关系运算符>、>=、<、<=的优先级一样,比==、!=优先级高运算符描述例子结果>

大于2>1true<

小于2<1false>=大于等于2>=1true<=小于等于2<=1false==等于2==1false!=不等于2!=1true需要注意的是运算符>,<,>=,<=,符号两边只能比较数值,布尔值不能参与。运算符==,!=,符号两边可以比较数值,也可以比较布尔值。逻辑运算符逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔值运算符描述例子结果&&当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。true&&truetruetrue&&falsefalsefalse&&truefalsefalse&&falsefalse||当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。true||truetruetrue||falsetruefalse||truetruefalse||falsefalse!当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。!truefalse!falsetrue除了符号“&&”可以进行与运算外,符号“&”也可以进行与运算。符号“&”又称为非短路与。除了符号“||”可以进行或运算外,符号“|”也可以进行或运算。符号“|”又被称为非短路或。至于非短路与与短路与,非短路或与短路或的区别,请读者自行进行验证。逻辑运算符例子中的x的初始值为3,y的初始值为1。(1)x>0&&y-->0,“&&”符号两边表达式的值都为true,所以结果为true,y的值为自减后的值0。(2)x<0&&y-->0,“&&”符号左边的表达式为false,所以与的结果即为false,此时“&&”符号运算会忽略右边表达式(即右表达式没有参与运算),y的值没有自减,还是0。所以“&&”符号又被称为短路与。(3)同理或“||”符号运算x<0||y-->100,两边表达式结果同时为false,或结果才为false,y的值自减1为0。(4)x>0||y-->100,或符号左边的表达式为true,即或运算结果为true,或符号右边表达式忽略,y的值还是-1。所以“||”符号又被称为短路或。(5)非运算比较简单,在布尔值或布尔变量前面加上!,结果取反。位运算符Java支持的位运算符有:&位与、!位或、~位非、^位异或、<<左移、>>右移、>>>无符号右移。按位与&运算符:两个操作数中位都为1,结果为1,否则为0接位或|运算符:两个操作数中有一位为1,结果就为1,两位都为0则结果为0位运算符按位取反~运算符:如果位为0,结果为1,如果位为1,结果为0按位异或^运算符:两个操作数的位同号为0,异号为1位运算符左移<<右移>>无符号位右移>>>运算符,如图3-13所示。左移<<:15<<3是指将15的二进制位向左位3位,低位用0补充。右移<<:-15>>3是指将-15的二进制位向右位2位,如果是正数高位用0补充,负数高位用1补充。无符号右移>>>:只针对正数的右移,高位用0补充。三目运算符三目运算符又称条件运算符,语法是:boolean表达式?表达式1:表达式2。运算规则是:如果boolean表达式的值是真的,则表达式1的值是整个表达式的值的结果,否则是表达式2的结果是整个表达式的值的结果运算符的优先级优先级运算符1.[]()2++--~!3*/%4+-5<<>>>>>6<><=>=7==!=8&9^10|11&&12||13?:14=*=/=%=+=-=<<=>>=>>>=&=^=|=任务实施任务分析编写一个模拟无人超市自动结算机结算清单打印程序,结算清单上要显示结算商品的行号、编码、品名、单价、数量、金额,以及结算商品的总数量和应付金额,如下所示。任务实施任务分析观察任务的运行效果图后,可以把清单分为3部分打印(清单顶部、清单中部、清单底部)。清单顶部为提示信息,直接打印即可。清单中部为商品信息,商品数据可以变化。可以通过定义变量来保存商品的属性。定义的变量有如下几种。行号:该属性可以定义成一个自增长的变量,int类型。编号:商品的编号,String类型。品名:商品的名称,String类型。单价:商品的单价,double类型。数量:商品的数量,int类型。金额:商品的单价*数量,double类型。清单底部显示商品的统计信息(商品的总数量和应付金额)。可以定义成两个变量。总数量:所有商品的数量之和,int类型。应付金额:所有的金额之和,double类型。任务实施编写代码代码参考教材任务2-2任务实施运行结果超市购物程序设计任务2流程控制/

Processcontrol

Java的流程控制包括顺序控制、条件控制和循环控制。顺序控制,即程序从头到尾依次执行语言。条件控制,基于条件选择执行语句。循环控制,根据循环初始条件和终结要求,执行循环体内的操作。顺序控制很简单,前面的任务程序用的就是顺序控制。本任务知识重点介绍条件控制和循环控制的使用。条件控制if条件语句switch条件语句if…else语句if…elseif…else语句。条件控制ifIf-else判断一个数的奇偶性,如果该数能够被2整除,则是一个偶数,否则该数字就是一个奇数。当室内温度大于30°C时,自动打开空调条件控制If-else-ifelseif…elseif…else语句用于对多个条件进行判断,进行多种不同的处理。例如,对一个学生的成绩进行分级,如果分数大于或等于80分等级为优;否则,如果分数大于或等于70分等级为良;否则,如果分数大于或等于60分等级为及格;否则,等级为差。条件控制switchswitch关键字后面的()内放入一个表达式,根据这个表达式的值去匹配case,匹配成功即执行case后面的代码块,执行完break的时候,switch语句结束,如果都没有case匹配,则执行default后面的代码块。case后面的值必须是常量,且类型只能是byte、short、char、int、enum(枚举类型)、String(JDK1.7及以上可用)。case执行代码块后面的break可省略,省略后程序将继续执行下一个case代码块,直到遇到break时结束switch语句。default块可省略,省略后表示未匹配case的情况下没有其他处理。条件控制以上程序例子的第一个switch语句表示,变量dayOfWeek为1~6时分别输出“星期一”到“星期六”,为0时输出“星期天”。当dayOfWeek的值不是0_6时,输出“输入的数字不正确!”程序的第二个switch语句表示,变量dayOfWeek为1~5时,输出“工作日”,为6或0时,输出“休息日”。循环控制while循环语句while循环语句,根据循环条件来判断是否执行大括号内的代码块,如果循环条件结果为真,则重复执行代码块,直到条件不满足,while循环才结束。do...while循环语句do…while循环与while循环的区别在于,do…while循环至少执行一次循环体代码块,而while循环可能一次都不执行循环体代码块。for循环语句for循环相比较于while循环和do…while循环,一般用在循环次数已知的情况下。嵌套循环嵌套循环,即在一个循环语句的循环体内再定义一个循环语句。while、do…while、for循环语句都可以进行互相嵌套。循环控制while上述代码中,整型变量x的初始值为1,循环条件为x<=5,第一次x满足条件,执行循环内代码块,在代码块内部对x的值增加1。依次类推,最后一次满足条件的x值为5,输出x的值为5。当x=6时,已经不满足条件,while循环退出,循环体代码块不再被执行。循环控制do..whiledo…while循环与while循环的区别在于,do…while循环至少执行一次循环体代码块,而while循环可能一次都不执行循环体代码块。循环控制forfor关键字后面的()中包括了:①初始化表达式,②循环条件,③操作表达式,它们之间使用“;”号隔开。大括号内的代码为④循环体代码块。那么for循环的执行流程为:第一步,执行①。第二步,执行②,如果条件判断结果为true,执行第三步,如果条件判断结果为false,执行第五步。第三步,执行④。第四步,执行③,然后重复执行第二步。第五步,退出循环。循环控制嵌套循环如何通过代码演示for循环嵌套实现输出直角三角形?break和continuebreak条件控制中,break语句表示终止某个case并跳出switch结构,执行后面的代码。循环中表示中断循环的执行,跳出循环结构,执行后面的代码。Break和continuecontinuecontinue用在循环语句中,作用是提前终止本次循环,执行下一次循环。上面程序第6行加了一个条件判断,当i的值为3时,使用continue语句,此时会跳过本次循环,忽略循环体的剩余语句,所以“i=3”没有打印。任务实施任务分析超市商品有苹果、香蕉、毛巾、薯片、面包五种商品,商品价格如表所示。编号商品名称价格(元)1苹果13.82香蕉9.53毛巾15.54薯片5.55面包6.8用户在控制台输入商品编号进行购买,并输入购买数量进行计算该商品所需要花费的钱。一次购买结束后,用户输入“Y”进行继续购买,输入“N”代表购物结束,最后在控制台打印总花费。任务实施编写代码代码参考教材任务2-3任务实施运行结果数组的使用任务4数组/

Array数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。在Java中,数组是一种引用数据类型。一维数组定义上面的datatype表示Java中的数据类型,可以是基本数据类型和引用数据类型。arrayRefVar表示数组名称。数组符号[]可以放在数据类型后面,也可以放在数组名称后面。建议数组的符号放在数据类型后面。初始化在Java中,数组的定义并没有为数组的元素分配内存。所以定义完数组后还需要为数组分配内存,这样数组变量才可以存储元素。创建的数组的这个过程也被称为数组的初始化。一维数组数组的初始化可以分为静态初始化和动态初始化。数组的动态初始化,使用关键字new创建数组对象。

数组的每个元素都有一个索引,可以通过数组名与索引访问数组中的元素,例如arr[0]、arr[1]。数组的最小索引值是0,最大索引值为“数组的长度-1”一维数组数据类型默认值byte、short、int、long0float、double0.0char一个空字符,即‘\u0000’booleanfalse

温馨提示

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

评论

0/150

提交评论