版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java标识符标识符最好“见名知义”。命名风格:骆驼表示法myCar
匈牙利表示法iMyCar标识符最好规范大小写常量用大写字母,变量用小写字母开始,类以大写字母开始。……标识符不能与关键字同名永远以字母开头,尽量不要包括其他符号。具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reservedword)。
abstractbreakbytebooleancatchcaseclasscharcontinuedefaultdoubledoelseextendsfalsefinalfloatforfinally ifimportimplementsintinterfaceinstanceoflonglengthnativenewnullpackageprivateprotectedpublicfinalreturnswitchsynchronizedshortstaticsupertrytruethisthrowthrowstransientvoidwhile1、Java语言基本元素
——保留字
Java关键字
关键字也称为保留字,是Java语言规定了特定含义的标识符。用户只能按照系统规定的方式使用,不能自行定义。有关关键字值得我们注意的地方:true、false和null为小写[关键字一律用小写字母表示],而不是象在C++语言中那样为大写。严格地讲,它们不是关键字,而是文字。这种区别是理论上的。无sizeof运算符,因为所有数据类型的长度和表示是固定的,与平台无关,不是象在C语言中那样数据类型的长度根据不同的平台而变化。goto和const不是Java编程语言中使用的关键字[但不能用做Java变量名]。
Java分隔符
分隔符是用来区分源程序中的基本成分,可使编译器确认代码在何处分隔。分隔符有注释、空白符和普通分隔符三种。1注释注释是为源程序增加必要的解释说明的内容,其目的是提高程序的可读性,书写注释是编写程序的良好习惯。Java中有三种形式的注释://注释部分(单行注释)/*注释部分*/
(多行注释)[可以嵌套//]/**注释部分*/
(文档注释)
Java分隔符2空白符空白符包括空格、回车、换行和制表符(Tab键)等符号,用来作为程序中各种基本成分之间的分隔符。各基本成分之间可以有一个或多个空白符,其作用相同。3普通分隔符普通分隔符和空白符的作用相同,但它在程序中有确定的含义,不能忽略。Java有4种普通分隔符:{}大括号,用来定义复合语句、方法体、类体及数组的初始化;
;分号,是语句结束的标志;
,逗号,分隔方法的参数和变量说明等;
:冒号,说明语句标号。
Java数据类型类(class)接口(interface)数组整数类型浮点类型Java数据类型
基本数据类型
引用数据类型空类型(null)字节型(byte)短整型(short)整型(int)长整型(long)单精度浮点(float)双精度浮点(double)数值型布尔型(boolean)字符型(char)
数据类型名占用内存空间数值范围缺省值说明byte1字节(-128)~1270整型short2字节(-32768)~327670int4字节(-2147483648)~21474836470long8字节(-8)~70float4字节(±3.40282347E+38)
~(±1.40239846E-45)0.0F浮点型double8字节(±1.79769313486231570E+308)~(±4.94065645841246544E-324)0.0Dchar2字节\u0000~\uffff\u0000字符型boolean1位true或falsefalse布尔型
Java直接量
直接量是指在程序中直接给出的一个符号串,作用是为变量赋值或参与表达式运算。也称常量。但Java中的常量另有所指,是用final说明的一个标识符。整型常量整型常量是不含小数的整数值,书写时可采用十进制、八进制和十六进制形式。十进制常量以非0开头,八进制以0开头,十六进制则以0x或0X开头。[长整型最好以L结尾]bytei=15;intj=017;longk=0X1FL;
Java常量浮点型常量十进制数形式,由数字和小数点组成,且必须有小数点,如.123,0.123,123.0;科学计数法形式,如123e3或123E-3,其中e或E之前必须有数,且e或E后面的指数必须为整数。布尔常量只有两个值true和false,代表了两种状态:真和假。[C++零为假非零即真]
对于一个浮点数,加上f或F后缀,就是单精度浮点数;加上d或D后缀,就是双精度浮点数。不加后缀的浮点数被默认为双精度浮点数。
Java常量字符常量是由一对单引号括起来的单个字符。对无法通过键盘输入的字符,可用转义符号表示。另外一种表示就是直接写出字符编码,如字母A的八进制表示为‘\101’,十六进制表示为‘\
u0041’。字符串常量是用一对双引号括起来的字符序列。可包含转义字符,例如“Hello\nworld!”。注意:‘a’与“a”、“”与“”的不同。
转义序列说明例子Unicode值\ddd八进制字符‘\141’代表‘a’\uxxxx十六进制字符‘\u0061’
代表‘a’\‘单引号\u0027\“双引号\u0022\\反斜杠\u005c\bbackspace退格BS\u0008\nnewline换行LF\u000a\fformfeed换页\u000c\rreturn回车CR\u000d\ttab制表HT\u0009Java转义字符(尽量记住)
变量是内存中的一块空间,提供了可以存放信息和数据的地方,具有记忆数据的功能。变量是可以改变的[喜新厌旧]。变量
定义变量包括变量名、变量类型和作用域几个部分。定义格式为:数据类型标识符1[=初值],[标识符2...];
如果变量定义的是基本数据类型,变量在声明时就为其分配内存空间,否则,还需要用
new为声明的变量分配空间。Java是严格区分数据类型[强类型]的语言,要求在程序中使用任何变量之前必须声明其类型[先申明后使用]。
将一种数据类型转换到另外的一种数据类型,称为类型转换。类型转换有两种:自动类型转换(隐式类型转换)和强制类型转换(显式类型转换)。类型转换byteintshortlongcharfloatdouble自动类型转换“短”“长”强制类型转换
(数据类型)变量名
bytea;intb;a=(byte)b;
经过类型转换,指定变量本身不会发生任何变化。强制类型转换可能会造成数据超出较短数据类型的取值范围,造成“溢出”。[布尔型不能转换]
变量作用域变量的使用范围[“可见性”及“存在时间”]classPerson{ intage;
……}
say(){inti;……}变量i的作用域变量age的作用域注意:同一作用域中不可有同名的变量[C++可以]语句块
publicclassTest{ privateinti=1; publicvoidmethod1(){ inti=4,j=5; this.i=i+j; method2(7); } publicvoidmethod2(inti){ intj=8; this.i=i+j; System.out.println(this.i); } publicstaticvoidmain(String[]args){ Testt=newTest(); t.method1(); }}main栈内存tthisijmethod14578ijthismethod2Test对象i变量作用域
变量初始化赋予变量一个初值,称为变量的初始化。可在定义变量的同时进行变量的初始化,如:intnum=1+2;也可定义变量后再单独初始化,如:intnum;num=1;
当变量作为类的成员使用时,即使没有进行初始化,Java也会确保它获得一个默认缺省值。[建议初始化]
上述确保初始化方法并不适合局部变量[必须初始化]永远不要使用一个未被初始化的变量的值
int变量1,bl2;//变量名合法?shorti=40000;//初始化合法?charc=‘向’;//初始化合法?若“向”?
floatf=2;//初始化合法?若2.0?
正确应怎样初始化?byteb=5;b=b-2;//b?inti=31;intj=i/10*10//j?doubled=31;intk=d/10*10//k?intx=266;bytey=(byte)x;//y?{intx=100;{intx=200;}//x?}合法?voidsay(){inti;i=i+1;}合法?
数据输入Scanner是SDK1.5新增的。可以使用该类创建一个对象。
Scannerreader=newScanner(System.in);可以调用下列方法,等待用户从键盘输入数据:
hasNextByte()hasNextInt()……
reader对象可以调用下列方法,读取输入的各种数据:
nextByte()nextInt()nextShort()nextLong……注意:Scanner类在java.util包中
数据输出System.out.print()System.out.println()inti=10;System.out.println('a'+i);//?System.out.println(''+'a'+i);//?System.out.println(""+'a'+i);//?System.out.printf(格式控制,表达式);
格式控制由格式控制符号和普通字符组成[原样输出]%d输出整型数据
%md输出整型数据占m列
%c输出字符数据
%f输出浮点数据,小数最多保留6位
%m.nf输出浮点数据占m列,小数保留n位
%s输出字符串数据inti=10;doubled=10.10;System.out.printf(“i=%5d%nd=%5.2f”,i,d);
Java运算符逻辑运算
逻辑运算用于对布尔数据进行运算,结果也是布尔型
&与 &&短路与
|或 ||短路或
!非
^异或若x=5,y=5,z=5;则t=(x!=5)&y==(z=y/x);//z=?则t=(x!=5)&&y==(z=y/x);//z=?位运算
~位反 &位与 |位或 ^位异或
<<位左移 >>位右移 >>>不带符号右移位运算符也可与=组合成复合赋值,如:>>>=…移位能实现整数除以(>>)或乘以(<<)2的n次方的结果。
Java运算符条件运算
三目(三元)运算,用法:boolean-exp?exp1:exp2;
当boolean-exp为true取exp1值,反之取exp2值。
若x=10,y=100,则z=x>y?x-y:y-x;//z=?
Java表达式表达式是由操作数和运算符按一定的语法形式组成的符号序列。一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值。表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。
已知x=2.5,a=7,y=4,计算
x+a%3*(int)x%(int)yx+a%3*(int)(x+y)%2/4设x的值为10,分别计算x+=x//x=?x-=3//x=?x*=1+2//x=?x%=5//x=?设a=6,b=-4,分别计算--a%++b(--a)<<a(a<10&&a>10?a:b){inta,b,c;a=b=c=2;a=++b-++c;//a,b,c?a=b+++c++;//a,b,c?a=b--+c--;//a,b,c?}shorta,b,c;a=2;b=3;c=a+b;//×?√?
结构化程序设计三种基本流程:“顺序结构”、“选择结构”、“循环结构”(或由它们派生出来的结构)流程控制
选择结构Java语句提供了两条基本的分支选择语句if[“二选一”]和switch[“多选一”]。if(条件)
语句块if(i%2==0)System.out.print(“偶数”);
条件必须为布尔表达式[C++不然非0即真0即假]i%2=0×
if..else…if(条件)
语句块1else
语句块2if(i%2==0)System.out.print(“偶数”);elseSystem.out.print(“奇数”);简洁写法:条件?语句1:语句2
if…elseif…if(条件1)
语句块1elseif(条件2)
语句块2elseif(条件3)
语句块3elseif(条件4)
语句块4
if嵌套if(x==1)if(y==1)System.out.print(“1”);elseSystem.out.print(“2”);elseif(x!=1)if(y==1)System.out.print(“3”);elseSystem.out.print(“4”);if语句可以嵌套使用
[“最近匹配”原则]if(x==1){if(y==1)System.out.print(“1”);elseSystem.out.print(“2”);}elseif(x!=1){if(y==1)System.out.print(“3”);elseSystem.out.print(“4”);}
多分支switch[开关语句]switch(表达式){case值1:
[case值2]:语句块1;break;case值3:语句块3;break;………case值n:语句块n;break;
[default:语句块n+1;]}switch中表达式的值必须是byte,char,short,int类型的常量表达式,而不能用浮点类型或long类型,也不能为一个字符串。一个switch语句可以代替多个if—else语句组成的分支结构,而switch语句从思路上显得更清晰。
Java中有三种语句来实现循环结构循环结构
whilewhile(条件表达式){
循环体}含义:当循环条件表达式为true时,重复执行循环体。[当型循环]注意:while表达式的括号后一般不要加;
do…whiledo{
循环体}while(条件表达式);含义:重复执行循环体,直到循环条件表达式为false。[直到型循环][至少被执行一次]注意:while表达式的括号后一定要加;
forfor(表达式1;表达式2;表达式3){
循环体}表达式1:初始化表达式表达式2:循环条件表达式表达式3:循环后修改循环条件的表达式特殊格式:
for(;;)…
循环嵌套不允许相互交叉嵌套分别输出1!...10!以及它们的和…longsum=0;for(inti=1;i<=10;i++)//外循环开始
{longm=1; //外循环初始变量m和外循环控制变量ifor(intj=1;j<=i;j++)//内循环开始
{m*=j; //内循环变量m和内循环控制变量j} //内循环结束
System.out.println(i+“!=”+m);sum+=m; //外循环变量sum} //外循环结束
System.out.println(“1!+…+10!=”+sum);breakbreak语句可以用在switch语句、循环语句和带标号的语句块中,用来强制中断这些语句或语句块的执行。
break[语句块标号];跳转语句continuecontinue语句可以用在循环语句和由循环语句构成的带标号的语句块中,用来强制结束本轮次的循环,并开始一个新轮次的循环。
continue[语句块标号];continue与break语句不同之处在于continue语句只是结束本轮次的循环(然后重新开始新一轮的循环),而break语句则立即结束整个循环语句。带标号的break、continue,类似与goto
break语句用法举例
publicclassTestBreak{ publicstaticvoidmain(Stringargs[]){ for(inti=0;i<10;i++){ if(i==3)
break; System.out.println("i="+i); } System.out.println("GameOver!"); }}label1:外部循环{
内部循环{ //... break;//1 //... continue;//2 //... continuelabel1;//3 //... breaklabel1;//4 }}continue语句用法举例publicclassContinueTest{publicstaticvoidmain(Stringargs[]){ for(inti=0;i<100;i++){ if(i%10==0)
continue; System.out.println(i); }} }publicclassPrimeNumber{ publicstaticvoidmain(Stringargs[]){ intn=0;
outer:for(inti=101;i<200;i+=2){//外层循环
for(intj=2;j<i;j++){//内层循环
if(i%j==0)
continueouter; //不能使用"break",为什么?
} System.out.print(""+i); n++; if(n<6)
continue; System.out.println(); //输出六个数据后换行
n=0; } }}voidlove(boy,girl){if(boy.有房()&&boy.有车()){
boy.set(nothing);
returngirl.嫁给(boy);}if(girl.愿意等()){while(!(boy.赚钱>100000&&girl.感情>8))
{
for(day=1;day<=365;day++)
{
if(day==情人节)
if(boy.givegirl(玫瑰))
girl.感情++;
else
girl.感情--;if(day==girl.生日)
if(boy.givegirl(玫瑰))
girl.感情++;
else
girl.感情--;boy.拼命赚钱();}}if(boy.有房()&&boy.有车())
{
boy.set(nothing);
returngirl.嫁给(boy);
}年龄++;
girl.感情--;}returngirl.goto(another_boy);}
publicclassSydl{publicstaticvoidmain(String[]args){intx;for(x=0;x<100;x++){if((x%3==2)&&(x%5==3)&&(x%7==2)){System.out.println("这个数字是:"+x);}}}}《射雕英雄传》:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?也就是说,有一个未知数,这个数除以三余二,除以五余三,除以七余二,问这个数是多少?[韩信点兵中国剩余定理]测验:Test2学习System,Scanner类的JavaDoc。从键盘输入10个不同类型(三种以上)的数值,用空格分割,要求按以下格式输出:Value1:<Value1>value2:<value2>……Value10:<value3>TotalSum=<valuecount>如果输入数值个数不定,如何处理?如何过滤调其中一种类型。如果输入的数值数量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公文基础知识培训课件
- 春节新媒体风向标
- 发动机行业知识培训课件
- 总经理年终总结
- 培训部门年终总结
- 立适合中国国情的长期护理保险制度模式
- 二零二五年度商业地产项目反担保合同3篇
- 国际海关日介绍
- Unit 7 Happy Birthday Section A(2a-2e)说课稿 2024-2025学年人教版(2024)七年级英语上册
- 专项学习像工程师那样 说课稿-2024-2025学年科学二年级上册苏教版
- 医院工会经费使用与管理办法、制度规则
- 2022年外交学院辅导员招聘笔试题库及答案解析
- 磁致伸缩液位传感器KYDM-路线设置使用
- (完整版)建筑业10项新技术(2017年最新版)
- 收割机转让协议
- 中学历史教育中的德育状况调查问卷
- 煤矿煤业掘进工作面班组安全确认工作记录表 模板
- 第8期监理月报(江苏版)
- 建筑工程质量管理体系文件
- 乙丙橡胶电力电缆绝缘一步法硅烷交联工艺
- 中止施工安全监督申请书(范例)
评论
0/150
提交评论