ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:71.78KB ,
资源ID:6038283      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6038283.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java论文.docx

1、java论文 标题 读 书 笔 记 班级 学号 姓名 日期 2012/10/30 1. 前言2.继承、抽象类和接口3.异常处理4.JAVA语言的输入输出与文件处理5. 多线程6. 结论5.参考文献前言如同任何人类语言一样,Java提供了一种表达概念的方式。如果使用得当,随着问题变得更庞大更复杂,这种表达工具将会比别的可供选择的语言更为简单、灵活。我们不应该将Java仅仅看作是一些特性的集合有一些特性在孤立状态下没有任何意义。只有在考虑到设计,而不仅仅是编码时,才能完整地运用Java的各部分。而且,要按照这种方式来理解Java,必须理解在语言和编程中经常碰到的问题。在这个读书笔记中,我将对jav

2、a2程序设计基础(第二版)中的第八章:继承、抽象类和接口、第九章:异常处理、第十章:JAVA语言的输入输出与文件处理和第十一章:多线程做出自己的学习心得和自己学习完这几章后所做的读书笔记和大家分享,如果对大家学习java有所帮助,希望大家给与支持,如果有什么需要改进的地方,也希望大家给与纠正,本人将不胜感激。这个读书笔记讨论的是编程问题,他们为什么成为问题,以及Java已经采取什么样的方案来解决它们。因此,每章所阐述的内容,都是基于我所看到的这一语言在解决特定类型问题时的方法。按照这种方法,我希望能够每次引导读者前进一点,直到Java思想意识成为你最自然不过的语言。自始至终,我一直持这样的观点

3、:你需要在头脑中创建一个模型,以加强对这种语言能的深入理解;如果你遇到了疑问,就将它反馈到头脑中的模型并推断出答案。继承、抽象类和接口继承继承是一种由已有类创建新类的机制。利用继承,可以先创建一个公共属性的一般类,根据一般类在创建一个具有特殊属性的新类。新类继承一般类的状态和行为,并根据需要增加自己的新的状态和行为。多层继承类的继承一个类从另一个类派生出来的过程叫继承,被继承的类称为基类(超类),执行该继承的类称为子类(派生类)。继承是面向对象编程技术的一块基石,它允许创建分等级层次的类。运用继承,可以创建一个通用类定义一系列一般特性。该类可以被更具体的类继承。子类的创建 类的继承是通过ext

4、ends关键字来实现的 在定义类时若使用ectends关键字指出新定义类的父类,就是在两个类之间建立了继承关系。新定义的类称为子类 它可以从父类那里继承所有非private的成员作为自己的成员。 子类的创建 * 格式 class SubClass extends SuperClass * * . * . * . * 在子类中访问父类的成员1在子类中使用super不但可以访问父类的构造方法,还可以访问父类成员就是和成员方法。但super不能访问在子类中添加的成员。子类中访问父类成员的格式如下 1. super.变量名; 2.super.方法名; 2用protected修饰的成员可以被三种类所引用

5、该类自身、与它在同一个包中的其他类、在其他包中该的子类。 3将成员声明为protected的最大好处是可以同时兼顾到成员的安全性和便利性。 例 /在学生子类Student中访问父类Person的成员。用protected修饰符和super关键字访问父类的成员 class Person3 protected String name;/用protected(保护成员)修饰符修饰 protected int age; public Person3()/定义Person3类的“不做事”的无参构造方法 public Person3(String name,int age)/定义Person3类的有参构造

6、方法 this.name=name; this.age=age; protected void show() System.out.println(姓名 +name+ 年龄 +age); class Student3 extends Person3/定义子类Student3 其父类为Person3 private String department; int age=20;/新添加了一个与父类的成员变量age同名的成员变量 public Student3(String xm,String dep)/定义Student3类的有参构造方法 name=xm;/在子类里直接访问父类的protected

