您好,欢迎访问三七文档
第二章Java基本程序结构Java基础标识符和关键字数据类型常量与变量运算符流程控制Java基础Java代码的位置Java中的所有程序代码都必须存在于一个类中。Java严格区分大小写Java是一种自由格式的语言一条语句可以写在若干行上,但一句连续的字符串不能分开在两行中。Java程序的三种注释方式单行注释、多行注释、文档注释Java基础单行注释intc=10;//定义一个整型多行注释/*intc=10;intx=5;*/文档注释/***.........*.........*/Java基础publicclassTeacher{/***这是方法listen,用于获取当前听课的学生人数*@paramsum学生总数*@paramabsence不在场人数*@returnlisten当前听课的人量*/publicintlisten(intsum,intabsence){……}}文档注释标识符和关键字标识符规则:1.用于变量、类、方法、包的名字;2.以一个字母、下划线(_)、$符开头,随之可以是数字;3.大小写敏感,无最大长度。测试:username、class、_userName、9username、$username、HelloWorld、identifier、_sys_var1×××标识符和关键字“见其名知其义”(1)标识符可以由几个单词连接而成;(2)类名:StudentInfo、BookStore(3)方法名、变量名:studName、getStudName(4)常量名:MAX_VALUE、PIE(5)包名:com、utility数据类型数据类型基本数据类型引用数据类型布尔型(boolean)字符型(char)数值型类(class)接口(interface)数组整数类型(byte,short,int,long)浮点类型(float,double)基本数据类型注意各基本数据类型的大小和取值范围(1)整型:longx=98765432100;(2)浮点型:floatf=3.5;(3)字符型:用2个字节表示一个字符;(4)布尔型:只有true和false,不能用整数表示。××longx=98765432100L;floatf=3.5f;//默认为int型//默认为double型引用数据类型引用数据类型包括类引用、接口引用以及数组引用。Objectobject=null;//声明一个Object类的引用变量Listlist=null;//声明一个List接口的引用变量int[]months=null;//声明一个int型数组的引用变量说明:将引用数据类型的常量或变量初始化为null时,表示引用数据类型的常量或变量不引用任何对象。基本类型与引用类型的区别•组成-基本数据类型:只包含数值。-引用数据类型:不仅包含数值,还包含对数值的操作。•Java虚拟机处理方式-基本数据类型:根据变量的实际类型为其分配内存空间。-引用数据类型:在内存空间不是存储引用对象的数据,而是对象在堆内存中存放的地址。例如创建一个图书类Book:声明两个Book类的实例,分别通过变量book1和book2进行引用,对book1进行具体的初始化,而将book2初始化为null,具体代码如下。publicclassBook{Stringisbn=“978-7-115-16451-3”;Stringname=“×××应用开发完全手册”;Stringauthor=“××科技”;floatprice=59.00F;}Bookbook1=newBook();Bookbook2=null;Java虚拟机为引用变量book1、book2及book1所引用对象的成员变量分配的内存空间如下图所示。从图中可以看出,变量book1引用了Book类的实例,book2没有引用任何实例。下面对变量book2进行具体的初始化,将book1引用实例的地址复制给book2变量,即book2与book1引用同一个Book类的实例,具体代码如下:book2=book1;此时Java虚拟机的内存空间分配情况如下图所示。自动类型转换(隐式)不同类型数据间的优先关系如下:低------------------------------------------------------高byte,short,char-int-long-float-double强制类型转换(显式)目标类型变量=(目标类型)值;基本数据类型转换举例:byteb=122;intx=b;b=x;12344×b=(byte)x;表达式数据类型的自动提升-所有的byte、short、char的值将被提升到int;-如果一个操作数是long型,计算结果就是long型;-如果一个操作数是float型,计算结果就是float型;-如果一个操作数是double型,计算结果就是double型。基本数据类型转换分析:System.out.println(‘a’+1)与System.out.println(“”+’a’+1)的区别常量与变量Java中的常量(1)整型常量十进制(12),十六进制(0x12),八进制(012)(2)长整型常量13L(3)单精度浮点数5.1f,.4f,2e3f,0f(4)双精度浮点数5.1,0.4,2e-3,0d常量与变量Java中的常量(5)布尔常量true和false(6)字符常量‘a’,’8’,’\n’,’\t’,’\b’,’\’’,’\\’(7)字符串常量“Helloworld”,”123”,”Welcome\n”(8)null常量null常量只有一个值,用null表示,表示对象的引用为空。常量与变量声明常量final常量类型常量标识符;初始化常量(1)声明时初始化finalintYOUTH_AGE=18;finalintA=3,B=4,C=5;(2)声明后初始化finalintYOUTH_AGE;YOUTH_AGE=18;finalintYOUTH_AGE=18;YOUTH_AGE=16;×变量的使用要点变量就是系统为程序分配的一块内存单元,用来存储各种不同类型的数据。变量类型变量标识符;例如:Stringname;//声明String型变量intpartyMemberAge;//声明int型变量注意:定义变量名时,按照Java的命名规则,第一个单词的首字母小写,其他单词的首字母大写,例如“partyMemberAge”。Java语言中的运算符主要包括:–赋值运算符–算术运算符–关系运算符(比较运算符)–逻辑运算符–位运算符运算符赋值运算符注1:在JAVA里可以把赋值语句连在一起。如:x=y=z=5;所有三个变量都得到同样的值5。注2:x+=3等效于x=x+3,等于*=,-=,/=依此类推。算术运算符算术运算符的注意问题•“+”除字符串相加功能外,还能把非字符串转换成字符串,如:“x”+123;的结果是“x123”。•如果对负数取模,可以把模数负号忽略不记。5%-2=?5/-2=?-5%2=?-5%-2=?•对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。如:intx=3510;x=x/1000*1000;运行结果是?//被除数是负数时另当别论算术运算符的应用技巧•思考题1:某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住6人,让你用一个公式来计算他们要住的房间数?答案:(x+5)/6。这种算法还可用在查看留言板的分页显示上:其中x是总共的留言数,6是每页显示的留言数,结果就是总共有多少页。答案:intx=0;while(true){x=(x+1)%10;}思考题2:假设你要让x的值在0至9之间循环变化,请写出相应的程序代码。比较运算符注1:比较运算符的结果都是boolean型,要么是true,要么是false。注2:比较运算符“==”不能误写成“=”,切记!切记!注1:逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。逻辑运算符运算符“&&”和“&”的区别•运算符“&&”只有在其左侧为true时,才运算其右侧的逻辑表达式,否则直接返回运算结果false。•运算符“&”无论其左侧为true或false,都要运算其右侧的逻辑表达式,最后才返回运算结果。publicclassTestAnd{publicstaticvoidmain(String[]args){intx=0;inty=3;if(x!=0&&y==y/x)System.out.println(y=+y);}}运算符“&&”和“&”的区别上面例子中,由于if语句的判断条件中的第一个布尔表达式是不成立的,程序就不会判断第二个布尔表达式的值,这就是“短路”。如果两个表达式之间用“&”来连接,如果正好碰到上面所示的特殊情况,程序运行时就会出错。位运算符为了方便对二进制位进行操作,Java给我们提供了四个二进制位操作符:&按位与|按位或^按位异或~按位取反位运算符•按位与011011010011011100100101结论:按位与,只有壹(1)壹(1)为1。&位运算符•按位或011011010011011101111111结论:按位或,只有零(0)零(0)为0。|位运算符•按位异或011011010011011101011010结论:按位异或,只有零(0)壹(1)或壹(1)零(0)为1。^位运算符•按位取反~0110110110010010结论:对二进制数按位取反,即0变成1,1变成0。移位运算符•Java中有三个移位运算符左移:(低位添0补齐)带符号右移:(高位添符号位)无符号右移:(高位添0补齐)移位运算符数xx2x2x21700010001000100010000000100010000010001-17111011111110111100数xx2x2x21700010001000100010000000100010000010001-1711101111111011110011111011110011101111【1】下面语句的输出结果正确吗?intx=7;System.out.println(false&&(++x==8));//输出falseSystem.out.println(true||(x++==8));//输出trueSystem.out.println(x=+x);//输出x=7【2】有程序段:inti=10;intn=i++%5;程序运行后i是多少?如果用++i,那么i和n的值最后是多少?Question?【3】执行代码后i是多少?inti=8;i=2;【4】代码执行后i是多少?inti=17;i=1;【5】下面的语句执行后,a,b,c的值为多少?booleana,b,c;a=2015&&2030;b=10!=3+4||15=2*4;c=!(10=20-10);Question?【6】下面的语句执行后,a,b,c的值为多少?inta,b;booleanc;a=2015?20:30;b=30==a?10:20;c=b=20?true:false;对象运算符(instanceof)对象运算符用来判断对象是否为某一类型,运算结果为boolean型。用法为:对象标识符instanceof类型标识符例如:java.util.Datedate=newjava.util.Date();System.out.println(dateinstanceofjava.util.Date);//结果为trueSystem.out.println(dateinstanceofjava.sql.Date);//结果为false控制结构分支语句循环语句跳转语句分支语句分支语句就是对语句中不同条件的值进行判断,从而根据不同的条件执行不同的语句。Java语言的分支语句有以下两种。•条件语句•switch开关语句条件语句条件语句可分为以下3种形式:(1)简单的if条件语句(2)if-el
本文标题:2.基本程序结构
链接地址:https://www.777doc.com/doc-4036330 .html