《java语言程序设计第6章第1章.ppt》由会员分享,可在线阅读,更多相关《java语言程序设计第6章第1章.ppt(91页珍藏版)》请在三一办公上搜索。
1、Java 语言程序设计,第一章Java 语言基础知识,2,目录,1.1 Java语言与面向对象的程序设计1.2 Java程序概述1.3 基本数据类型与表达式1.4 数组的概念1.5 数组的创建和引用1.6 本章小结,3,1.1 Java语言与面向对象的程序设计,Java语言是一个面向对象的程序设计语言。除了面向对象的特点以外,Java语言还在安全性、平台无关性、支持多线程、内存管理等许多方面具有卓越的优点。,4,1.1.1 面向对象的程序设计思想,计算机程序设计对问题进行抽象用计算机语言表述,利用机器求解,Java语言与面向对象的程序设计,5,1.1.1 面向对象的程序设计思想(续),程序设计
2、语言发展的历程机器语言汇编语言高级语言面向对象的语言,Java语言与面向对象的程序设计,6,1.1.1 面向对象的程序设计思想(续),面向对象的思想将客观事物看作具有状态和行为的对象,通过抽象找出同一类对象的共同状态和行为,构成类。,Java语言与面向对象的程序设计,7,1.1.1 面向对象的程序设计思想(续),例:构建一个汽车类,需要提取所有汽车对象的共有的状态和行为。将状态用变量表示,行为用方法表示。class Car int color_number;int door_number;int speed;void brake()void speedUp();void slowDown();
3、,Java语言与面向对象的程序设计,8,1.1.1 面向对象的程序设计思想(续),面向对象技术给软件发展带来的益处可重用性可靠性 面向对象语言的基本特征抽象和封装继承性多态性,Java语言与面向对象的程序设计,9,1.1.2 Java语言的特点,面向对象安全性Java不支持指针Java的内部安全措施平台无关性编译后的字节码对应于Java虚拟机,因此可在不同平台上运行多线程Java是第一个在语言级提供内至多线程支持的高级语言内存管理Java对内存自动进行管理并进行垃圾回收,Java语言与面向对象的程序设计,10,1.1.2 Java语言的特点(续),Java 语言的优点易于学习代码效率高代码质量
4、高开发程序快体系结构中立,纯Java程序不依赖于平台一处编写,各处运行软件易于发布,Java语言与面向对象的程序设计,11,1.1.2 Java语言的特点(续),Java与C+的区别Java中没有#include 和#define 等预处理功能,用import语来句包含其它类和包;Java中没有structure,union及typedef;Java中没有不属于类成员的函数,没有指针和多重继承,Java只支持单重继承;Java中禁用goto,但goto还是保留的关键字;Java中没有操作符重载;Java中没有全局变量,可以在类中定义公用、静态的数据成员实现相同功能;.,Java语言与面向对象的
5、程序设计,12,1.1.3 Java类库,组成Java程序的最小单位是类,类封装了数据与处理数据的方法。对于大多数常用的功能,有大量已经编译好、经过测试的类,这些类的集合就是Java类库。Java类库主要是随编译器一起提供,也有些类库是由独立软件开发商提供的。,Java语言与面向对象的程序设计,13,1.2 Java程序概述,Java 开发环境Application 举例Applet举例Servlet举例JSP举例,14,1.2.1 Java开发环境,Java程序概述,Java程序编译执行的过程,15,1.2.1 Java开发环境(续),一次编写,各处运行,Java程序概述,16,编译,没有绝
6、对地址,将.class文件装载到内存,不存在伪造的指针不违反访问权限不非法访问对象不导致操作栈溢出,Java的编译与执行,Java程序概述,1.2.1 Java开发环境(续),17,1.2.1 Java开发环境(续),Java APIs(应用程序接口)经过编译的,可在程序中使用的Java代码标准库。Java VM(虚拟机)Java 程序由Java虚拟机程序执行(或解释执行)。,Java 平台,Java程序概述,18,1.2.1 Java开发环境(续),Java2 SDK(Software Development Kit)Standard Edition(J2SE)Enterprise Edit
7、ion(J2EE)Mobile Edition(J2ME),Java程序概述,19,1.2.1 Java开发环境(续),J2SEJ2SDK的核心部分开发工具编译器调试器 文档制作工具运行环境 Java 虚拟机组成Java 2 平台API的类。帮助文档附加库 Java程序(Applets 和 Applications)的演示,Java程序概述,20,Java开发工具包括Javac:Java编译器,用来将java程序编译成 Bytecode。Java:Java解释器,执行已经转换成Bytecode的java应用程序。Jdb:Java调试器,用来调试java程序。Javap:反编译,将类文件还原回方
8、法和变量。Javadoc:文档生成器,创建HTML文件。Appletviwer:Applet解释器,用来解释已经转换成Bytecode的java小应用程序。,1.2.1 Java开发环境(续),Java程序概述,21,1.2.1 Java开发环境(续),环境安装以j2sdk1.4.0为例下载地址下载文件j2sdk-1_4_0-win.exej2sdk-1_4_0-doc.zip安装直接运行“j2sdk-1_4_0-win.exe”。文档解开“j2sdk-1_4_0-doc.zip”。,Java程序概述,22,1.2.1 Java开发环境(续),安装JDK后产生如下目录:bin目录:Java开发
9、工具,包括Java编译器、解释器等 demo目录:一些实例程序 lib目录:Java开发类库 jre目录:Java运行环境,包括Java虚拟机、运行类库等,Java程序概述,23,1.2.1 Java开发环境(续),几种集成开发环境netBeansEclipseBorland JBuilderMicrosoft Visual J+IBM:Visual Age for JavaSun ONE Studio,Java程序概述,24,1.2.2 Application举例,Application运行在客户端Java虚拟机上的Java程序可在客户端机器中读写可使用自己的主窗口、标题栏和菜单程序可大可小
10、能够以命令行方式运行主类必须有一个主方法main(),作为程序运行的入口。,Java程序概述,25,public class MyClass private int val1,val2;public void myFun(int x,int y)val1=x;val2=y;System.out.println(The sum is:+(val1+val2);public static void main(String arg)MyClass MyObj=new MyClass();MyObj.myFun(1,2);,1.2.3 Application举例(续)例1-1,Java程序概述,26,
11、1.2.3 Application举例(续)例1-1 运行结果,使用如下命令编译并运行程序:javacMyClass.javajava MyClass运行结果如下:The sum is:3,Java程序概述,27,Applet小应用程序运行于支持Java的Web浏览器中浏览器的解释器把字节码转换成和机器匹配的指令,在网页中执行小程序。Applet和Application的差别:运行环境的不同,小应用程序总是放在Web浏览器的图形用户界面中,1.2.3 Applet举例,Java程序概述,28,Applet的优点Web 浏览器软件包括很多小应用程序运行所需的功能Applet的局限性在客户端主机的
12、文件系统中读/写受限不能运行客户端主机的任何程序仅能在服务器和客户端之间建立联系,1.2.3 Applet举例(续),Java程序概述,29,JAVA Applet:import java.awt.Graphics;import java.applet.Applet;public class MyApplet extends Appletpublic String s;public void init()s=new String(Hello World!);public void paint(Graphics g)g.drawString(s,25,25);HTML:,1.2.3 Applet
13、举例(续)例1-2,Java程序概述,30,1.2.3 Applet举例(续)例1-2注释,Graphics类使得applet绘制直线、矩形、椭圆形、字符串等方法init()初始化,实现了字符串的创建方法paint()中g为Graphics类的对象。调用了Graphics的drawString方法绘制字符串。此方法执行的结果就是从坐标(60,40)开始绘制出字符串Hello World!。,Java程序概述,31,1.2.3 Applet举例(续)例1-2运行,用支持Java的浏览器,比如IE6.0,打开Applet1.html,Java程序概述,32,1.2.3 Applet举例(续)例1-
14、2运行,用Java自带的appletviewer浏览输入:appletviewer Applet1.html,Java程序概述,33,Servlet运行在服务器端,响应客户端请求,扩展了服务器的功能 运行Servlet需要服务器的支持,需要在服务器中进行部署Servlet用到的包在J2EE的API中能找到所有的servlet都必须实现Servlet接口,1.2.4 Servlet举例,Java程序概述,34,程序首先构建HttpServletRequest,并建立一个数据表单;点击submit按钮后,servlet再次被调用,并产生一个含有表单的网页。public class EchoForm
15、 extends HttpServlet public void service(HttpServletRequest req,HttpServletResponse res)throws IOException res.setContentType(text/html);PrintWriter out=res.getWriter();Enumeration flds=req.getParameterNames();,1.2.5 Servlet举例(续)例1-3,Java程序概述,35,1.2.5 Servlet举例(续)例1-3,if(!flds.hasMoreElements()out.p
16、rint();out.print();for(int i=0;i Field+i+);out.print();,Java程序概述,36,else out.print(Your form contained:);while(flds.hasMoreElements()String field=(String)flds.nextElement();String value=req.getParameter(field);out.print(field+=+value+);out.close();,1.2.5 Servlet举例(续)例1-3,Java程序概述,37,JSP就是嵌入了Java代码的H
17、TML JSP和servlet同是服务器端的技术。实际上,JSP文档在后台被自动转换成servlet 使用JSP便于实现网页的动静分离相对于Servlet,JSP在服务器的部署简单,1.2.6 JSP举例,Java程序概述,38,The time in second is:,1.2.6 JSP举例(续),Java程序概述,39,1.3 基本数据类型与表达式,变量与常量基本数据类型表达式与运算符类型转换,40,1.3.1 变量与常量,变量一个由标识符命名的项每个变量都有类型,例如 int 类型或 Object类型,变量还有作用域.变量的值可以被改变.常量 常量一旦被初始化以后就不可改变。,基本数
18、据类型与表达式,41,标识符标识符是一个名称,与内存中的某个位置(地址)相对应标识符的第一个字符必须是下列字符之一:大写字母(A-Z)小写字母(a-z)下划线(_)美元符号($)标识符的第二个字符及后继字符必须是:上述列表中的任意字符 数字字符(0-9),基本数据类型与表达式,1.3.1 变量与常量(续),42,整数 byte 8 bits-128+127 short 16 bits-32768+32767int 32 bits 231(231-1)long 64 bits 263(263-1),基本数据类型与表达式,1.3.2 基本数据类型,43,整数运算比较运算符(关系运算符)算术比较运算
19、符,and=算术相等比较运算符=and!=算术运算符一元运算符+和-+,-*,/,和%(取余)自增/自减运算符+/-移位运算符,and 位运算符,&,|,and 条件运算符?:类型转换运算符字符串连接运算符+,基本数据类型与表达式,1.3.2 基本数据类型(续),44,浮点数 float单精度浮点数32-bit-m2e m2em 是一个小于 224的正整数e 是一个介于-149和104之间(含)的整数double双精度浮点数64-bit-m2e m2e m是一个小于 253的正整数e是一个介于-1045 和 1000之间(含)的整数,基本数据类型与表达式,1.3.2 基本数据类型(续),45,
20、浮点运算比较运算符(关系运算符)算术比较运算符,and=算术相等比较运算符=and!=算术运算符一元运算符+和-+,-*,/,和%(取余)自增/自减运算符+/-移位运算符,and 位运算符,&,|,and 条件运算符?:类型转换运算符字符串连接运算符+,基本数据类型与表达式,1.3.2 基本数据类型(续),46,布尔类型和布尔值布尔类型表示一个逻辑量,有两个取值:true和false例如:boolean is_salaried;boolean is_hourly;is_salaried=true;/将 is_salaried设置为trueis_hourly=false;/将is_hourly设
21、置为false,基本数据类型与表达式,1.3.2 基本数据类型(续),47,布尔运算符 关系运算符=and!=逻辑“非”运算符!逻辑运算符&,和|条件“与”和条件“或”运算符&和|条件运算符?:字符串连接运算符+,基本数据类型与表达式,1.3.2 基本数据类型(续),48,Char字符型 16位,最小值0,最大值65535,放置Unicode符号。char s=a;String字符串String 是一个类String类JDK标准类集合中的一部分String animal=“dog”;,基本数据类型与表达式,1.3.2 基本数据类型(续),49,文字量直接出现在程序中并被编译器直接使用的值.整数
22、文字量十进制如:15十六进制如:0 xff八进制如:0377,基本数据类型与表达式,1.3.2 基本数据类型(续),50,基本数据类型与表达式,1.3.2 基本数据类型(续),浮点文字量一个浮点文字量包括以下几个部分 整数部分小数点 小数部分指数(e or E)类型后缀(f or F for float,d or D for double)float 类型文字量举例:1e 1f 2.f.3f 0f 3.1 4f 6.022137e+23f double 类型文字量举例:1e1 2.3 0.0 3.1 4 1e-9d 1e137 布尔文字量布尔类型只有两个值,由文字量 true 和 false表
23、示,51,字符文字量一个字符文字量表示为一个字符或者一个转义序列,用单引号括起例如 a Z 格式字符 b backspace BS t horizontal tab HT n linefeed LF f form feed FF r carriage return CR double quote single quote backslash,基本数据类型与表达式,1.3.2 基本数据类型(续),52,字符串文字量由零个或多个字符组成,以双引号括起每一个字符都可以用转义序列来表示 例如:/空字符串/只包含 的字符串 This is a string/有16个字符的字符串 This is a+st
24、ring/字符串常量表达式,由两个字符串常量组成,基本数据类型与表达式,1.3.2 基本数据类型(续),53,public class ex1_1 public static void main(String args)final int PRICE=30;final double PI=3.141592654;int num,total;double v,r,h;num=10;total=num*PRICE;System.out.println(total);r=2.5;h=3.2;v=PI*r*r*h;System.out.println(v);,变量声明,变量,文字量,常量声明,基本数据
25、类型与表达式,1.3.2 基本数据类型(续),54,表达式是由一系列变量、运算符、方法调用构成的,表达式可以计算出一个值来程序中的很多工作是通过计算表达式的值来完成的。有时需要的是表达式的副作用,例如赋值表达式将数值赋给变量更多时候起作用的是表达式的值,这个值可以用作方法的参数,或更大的表达式的操作数,或者影响语句的执行顺序,基本数据类型与表达式,1.3.3 表达式与运算符,55,算术运算符运算符+和-例如:i+;-j;一元运算符+和 加法运算符+和-乘法运算符*,/,和%,基本数据类型与表达式,1.3.3 表达式与运算符(续),56,赋值运算符简单赋值运算符=复合赋值运算符*=/=%=+=-
26、=&=|=E1 op=E2 等效于 E1=(T)(E1)op(E2),其中T 是 E1的类型,基本数据类型与表达式,1.3.3 表达式与运算符(续),57,举例a=5表达式的值为 5a=b=c=5 表达式的值以及 a,b,c 的值都是 5 a=5+(c=6)表达式的值是 11,a 是 11,c 是 6a=(b=4)+(c=6)表达式的值是 10,a是10,b是4,c是6a=(b=10)/(c=2)表达式的值是 5,a是5,b是10,c是2a+=a-=a*a 等效于 a=a+(a=a-a*a),基本数据类型与表达式,1.3.3 表达式与运算符(续),58,关系运算符关系表达式的类型永远是布尔类型
27、(bool).算术比较运算符,=,=,!=,基本数据类型与表达式,1.3.3 表达式与运算符(续),59,逻辑运算符“与”运算 否则,结果true“非”运算符!操作数的类型必须是布尔类型如果操作数的结果为 false,则表达式的结果为 true,如果操作数的结果为 true则表达式的结果为 false,基本数据类型与表达式,1.3.3 表达式与运算符(续),60,条件运算符(表达式1?表达式2:表达式3)首先计算表达式1如果表达式1的值为 true,则选择表达式2的值如果表达式1的值为 false,则选择表达式3的值,基本数据类型与表达式,1.3.3 表达式与运算符(续),61,每个表达式都有
28、类型如果表达式的类型对于上下文不合适有时可能会导致编译错误有时语言会进行隐含类型转换,基本数据类型与表达式,1.3.4 类型转换,62,扩展转换byte,short,int,long,float,double char从一种整数类型到另一种整数类型,或者从float到double的转换不损失任何信息从整数类形向float或double转换,会损失精度窄化转换double,float,long,int,short,byte,char窄化转换可能会丢失信息,基本数据类型与表达式,1.3.4 类型转换(续),63,字符串转换任何类型(包括null类型)都可以转换为字符串类型,基本数据类型与表达式,1
29、.3.4 类型转换(续),64,赋值转换将表达式类型转换为制定变量的类型方法调用转换适用于方法或构造方法调用中的每一个参数强制转换将一个表达式转换为指定的类型例如(float)5.0字符串转换只当一个操作数是String类型时,适用于+运算符的操作数,基本数据类型与表达式,1.3.4 类型转换(续),65,数字提升 将算术运算符的操作数转换为共同类型一元数字提升如果一个操作数是 byte,short,或 char类型,一元数字提升通过扩展转换将它转换为int类型二元数字提升二元数字提升作用在特定操作符的操作数上*,/,%,+,-,=,=,!=,&,|and?:在必要时使用扩展转换来转换操作数类
30、型,基本数据类型与表达式,1.3.4 类型转换(续),66,标准输入输出简介标准输入流 System.in标准输出流 System.out例如 System.out.println(Hello world!);,基本数据类型与表达式,1.3.4 类型转换(续),67,数组由同一类型的一连串对象或者基本数据组成,并封装在同一个标识符(数组名称)下。数组是对象动态初始化可以赋值给Object类型的变量在数组中可以调用类Object 的所有方法,1.4 数组的概念,68,数组元素数组中的变量被称作数组的元素元素没有名字,通过数组名字和非负整数下标值引用数组元素。每个数组都有一个由 public fi
31、nal 修饰的成员变量:length,即数组含有元素的个数(length可以是正数或零),数组的概念,1.4 数组的概念(续),69,1.5 数组的创建和引用,数组的声明数组的创建数组元素的初始化数组的引用多维数组,70,数组的创建和引用,1.5.1 数组的声明,声明(Declaration)声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间不能直接使用,必须经过初始化分配内存后才能使用,71,Type arrayName;例如:int intArray;String stringArray;Type arrayName;例如:int intArray;String stringAr
32、ray;,1.5.1 数组的声明(续),数组的创建和引用,72,用关键字new构成数组的创建表达式,可以指定数组的类型和数组元素的个数。元素个数可以是常量也可以是变量 基本类型数组的每个元素都是一个基本类型的变量;引用类型数组的每个元素都是对象的的引用,1.5.2 数组的创建,数组的创建和引用,73,arryName=new Typecomponets number;例如:int ai;ai=new int10;String s;s=new String3;或者可以将数组的声明和创建一并执行int ai=new int10;可以在一条声明语句中创建多个数组 String s1=new Stri
33、ng3,s2=new String8;,1.5.2 数组的创建(续),数组的创建和引用,74,int ai;/或int ai 数组的声明 ai=new int10;/动态创建10个空间for(int i=0;iai.length;i+)aii=i;/为10个数组元素赋值for(int i=0;iai.length;i+)system.out.println(aii);/显示输出10个数组元素其中:数组元素的个数即为数组的长度,可以通过arryName.length引用。,75,创建数组的时,如果没有指定初始值,数组便被赋予默认值初始值。基本类型数值数据,默认的初始值为0;boolean类型数据
34、,默认值为false;,数组的创建和引用,1.5.3 数组元素的初始化,76,int data=new int10;data-1 非法的data 10 非法的 data 1.5 非法的 data 0 合法的 data 9 合法的,数组的创建和引用,1.5.4 数组的引用(续),77,int values=new int7;int index;index=0;values index=71;index=5;values index=23;index=3;values 2+2=values index-3;,数组的创建和引用,1.5.4 数组的引用(续),78,public class MyArr
35、ay public static void main(String args)int myArray;/声明数组 myArray=new int10;/创建数组 System.out.println(IndexttValue);for(int i=0;imyArray.length;i+)System.out.println(i+tt+myArrayi);/证明数组元素默认初始化为0/myArray10=100;/将产生数组越界异常,数组的创建和引用,1.5.4 数组的引用(续),79,数组名可以赋值public class Arrays public static void main(Str
36、ing args)int a1=1,2,3,4,5;int a2;a2=a1;for(int i=0;i a2.length;i+)a2i+;for(int i=0;i a1.length;i+)System.out.println(a1i);,数组的创建和引用,1.5.4 数组的引用(续),80,1.5.4 数组的引用(续),运行结果:23456,数组的创建和引用,81,字符串引用构成的数组:String strArray;strArray=new String8;strArray0=Hello;,数组的创建和引用,1.5.4 数组的引用(续),82,例子public class Array
37、OfStringsDemo public static void main(String args)String anArray=One,Two,Three;for(int i=0;i anArray.length;i+)System.out.println(anArrayi.toLowerCase();,数组的创建和引用,1.5.4 数组的引用(续),运行结果:onetwothree,83,数组的复制:public static void arraycopy(Objectsource,intsrcIndex,Objectdest,intdestIndex,intlength),source,
38、数组的创建和引用,1.5.4 数组的引用(续),84,例子public class ArrayCopyDemo public static void main(String args)char copyFrom=d,e,c,a,f,f,e,i,n,a,t,e,d;char copyTo=new char7;System.arraycopy(copyFrom,2,copyTo,0,7);System.out.println(new String(copyTo);,数组的创建和引用,1.5.4 数组的引用(续),85,int gradeTable;gradeTable 0 1 为42gradeTa
39、ble 3 4 为93gradeTable 6 2 为78,数组的创建和引用,1.5.5 多维数组,86,二维数组的声明和构造Int myArray;myArray 可以存储一个指向2维整数数组的引用。其初始值为null。Int myArray=new int35;建立一个数组对象,把引用存储到myArray。这个数组所有元素的初始值为零。Int myArray=8,1,2,2,9,1,9,4,0,3,0,3,0,0,7;建立一个数组并为每一个元素赋值。,数组的创建和引用,1.5.5 多维数组(续),87,二维数组的长度class UnevenExample2 public static vo
40、id main(String arg)int num=1,9,4,0,2,0,1,2,3,4;System.out.println(Length is:+num.length);,数组的创建和引用,1.5.5 多维数组(续),运行结果:Length is:3,88,每行的长度:class UnevenExample3 public static void main(String arg)/声明并构造一个2维数组 int num=1,9,4,0,2,0,1,2,3,4;,数组的创建和引用,1.5.5 多维数组(续),89,/数组的长度(行数)System.out.println(Length o
41、f array is:+num.length);/数组每一行的长度(列数)System.out.println(Length of row0 is:+num0.length);System.out.println(Length of row1 is:+num1.length);System.out.println(Length of row2 is:+num2.length);,1.5.5 多维数组(续),数组的创建和引用,运行结果:Length of array is:3Length of row0 is:3Length of row1 is:2Length of row2 is:5,90,int myArray;myArray=new int3;myArray0=new int3;,Int x=0,2;Int y=0,1,2,3,4;myArray1=x;myArray2=y;,数组的创建和引用,1.5.5 多维数组(续),91,1.6 本章小结,本章内容Java开发环境Java语言的特点基础语法复习要求下载、安装J2se熟悉命令行方式编译、运行Java程序熟悉一种集成开发环境,
链接地址:https://www.31ppt.com/p-6510227.html