版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章Java程序设计语言概述提纲2.1Java程序设计语言的发展2.2Java程序设计语言的基本特征2.3Java程序的运行环境2.4Java程序的基本结构2.5Java程序的基本类型2.6标识符、关键字、分隔符、常量、变量2.7Java程序的基本输入输出2.8运算符与表达式2.9流程控制语句2.10数组,遍历数组的for循环2.11二维数组2.12字符串常量String2.1Java程序设计语言的发展1995年5月发布Java和HotJava浏览器1995年9月宣布将提供Java开发工具1995年12月发布JavaScript1996年推出JDK1.01996年颁布JavaBeans规范1997年推出JDK1.1.2(称为java2)2004年推出JDK5.0(将jdk1.5改名为jdk5.0),是自JDK1.1以来最大的改进,添加了泛型2006年发布JDK6,扩展类库,提高性能2011年发布JDK7,支持动态类型语言,可在JVM上执行JavaScript等脚本语言2014年推出JDK8,支持lambda表达式,函数式编程,JavaFX2.2Java程序设计语言的基本特征应用最广泛简洁而功能强大面向对象分布式健壮性结构中立(平台无关)Android编程安全性可移植性解释执行对Internet(网络)有良好的支持多线程动态性掌握Java编程,找高薪工作!2.3Java程序的运行环境编译型源程序字节码程序Java源程序可执行程序exe裸机操作系统解释器编译连接编译运行解释运行.java.classJava是解释型的高级编程语言Java虚拟机运行Java程序的基本过程1、利用编辑器编写Java源程序源文件名:主类名.java2、利用编译器将源程序编译成字节码字节码文件名:源文件名.class3、利用虚拟机(解释器)运行工作过程:载入、代码校验、解释执行常用的Java开发环境从网络上直接下载JDK(JavaDeveloperKit),并利用命令行方式操作javac(编译器);java(解释器)Java集成开发环境(IDE)NetBeans,Sun公司开发,免费,功能齐全Eclipse(推荐,IBM提供,开源平台,支持者众多)JBuilder,VisualJ++已成历史软件下载地址:5/lxy开发工具安装之一JDK的安装与环境设计自/downloads/下载最新版本的JavaSE(JDK)7运行安装程序,安装到(C:\jdk1.7.0)设置运行环境参数:进入我的电脑\属性\高级\环境变量\系统变量添加变量classpath,值为:”C:\jdk1.7.0\lib”向path变量值末尾添加”;C:\jdk1.7.0\bin;”开发工具安装之二下载安装NetBeans7.3完全版(all)2.4Java程序的基本结构Java程序的形态:Application应用程序:它是一个完整的应用程序,可以利用Java虚拟机独立地在本机运行。
Servlet(服务器小程序):在远程的web服务器中运行,可通过web协议(即http方式访问),它可以动态生成一个网页。EJB(EnterpriseJavaBean):运行在应用服务器中,可被servlet或其它应用程序调用。运行在手机中,Android,JME,。。。Applet(应用小程序,已退出历史舞台)Application应用程序举例importjava.io.*;publicclassMyFirstJavaProgram{publicstaticvoidmain(String[]args){System.out.println(“ThisisthefirstJavaApplication”);}}2.5Java程序的基本类型数据类型决定了参与操作的变量、常量和表达式的取值类别、取值范围以及能够实施的操作行为。Java是强类型语言,所有变量和表达式,在编译时进行数据类型相容性的检查。Java的基本数据类型布尔类型:boolean字符类型:char整数类型:byte、short、int、long浮点类型:float、double1.boolean与C不同!!!只有“true”和“false”两个取值,分别代表“真”和“假”。特点:不能够与任何其他类型进行相互的类型转换操作。2.charJava语言规定,字符采用Unicode编码,每个字符占用两个字节。ASCII字符集是Unicode字符集的一个子集,并且在这两个字符集中,前128个编码所对应的字符完全相同,只是每个字符占用的二进制位数不同。3.byte、short、int、long上面4种数据类型都属于整型数值类型。byte1个字节short2个字节int4个字节long8个字节与C的区别:占用字节数固定,无unsigned类型4.float、doublefloat单精度32位double双精度64位Java语言中的浮点数值表示遵循IEEE754标准。它不仅包括正零、负零、正无穷大、负无穷大和一个特别的值NaN。上溢:无穷大,正无穷大/负无穷大下溢:0,正零/负零0/0,对负数开方:NaN见课本p41:例2-22.6标识符、关键字、分隔符、常量、变量【标识符】
Java的标识符由字母、数字、_和$组成,长度不限。第一个字符必须为字母、(_)或($)符号。标识符区分大小写。其中字母可以是大写或小写的英文字母,数字为0到9。标识符用来命名变量、符号常量、数组、方法、类、对象、接口、包等。如:MyFirstClass,Student,name,age,myObject等。要点:标识符严格区分大小写用户自定义标识符不可与Java语言关键字和常量相同Java标识符命名规范:类型规范示例包(package)用小写字母java.io类/接口名(class/Interface)驼峰命名法(Camel-Case):用名词或名词词组构成,每个单词首字母大写MyFirstJavaStudent方法/变量名驼峰命名法,用名词或名词词组构成,除首字母外,每个单词首字母大写myFirstJavastudent常量每个字母都大写,单词间用下划线(_)连接Math.PIMIN_WIDTH基本原则:见名知义【关键字】又称保留字,是Java语言规定了特定含义的标识符。用户只能按照系统规定的方式使用,不能自行定义。关键字一律用小写字母表示。Java中的关键字有50个,按用途划分为:数据类型、语句、修饰、方法、类、接口、包,并保留了const和goto。见P43关键字表【分隔符】分隔符被用来区分Java源程序中的基本成分(标识符、关键字、运算符和常量),分隔符分为注释、空白符和普通分隔符三种类别。注释是为源程序增加必要的解释说明的内容,其目的是提高程序的可读性,书写注释是编写程序的良好习惯。Java中有三种形式的注释:
/*注释部分*//**注释部分*/ //注释部分第二种分隔符是空白符,包括空格、回车符、换行符和制表符(Tab键)等。各种Java基本成分之间的多个空白符与一个空白符的作用相同。第三种是普通分隔符,具有确定的语法含义,必须按照特定的语法规定使用。它包括四种分隔符:{}
大括号,用来定义类体、方法体、复合语句或对数组进行初始化。
;分号,是语句结束的标志。
,逗号,分隔方法的参数或声明的变量序列。
:冒号,用于分隔语句标号。【常量】整型常量:十、八、十六进制实型常量:double、float字符常量:单引号括起来布尔常量:true和false字符串常量:双引号括起来符号常量在Java中,可以利用关键字final将一个变量定义为常量标识符。
finaldoublePI=3.1415926;变量PI的值在作用域范围内只能被引用,不能被修改。packagejava.lang;importjava.util.Random;publicfinalclassMath{privateMath(){}publicstaticfinaldoubleE=2.7182818284590452354;
publicstaticfinaldoublePI=3.14159265358979323846;publicstaticnativedoublesin(doublea);publicstaticnativedoublecos(doublea);publicstaticnativedoubletan(doublea);publicstaticnativedoubleasin(doublea);publicstaticnativedoubleacos(doublea);publicstaticnativedoubleatan(doublea);publicstaticnativedoubleexp(doublea);publicstaticnativedoublelog(doublea);publicstaticnativedoublesqrt(doublea);publicstaticnativedoubleIEEEremainder(doublef1,doublef2);publicstaticnativedoubleceil(doublea);publicstaticnativedoublefloor(doublea);publicstaticnativedoublerint(doublea);Math类(importjava.lang)publicstaticnativedoubleatan2(doublea,doubleb);
publicstaticnativedoublepow(doublea,doubleb);publicstaticintround(floata)publicstaticlonground(doublea)privatestaticRandomrandomNumberGenerator;
publicstaticdoublerandom()//产生0~1.0之间的一个随机数
publicstaticintabs(inta)publicstaticlongabs(longa)publicstaticfloatabs(floata)publicstaticdoubleabs(doublea)publicstaticintmax(inta,intb)publicstaticlongmax(longa,longb)publicstaticfloatmax(floata,floatb)publicstaticdoublemax(doublea,doubleb)publicstaticintmin(inta,intb)publicstaticlongmin(longa,longb)publicstaticfloatmin(floata,floatb)publicstaticdoublemin(doublea,doubleb)}【变量】在Java语言中,所有的变量必须先定义后使用。其格式为:数据类型标识符1[=初值],[标识符2...];如int
a,b,c=30;floatf1,f2;基本数据类型的变量在声明时就为其分配内存空间;其它类型(如数组、对象)需要用new为声明的变量分配空间。变量的作用域在某个方法体中或参数表中声明的变量只能在该方法体中使用;在某个语句块中声明的变量,只能在该语句块中使用。在类中声明的成员变量需要根据访问修饰符确定可访问者。2.7Java程序的基本输入输出Application应用程序的输入输出字符界面:输入:单个字符字符:利用System.in.read()对数据对象为单位的读入:Scanner有next(),nextLine(),nextInt(),nextXXX()方法输出:System.out.print()System.out.println()System.out.printf()格式化输出importjava.util.Scanner;publicclassApplicationLineInOut{ publicstaticvoidmain(Stringargs[]){ Stringstr=""; System.out.print(“请输入一行任意字符串:");
Scannersc=newScanner(System.in);//扫描标准输入流
str=sc.nextLine();//读取一行
System.out.println(“你输入的字符串是:"+str); }}字符界面IO(读入一行)importjava.util.Scanner;publicclassReadMultiInt{
publicstaticvoidmain(String[]args){intsum=0;System.out.println(“请输入10个整数:”);//输入10个数
Scannersc=newScanner(System.in);
for(inti=0;i<10;i++){sum+=sc.nextInt();}System.out.println(“它们的和是:"+sum);}}字符界面IO(读入多个整数)格式化输出Jdk5.0开始引入与C语言类似的格式化输出方法,用System.out.printf()实现,如:…value=100.0/3;System.out.printf(“%10.2f”,value);….显示结果将为:333.33其中的%10.2f为格式控制字符串,表示用10个字符宽度,小数点后2位的浮点数格式显示变量value的值。其它格式见表2-5:符号d,x,o,f,e,s,c,b分别表示10进制整数、16进制整数、8进制整数、10进制小数、科学表示法,字符串、字符、布尔值2.8运算符与表达式算术运算:+、-、*、/、%、++、--逻辑运算:&、|、!、^、&&、||关系运算:==、!=、>、<、>=、<=位运算:~、&、|、^、>>、<<、>>>其他运算:?:、赋值运算符、()、[]、new检测某个对象是否属于某个类
instanceof(对象)赋值操作中的类型转换Java是强类型语言,因此,在进行赋值操作时要检查类型;当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换;当将占位数多的类型赋值给占位数少的类型时,需要由用户使用显式地强制进行类型转换。2.9流程控制语句表达式语句:表达式后加一个分号a+=a*6;a++;a+3;复合语句:包含在括号中的语句序列流程控制语句:顺序结构、分支结构和循环结构分支语句:if...else、switch循环语句:while、do...while、for转移语句:break、continue、label返回语句:return《分支结构》
if(布尔表达式)语句1;[else语句2;]switch(表达式){case常量1:语句块1;
......case常量n:语句块n;default:语句块n+1;}循环结构—while格式:
while(循环条件){循环体}含义:循环条件为一个布尔表达式,其值为true时,重复执行循环体。循环结构—do格式:do{
循环体}while(循环条件);含义:重复执行循环体,直到循环条件为false。循环结构—for格式:for(表达式1;表达式2;表达式3)循环体;表达式1:循环初值表达式2:布尔型表达式,循环条件表达式3:循环增量表达式for循环示例问题:输入一个整数到变量n,求n!。定义函数nn!控制转移语句break语句:使程序的流程从一个语句块内部转移出去。通常在switch和循环语句中使用。continue语句:只能在循环语句中使用。其作用是终止当前这一轮的循环,直接进入下一轮的循环。label:用于标记位置breaklabel/continuelabel跳转到label所示的层次,而不限于当前层。break+label示例publicclassLabelTest{publicstaticvoidmain(Stringargs[]){booleant=true;first://第一个位置标签{second://第二个位置标签{third://第三个位置标签{System.out.println("Beforethebreak.");if(t){breaksecond;//breakoutofsecondblockSystem.out.println("Thiswon'texecute");}}System.out.println("Thiswon'texecute");}System.out.println("Thisisaftersecondblock.");}}}ContinueLabel示例//continue配合label来打印0到9的三角形乘法表:
publicclassContinueLabel{
publicstaticvoidmain(Stringargs[]){outer:for(inti=0;i<10;i++){for(intj=0;j<10;j++){if(j>i){System.out.println();continueouter;}System.out.print(""+(i*j));}}System.out.println();}}//思考与练习:如何打印出更美观有效的乘法表?2.10数组问题:编写一个程序,计算一个同学自己本学期各课程的平均积点。用C怎么实现?用Java在字符界面下如何实现?示例1:字符界面下计算平均积点要点:1.定义数组,用于存放各课程成绩。2.循环读入各门课程成绩,存入数组中。3.计算平均成绩。4.输出结果:课程数量,平均积点2.10数组按照元素的组成分类,数组属于复合数据类型,它是由类型相同的元素组成的有顺序的数据集合。特点:元素类型相同;元素有顺序;所有元素共用一个名称。要点:区分数组的声明与数组的创建Java语言中的数组声明格式:数组元素类型
数组名[];
数组元素类型[]
数组名;举例:
intarrayInt[];doublearrayDouble[];String[]strs;Point[]ps;注意:按照变量的存储方式上分类,Java语言中的数组属于引用类型,因此在声明数组引用时不能给出长度。数组的创建声明数组引用后,需要利用new运算来为数组型变量定义长度且分配内存空间,我们将其称之为创建数组。
arrayInts=newint[10];arrayDoubles=newdouble[1000];String[]strs=newString[10];Java规定,数组创建后系统自动地为数组中的每个元素赋予初值。数组初值数组元素的默认初值:整型:0实型:0.0f或0.0d字符:‘\0’类对象:nullintarrayInts[]={1,2,3,4,5,6,7};String[]strs={“C++”,“QBasic”,“Pascal”};另一种for循环for(var:collection)statement;for(intvalue:array){System.out.printf(“%4d”,value)}示例从键盘读入若干门课程的成绩,用数组存储。分别输出最低成绩,最高成绩和平均成绩。问题:Java的数组在使用前必须指定长度,如果实现对任意门课程的处理?办法:先提示用户要输入课程门数,根据课程门数创建数组。一维数组的复制System.arraycopy()方法voidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength);Arrays类Arrays是java提供的一个标准类,存放于java.util包中,它专门用于对数组进行处理。常用方法包括:staticvoidsort(eType[]a),排序staticintbinarySearch(eType[]a,eTypev),查找staticvoidfill(eType[]a,eTypev),批量填充2.11二维数组问题:编写一个程序,计算全班同学的平均积点,并排序输出。用C怎么实现?用Java在字符界面下如何实现?用java在图形用户界面下实现?2.11二维数组二维数组是一个一维数组,它的每个元素是对一个维数组的引用,每个一维数组元素引用数组元素数目可以不同。可理解为一个各行长度不一定相同的二维表格。例:intarrD2[][];//声明一个二维数组变量,arrD2=newint[10][];//创建一个有10个成员的二维数组实例.arrD2[0]=newint[5]; //创建第一行arrD2[1]=newint[6]; //创建第二行…arrD2[9]=newint[20]; //创建第10行杨辉三角形11112113311464115101051161520156117213535217118285670562881193684126126843691用数组int[][]data存放数据//遍历每行r:=1~10//给第一列和第r列都赋值1data[r][0]=1;data[r][r]=1;//给r行第c列(c:=1~i-1)赋值,第r-1行的第c-1列+第r-1行的第c列data[r][c]=data[r-1][c-1]+data[r-1][c];publicclassYangHui{publicstaticvoidmain(Stringargs[]){
int[][]data;//声明数组
data=newint[10][];
//为数组分配内存
for(intr=0;r<10;r++)data[r]=newint[r+1];
//!!每行长度不同
//给各个元素赋值
data[0][0]=1;for(intr=1;r<10;r++){//遍历每行
data[r][0]=1;data[r][r]=1;//给第一列和最后一列赋值
for(intc=1;c<r;c++)//给第2列到第i-1列赋值
data[r][c]=data[r-1][c-1]+data[r-1][c];}//逐行输出数组中的内容
for(intr=0;r<10;r++){for(intc=0;c<=r;c++)System.out.print(data[r][c]+"");System.out.println();}}}利用二维数组构造杨辉三角形前10行的内容publicclassYangHuiNew{publicstaticvoidmain(Stringargs[]){
int[][]data;//声明数组
data=newint[10][];
//为数组分配内存
for(intr=0;r<data.length;r++)data[r]=newint[r+1];
//!!每行长度不同
//给各个元素赋值
data[0][0]=1;for(intr=1;r<data.length;r++){//遍历每行
data[r][0]=1;data[r][r]=1;//给第0列和最后一列赋值
for(intc=1;c<r;c++)//给第1列到第r-1列赋值
data[r][c]=data[r-1][c-1]+data[r-1][c];}//逐行输出数组中的内容
for(intr=0;r<data.length;r++){for(intc=0;c<=r;c++)System.out.print(data[r][c]+"");System.out.println();}}}利用二维数组构造杨辉三角形前10行的内容2.12字符串常量String与C不同!Java中的字符串是对象,不是字符数组!两种字符串类:一种是字符串常量,它是用String标准类实现的;另一种是可编辑修改的字符串,它是用StringBuffer标准类实现的。字符串直接量同C语言一样,Java的字符串直接量使用双引号(")将字符序列括在其中。例如:"thisisastringliteral!"但它不是一个字符数组!在使用String类对象时,需要注意下面几点:在Java语言中,字符串直接量中的每个字符占用两个字节
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版化工危险品仓库租赁及消防设施配备协议3篇
- 2024校车司机服务满意度调查聘用合同3篇
- 专业墙面刷涂料分包合作合同一
- 二零二五年度不锈钢栏杆设计与安装服务协议3篇
- 二零二五年特色街区摊位租赁经营协议2篇
- 2025宾馆客房租赁及酒店旅游咨询服务合同范本3篇
- 二零二五年度智能机器人OEM研发与生产合作协议
- 二零二五版影视作品众筹投资与分成合同3篇
- 2024版工程设计协议终止协议范本版B版
- 忻州职业技术学院《生物药物临床前评价》2023-2024学年第一学期期末试卷
- 健康中国产业园规划方案
- (2024年)二年级上册音乐
- 2024届高考英语一轮复习读后续写脱险类续写讲义
- ISO13485内部审核检查表+内审记录
- 2024年《药物临床试验质量管理规范》(GCP)网络培训题库
- 新华健康体检报告查询
- 2024版智慧电力解决方案(智能电网解决方案)
- 公司SWOT分析表模板
- 小学预防流行性感冒应急预案
- 生物医药大数据分析平台建设-第1篇
- 美术家协会会员申请表
评论
0/150
提交评论