7、成员name department=dep; super.age=25;/利用super关键字将父类的成员变量age赋值为25 System.out.println(子类Student3中的成员变量age=+age); super.show();/去掉super而只写sho()亦可 System.out.println(系别 +department); public class App8_3 public static void main(String args) SuppressWarnings(unused) Student3 stu=new Student3(李小四,信息系); /*在子

8、类中访问父类的成员 覆盖 重载是指在同一个类内定义名称相同但参数个数或类型不同的方法。 覆盖overriding是指在子类中定义名称、参数个数与类型均与父类完全相同的方法,用于重写父类里同名方法的功能 覆盖父类的方法:子类在重新定义父类已有的方法时,应保持与父类完全相同的方法声明,即应与父类有完全相同的方法名、返回值类型和参数列表,否则就不是方法的覆盖而是子类定义自己的与父类无关的方法,父类的方法末被覆盖,所以仍然存在。 *注意 子类中不能覆盖父类中声明为final或static的方法。 在子类中覆盖父类的方法时 可以扩大父类中方法权限,但不可以缩小父类方法的权限。抽象类与抽象方法 抽象类是以

9、修饰符abstract修饰的类 定义抽象类的语法格式如下 abstract class 类名 声名成员变量; 返回值的数据类型 方法名(参数表) 一般方法 abstract 返回值的数据类型 方法名(参数表); 抽象方法 注意 1.由于抽象类是需要被继承的,所以abstract类不能用final来修饰。也就说 一个类不能既是最终类 又是抽象类 即关键字abstract与final不能合用。 2.abstract不能与private、stastic、final或native并列修饰同一方法。 3.抽象类的子类必须实现父类中的所有方法 或者将自己也声明为抽象的。 4.抽象类中不一定包含抽象方法 但

10、包含抽象方法的类一定要声明为抽象类。 5.抽象类可以有构造方法 且构造方法可以被子类的构造方法所调用 但构造方法不能被声明为抽象的。 6.一个类被定义为抽象类,则该类就不能用new运算符创建具体实例对象,而必须通过覆盖的方式来实现抽象类中的方法。 7.抽象方法在抽象方法里,不能定义方法体。接口 接口的实现是在声明一个类的同时用关键字implements来实现一个接口。 接口实现的语法格式为 * class 类名称 implements 接口名表 * * * 接口与抽象类非常相似,但又有以下的区别抽象类( abstract method )接口 ( interface )可以包含实现区块不能包含

11、实现区块可以包含抽象方法不能包含抽象方法可以包含非public成员不可以包含非public成员能继承其他的类,包含非抽象类能继承其他接口可以控制版本无法控制版本不能被实例化不能被实例化一个类要实现一个接口时 注意以下问题 1、接口由类实现,类可以在继承父类的同时实现多个接口。2、类实现接口时,必须实现接口中的所有方法,为这些方法提供方法体。且方法必须声明为public,返回类型和参数必须和接口中声明一致。3、类实现接口时,每个方法必须有方法体,如果不能实现某个方法,也必须写出一个空方法。4、如果接口的方法的返回类型不是void的,则在类中实现 该接口方法是,方法体至少要有一个return语句。

12、接口的继承与多重继承 与类相似,接口也有继承性。定义一个接口时可通过extends关键字声明该新接口是某个已存在的父接口的子接口 它将继承父接口的所有变量与方法。与类的继承不同是,一个接口可以有多个父接口,它们之间用逗号分隔,形成父接口列表。如果有子接口中有与父接口同名的常量或相同的方法,则父接口中常量被隐藏方法被覆盖。内部类与匿名类 内部类(Inner Class)是定义在类中的类,内部类的主要作用是将逻辑上相关的类放到一起。匿名类,没有类名,在定义类的同时就生成该类的一个实例。匿名内部类:是指利用内部类创建没有名称的对象,并利用它访问到类里的成员。内部类的特性内部类可以声明为private

13、或protected内部类如有final修饰,则表明该内部类不能被继承内部类可以定义为abstract,但需要被其他的内部类继承或实现内部类不能与包含它的外部类同名。匿名内部类 匿名内部类的定义与创建该类的一个实例同时进行,即类的定义前面有一个new运算符。匿名内部类名前不能由修饰符,也不能定义构造方法。一个内部类的类声明只是在创建此类对象时用一次,而且要产生的新类需继承于一个已有的父类或实现一个接口,才考虑用匿名类。作用:主要是用来弥补内部类里没有定义到的方法例 /匿名内部类的使用方法 public class App8_14 public static void main(String a

14、rgs) ( new Inner()/创建匿名内部类Inner的对象 void setName(String n) name=n; System.out.println(姓名 +name);/以上三句是为弥补内部 /类Inner里没有定义到的方法 / 创建匿名内部类Inner的对象 ).setName(张 华); /执行匿名内部类里所定义的方法 static class Inner/定义内部类 String name; 包 包是Java语言提供的一种区别类名空间的机制,是类的组织方式,每个包对应一个文件夹。目的: 1)避免重名冲突。 2)实现访问权限控制。异常处理异常处理的基本概念异常是指在程

15、序运行中由代码产生的一种错误。在不支持异常处理的程序设计语言中,每一个运行时错误必须由程序员手动控制,这样不仅会给程序员增加很大的工作量,而且这种方法本身也很麻烦。Java语言中的异常处理机制避免了这些问题,把程序运行时错误的管理带到了面向对象的世界中。错误与异常按错误的性质分为语法错、语义错、逻辑错。语法错是由于没有遵循Java语言的语法规则而产生的,这种错误要在编译阶段排除,否则程序不可能运行。语义错是指程序运行过程中出现了一个不可能执行的操作,就会出现运行时错误,运行时错误有时也可以由逻辑错误引起。逻辑错是指程序编译正常,也能运行,但结果不是人们所期待的。Java系统中根据错误严重程度的

16、不同,将运行错分为下面两类(1)错误(2)异常Java语言的异常处理机制异常处理的主要目的是即使在程序运行时发生了错误,也要保证程序能正常结束,避免由于错误而使正在运行的程序中途停止。 一个好的应用程序,除了具备用户要求的功能外,还要求能预见程序执行过程中可能产生的各种异常,并把处理异常的功能包括在用户程序中。异常处理机制是JAVA语言的重要特征之一。通过异常处理机制可防止程序执行期间因出现错误而造成不可预料的结果。,异常处理public void fun1 throws AppException /code.try/会抛出sql异常的代码 catchSQLException ex throw

17、 new AppException(sql异常:+ex.getMessage(); /code.pulic void fun2 throws AppException,LogicException /code try /code,可能出现逻辑异常 catch(AppException ex) throw new LogicException(逻辑异常,比如:订单已经被取消,不能操作。); /code fun1(); /有能力处理,则try这个方法,没有能力处理,抛出给上层调用方法。异常异常是程序执行期间发生的各种意外或错误。比如说: 用户输入出错 所需文件找不到 运行时磁盘空间不够 内存不够

18、算术运算错 (数的溢出,被零除) 数组下标越界 抛出异常抛出异常有两种方式:由系统自动抛出和利用抛出语句抛出。1 由系统自动抛出异常 在程序运行过程中,如果出现了可被Java运行系统识别的错误,系统会自动产生与该错误相对应的异常类的对象,即自动抛出。例如上例。2 人为异常抛出两种方式: 在方法头写出需要抛出的异常(利用throws语句) 在方法体内抛出异常(利用throw语句)捕获异常异常抛出后,运行系统从生成异常对象的代码开始,沿方法的调用栈逐层回溯查找,直到找到包含相应异常处理的方法,并把异常对象提交给该方法为止。用户自定义的异常类尽管Java提供了很多异常类,但用户还是可以根据需要定义自

19、己的异常类,即创建自定义异常类。 说明:(1)用户自定义的异常类必须是Throwable类或Exception类的子类。(2)自定义的异常类,一般只要声明两个构造方法,一个是不用参数的,另一个以字符串为参数。作为构造方法参数的字符串应当反映异常的信息。(3) throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通常throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要抛出的异常;如果要捕获throw抛出的异常,则必须使用trycatch语句。例如:public

20、class MyException extends Exception/创建自定义异常类 String message;/定义String类型变量 public MyException(String ErrorMessage)/父类方法 message=ErrorMessage; public String getMessage()/覆盖getMessage()方法 return message; (4) public class Captor /创建类 static int quotient(int x,int y) throws MyException if(y0)/判断参数是否小于0 t

21、hrow new MyException(除数不能使负数);/异常信息 return x/y;/返回值 public static void main(String args)/主方法 try int result=quotient(3,-1); catch(MyException e)/处理自定义异常 System.out.println(e.getMessage();/输出异常信息 catch(ArithmeticException e) /输出ArithmeticException算术异常 System.out.println(除数不能为0);/输出提示信息 catch(Exceptio

22、n e)/处理其他异常 System.out.println(程序发生了其他异常); 定义更详细的异常分类,原则有如下几个 1.比较严重,或者都不能处理的异常,比如IO,SQL等,在触发异常处转化 为Runtime异常,这样调用方法代码更清晰,更简洁 2.逻辑异常,调用方法能够处理的(比如调用方法捕获这个异常,显示到网页上),转换为检查型异常,否则,转换为runtime异常 3.有能力处理的异常,才try,否则throws抛出,留给有能力的方法去处理。 Java语言的输入输出与文件处理程序的输入和输出可以说是程序与用户之间沟通的桥梁,通过输入输出操作实现用户与程序的交互。流(stream)是指

23、计算机各部件之间的数据流动。流是由位或字符组合而成的序列。分类:传输方向:输入流与输出流内容上:字符流和字节流输入输出 在Java中,把不同类型的输入输出源抽象为流,其中输入和输出的数据称为数据流(Data Stream)。数据流是Java程序发送和接收数据的一个通道,数据流中包括输入流(Input Stream)和输出流(Output Stream)。通常应用程序中使用输入流读出数据,输出流写入数据。缓冲流 为了提高数据的传输效率,引入了缓冲流(Buffered Stream)的概念,即为一个流配备一个缓冲区(Buffer),一个缓冲区就是专门用于传送数据的一块内存。输入输出流类库Java语

24、言的流类都封装在java.io包中。字节流每次读写8位(一个字节)的二进制数,一般为二进制文件。字符流每次读写16位二进制数,并将其作为一个字符而不是二进制为来处理。可以表示任何的文本信息。处理字节流:InputStream和OutputStream处理字符流:Reader和Writer使用InputStream和OutputStream流类InputStream和OutputStream都是抽象类,InputStream为其他所有字节输入流的超类,而OutputStream为其他所有字节输出流的超类。InputStream的方法:public int read() throws IOExce

25、ption 从输入流读取下一个字节,字节值为0-255,如果输入流中不再有数据,返回-1表示输入结束。这是一个阻塞方法,直到有数据可读,或数据流结束,或发生异常时才返回。这是一个抽象方法,需要在具体的子类中加以实现。 在OutputStrem中定义了5个方法:public abstract void write(int b) throws IOException 向输出流写入一个字节。写出字节为整数b的低字节,整数b的3个高字节被忽略。这是一个抽象方法,需要在具体的子类中加以实现。public void write(byte b) throws IOException 把缓冲区b中的全部数据写

26、入输出流。public void write(byte b, int off, int len) throws IOException把缓冲区b中从boff开始的len个字节的数据写入输出流。public void flush() throws IOException 刷新输出流,强制输出缓冲区的数据立即写出。public void close() throws IOException 关闭输出流。很多人搞不清程序要将A文件的内容写入B文件中,程序对A文件的操作所用的是输出类还是输入类这个问题。读者也先自己想想,再记住下面的话,输入输出类是相对程序而言的,而不是代表文件的,所以我们应该创建一个

27、输入类来完成对A文件的操作,创建一个输出类来完成对B文件的操作。关闭流对象。下面以读取文件的代码示例: import java.io.*; /* * 使用FileInputStream读取文件 */ public class ReadFile1 public static void main(String args) /声明流对象 FileInputStream fis = null; try /创建流对象 fis = new FileInputStream(e:/a.txt); /读取数据,并将读取到的数据存储到数组中 byte data = new byte1024; /数据存储的数组 i

28、nt i = 0; /当前下标 /读取流中的第一个字节数据 int n = fis.read(); /依次读取后续的数据 while(n != -1) /未到达流的末尾 /将有效数据存储到数组中 datai = (byte)n; /下标增加 i+; /读取下一个字节的数据 n = fis.read(); /解析数据 String s = new String(data,0,i); /输出字符串 System.out.println(s); catch(Exception e) e.printStackTrace(); finally try /关闭流,释放资源 fis.close(); catch(Exception e) 使用Reader和Writer流类读取器(Reader)和写出器(Writer)是所有字符流的超类,它们是直接继承 Object类的抽象类。用来处理纯文本文件。Reader和Writer可读写16位的字符流。作为抽象类,Reader和Writer必须被子类化才能实现字符流的读写工作。文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1