JAVA编程基础.ppt_第1页
JAVA编程基础.ppt_第2页
JAVA编程基础.ppt_第3页
JAVA编程基础.ppt_第4页
JAVA编程基础.ppt_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

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

文档简介

JAVA编程基础,中软总公司计算机培训中心,0,第一章Java语言入门,提供了丰富的类库广泛使用的网络编程语言核心是以前被称为Oak的编程语言,旨在解决消费电子产品,JamesGoslingjava之父Java技术三部分:语言,工具集,运行环境Java家族成员:J2ME,J2SE,J2EE,1,Java语言的特点,简单性面向对象网络健壮安全体系结构中立,可移植性解释型高性能多线程动态性,2,语言排名,3,Java国际认证,对于JAVA程序设计员,Sun推出两项认证:SunCertifiedJAVAProgrammer(SCJP)SunCertifiedJAVADeveloper(SCJD),22,4,平台无关性,解释器对字节码进行解释,只要安装了java运行时系统,编写出的java程序就可以通过网络在不同平台上运行。,7,浏览器,5,程序运行过程,15,6,什么是JVM,JVM是用来定义Java字节代码在给定的计算机系统中如何被处理的一组规范。可用软件实现,也可用硬件实现。可以在Java开发工具中,也可以在浏览器中。编译器为JVM产生字节码(低级机器指令码),JVM执行这些命令。所有支持Java小应用程序的Web浏览器都有内置的JVM,小应用程序在网络中传送,下载的是字节码,由建立于浏览器中的JVM进行解释。,9,7,垃圾回收机制,Java提供动态分配内存。一般的语言,易发生内存外漏。但在Java中再也不用编程人员费神了,这是因为JVM(javaVirtualMachine)内部有一种叫做垃圾收集器的线程。垃圾收集器一直在跟踪处理器空闲时期的内存状态。它可以找出不再使用的内存并自动消除。,12,8,垃圾回收机制特点:,1)程序员无权回收内存。(系统级线程跟踪每一个存储空间的分配情况)2)系统自动完成。(在JVM空闲周期,垃圾收集线程检查,释放内存。)3)时间不固定4)程序员可以使本地变量失去意义,例使本地变量赋值为空5)垃圾回收机制当运行用户线程时,不能回收内存6)垃圾回收时必须是对象不再用.,13,9,编写第一个Java程序,1、application程序源程序publicclassHelloWorldpublicstaticvoidmain(Stringargs)System.out.println(HelloWorld!);编译javacHelloWorld.java执行javaHelloWorld生成文档javadocHelloWorld.java生成Jar包:jar-cvfh.jarHello.class-xvf为解压反编译:javapHelloWorld;javapcHelloWorld,16,10,什么是applet程序,2、applet程序源程序:importjava.applet.Applet;importjava.awt.Graphics;publicclassEx2extendsAppletpublicvoidpaint(Graphicsg)g.drawString(helloworld,25,25);编译:javacEx2.java嵌入HTML文件:运行:1)浏览器运行2)用工具appletviewer运行,11,Exercise,Whatswrongwiththisprogram?“publicclassHellomain(Stringargs)System.out.println(Hello);,12,第三章Java语言基础,一注释/单行注释/*单、多行注释*/*文档注释*/,39,13,Java语言基础,二、标识符可以是字母、数字、下划线、美元符不以数字开头(常考)区分大小写不能为关键字(但可包含关键字),39,14,三.关键字,定义:是Java语言为特殊目的而保留的由ASCII字符构成的字符序列注:都是小写。,40,15,关键字列表:abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfalsefinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhilegotoenum,四、基本数据类型,整型长度表示范围byte1字节,8位-2727-1short2字节,16位-215215-1int4字节,32位-231231-1long8字节,64位-263263-1常量:在内存中,缺省以int型(四字节)存放进制变量赋值:同类型赋值,如果是不同类型赋值:低高,系统自动转换高低,必须强制类型转换,41,16,四、基本数据类型,2、浮点型float4字节,32位大约为+/-3.40282347E+308double8字节64位大约+/-1.79769313486231570E+308表示:10.5(日常表示法)0.105E/e2(科学计数法)常量:在内存中,缺省以double型存放,42,17,四、基本数据类型,3、字符型长度范围char2字节16位065535(0216-1)无符号整数4、逻辑型:booleantrue,false(小写),43,18,五.引用类型(3-19),除了基本数据类型外,其他的都是引用类型.引用类型包含一个指向对象的句柄.Dated=newDate();new关键字的作用:给实例对象分配内存空间调用构造函数返回该内存空间的引用,44,19,六.值传递,1、基本数据类型传递值classApublicstaticvoidchange(inta,intb)intt=a;a=b;b=t;System.out.println(a:+a+b:+b);publicstaticvoidmain(Strings)inta=5,b=6;change(a,b);System.out.println(a:+a+b:+b);,45,20,引用类型传递引用,publicclassPassTestprivateinti=6;publicPassTest(intm)i=m;publicvoidsetI(intn)i=n;publicstaticvoidchangeObj(PassTestpt)pt=newPassTest(22);publicstaticvoidchangeAttr(PassTestpt)pt.setI(33);publicstaticvoidmain(Stringargs)PassTestt=newPassTest(44);changeObj(t);System.out.println(t.i);changeAttr(t);System.out.println(t.i);,21,Exercise,在下列代码中运行到第九行时有多少对象符合垃圾回收条件classExamplepublicstaticvoidmain(Stringargs)Stringname;StringnewName=Nick;newName=Jason;name=Frieda;StringnewestName=name;name=null;/第九行,Exercise,publicclassFoopublicstaticvoidmain(Stringargs)PrintWriterout=newPrintWriter(newjava.io.OutputStreamWriter(System.out),true);out.println(Hello);WhichstatementatPointXonline1allowsthiscodetocompileandrun?A.importjava.io.PrintWriter;B.includejava.io.PrintWriter;C.importjava.io.OutputStreamwriter;D.includejava.io.OutputStreamWriter;E.Nostatementisneeded,第三章流程控制,目标:区分实例变量和局部变量描述实例变量是如何初始化的辨认、描述并使用运算符确认boolean表达式和它们在控制构造中的要求使用if,switch,for,while和do句型结构和break和continue的标号形式作为程序中的流程控制结构,变量,Java按作用域不同分为三类:1)数据成员2)方法局部变量(仅在方法内可用)3)方法的参数1.变量声明格式:变量类型变量名;2.变量名:必须为为合法标识符3.变量作用域(同名问题)/TestScoping.java4.初始化变量,运算符,1、算术运算符+,-,*,/,%(x%y,x除以y的余数)+,-(+-的前后缀问题)-用程序测试classTestpublicstaticvoidmain(Stringargs)inti=0;System.out.println(i);System.out.println(i+);System.out.println(+i);System.out.println(i);,其它运算符,关系运算符,=,b?a:b;doublemax(doublea,doubleb)returnab?a:b;Stringmax(Stringa,Stringb)returna.length()b.length()?a:b);publicstaticvoidmain(Strings)Aa=newA();a.max(5,6);a.max(4.5,6.7);a.max(abc,def);,65,构造方法:,1)方法名类名2)一般选择public访问权限3)不能有任何修饰,无返回值类型publicclassThingprivateintx;publicThing()x=5;4)构造方法可以重载,不可继承例如:classAinti,j;publicA()i=0;j=0;pulbicA(Stringi,Stringj)i=a;j=b;pulbicA(intk)i=k;j=k;,66,构造方法相关几个问题:,构造函数对数据完成两个功能-分配空间并初始化创建对象时必须调用构造方法没有构造方法时,系统提供缺省的无参构造方法自定义构造方法后,缺省的构造方法立即失效,37,67,九、import和package语句,import包.子包.类;或import包.子包.*;告诉编译器从何处找到所需的类package语句在文件中第一句,且只有一句.若不写,表示在默认包里.,38,68,什么是包,从逻辑上讲,是一组相关类的集合从物理上讲,同包即同目录(同文件系统的目录理)1.package语句import语句注:顺序2.设置使用一个包中的类时,必须指明包含这个类的包,所以正确设置环境变量classpath,解释器才能找到指定的类.setclasspath=c:mypackage;.;c:jdk1.4lib.jar3.使用importabc.def.A;或abc.def.Aa=newabc.def.A();4.JDK包的结构:lang,io,awt-event,sql,net,applet,util,22,69,第六章类设计,一.继承(inheritance)1.AisaB(BhasaA)继承机制:在面向对象编程里,可以根据已定义的类(父类)定义一个类,也叫子类。通过extends关键字实现。它不仅具有父类的成员(属性和方法),也增加了自己的一些新的属性和方法或扩展了父类的方法,见书6-35雇员与经理的关系,这种关系也叫isa关系:classAextendsBA(子类)isaB(父类),继承的特性,单一继承:只允许继承一个类,使得代码更可靠,多个类易出现混淆的问题,如同名方法构造函数:不是成员,不能被继承,但构造子类对象时,父类构造函数被调用(初始化共同的属性)继承的特性:子类可以使用父类成员(注意权限),子类可以扩展父类成员.,定义:子类可以修改从父类继承的的方法要求:1.方法声明形式一致(名字,返回类型,参数列表)2.方法权限不允许缩小3.覆盖的方法不允许抛出比父类方法更多的异常,二、方法覆盖(override),覆盖:publicclassEmployeeprotectedStringname;protecteddoublesalary;protectedDatebirthDate;publicStringgetDetail()returnName:+name+n+salary:+salary;publicclassManagerextendsEmployeeprotectedStringdepartment;publicStringgetDetail()returnName+name+/n+salary:+salary+n+Managerof+department;,classBpublicvoidf()System.out.println(B);classAextendsBpublicvoidf(inti)System.out.println(A);,问题(覆盖还是重载),方法重载(OverloadingMethods),特点:1)在同一个类中;2)方法名相同;3)参数的个数或类型不同。注意:只有返回值类型不同,不叫方法重载,编译出错。,作用:1).点取父类中被子类隐藏了的数据成员2).点取已经覆盖了的方法3).作为方法名表示父类构造方法,称为显式调用父类构造方法注:在创建子类对象时,缺省沿继承链调用所有父类无参的构造方法,也可以用super关键字来显示调用直接父类的构造方法,三.super关键字,classTestintj=5;publicTest(inti)j=i;publicvoidmethodA()System.out.println(Test!);classTestSuperextendsTeststaticintj=6;publicTestSuper()super(999);publicvoidmethodA()System.out.println(super.j);publicvoidmethodB()super.methodA();publicstaticvoidmain(Stringargs)TestSuperts=newTestSuper();ts.methodA();ts.methodB();,多态性机制具有不同的形态的能力,虽然一个对象仅有一个形态,但引用变量可以引用不同形态的对象(见书6-13页)父类引用指向子类对象多态参数:父类引用作方法参数可以指向子类的对象(6-21),四.多态性(Polymorphism),父类引用指向子类对象注:1)引用可以点取父类中的成员(编译时指向父类成员,但运行时动态绑定到子类中的成员)2)不可以点取子类扩充的成员例:classBpublicvoidf()System.out.println(B);classAextendsBpublicvoidf()System.out.println(A);publicvoidg()publicclassbothusepublicvoiddothing()Bb=newA();/父类b.f();/Ab.g();/error,异类集合程序:classAclassBextendsAclassCextendsAclassDextendsAclassEpublicstaticvoidmain(Stringargs)Aa=newA4;a0=newA();a1=newB();a2=newC();a3=newD();for(inti=0;i0)B.if(s!=null)(保护码)catch(异常类e)/首先判断可能发生的异常类型.异常处理;【finally终止处理;】,29,总结:,tryunsafe();T1;catch(IOExceptione)T2;finallyT3;T4;,30,过程:,1.正常:T1T3T4;2.有异常且捕获:T2,T3,T43.若catch里有return:T2T34.未捕获到,T3,继续上抛,直到main(),程序缺省退出5.finally语句总要执行,除非有exit(),32,当覆盖一个抛出异常的方法时,必须抛出父方法的子集(如父方法抛出多个异常)可以是同类异常或子类可能抛出少一些的异常不能抛出新的类型的异常,四.覆盖方法抛出异常,33,做以下程序:classMyExceptionextendsExceptionpublicMyException(Strings)super(s);,五、创建异常,classAMpublicvoidf(intscore)throwsMyExceptionif(score100)thrownewMyException(分数不对);if(score90)System.out.println(成绩优秀);if(score70)System.out.println(成绩良好);if(score60)System.out.println(成绩及格);if(score0)System.out.println(成绩及格);,classBMpublicstaticvoidmain(Stringargs)AMam=newAM();tryam.f(78);am.f(-5);am.f(95);catch(MyExceptione)System.out.println(e);,42,第九章基于文本的应用程序,一.命令行参数(9-3)publ

温馨提示

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

评论

0/150

提交评论