JavaOOP笔记.doc_第1页
JavaOOP笔记.doc_第2页
JavaOOP笔记.doc_第3页
JavaOOP笔记.doc_第4页
JavaOOP笔记.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

吴焕标JavaOOP笔记第一节1.1、封装:封装就是将属性私有化,提供公有的方法访问私有属性。封装优点:可提高安全性和OOP面向对象的思想1.2做法是:修改属性的可见性来限制对属性的访问,并为每个属性创建一对取值 (getter)方法和赋值(setter)方法,用于对这些属性的访问。1.2.1如代码:public class No7_1_1 private String name; /姓名private int age; /年龄private String education;/学历private String position;/职位public注意方法的访问权限是公有public还是私有private String introduction()return 大家好!我是:+name+,我今年+age+岁,学历:+education+,现在是:+position+职位。;public int getAge() return age;public void setAge(int age) if(age=在Java中“Equals”与“ = = ”的区别。“= = ”是判断两个对象0)System.out.println(你输入的年龄是非法的!默认为18);this.age =18;elsethis.age = age;public String getEducation() return education;public void setEducation(String education) cation = education;1、 2.1构造方法:构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值。2.2构造方法也称构建器(constructor)的名字和类名相同,并且没有返回值(也不能返回void,否则就是普通方法)。如:代码:public Topic()public Topic(String title,String Content,String piblishTime)this.setTitle(title);this.setContent(Content);this.setPiblishTime(piblishTime);2.2.1构造方法主要是完成对象初始化。2.2.2我们不能直接调用构造方法,必须通过new关键字来自动调用,从而创建类的实 例。如:代码:public static void main(String args) Topic topic2 = new通过new关键字来自动调用,从而创建类的实例化。 Topic(Java基础,爱你就要学习你!,2010-5-3 15:23:29);topic2.getTopicInfo();2.2.3 Java的类都要求有构造方法,如果没有定义构造方法,Java编译器会为我们提供 一个缺省的构造方法,也就是不带参数的构造方法。如:代码:public static void main(String args) Topic topic = new Topic();topic.getTopicInfo();2、 3.1方法重载方法重载与方法重写的区别是?1、 语法不同;2、 用的场合不同。方法重载是在同一个类内,方法重写是在继承里才用到的。(overload):方法名相同,参数项不同,就认为一个方法是另一个方法的重载方法。3.2方法重载是指多个方法具有相同的名字,但是这些方法的参数必须不同(或者是参数的个数不同,或者是参数类型不同)。3.3返回类型不能作为方法重载的条件。public Topic()public Topic(String title,String Content,String piblishTime)this.setTitle(title);this.setContent(Content);this.setPiblishTime(piblishTime);/* * 方法重载 */public Topic(String title,String Content)this.setTitle(title);this.setContent(Content);3.4构造方法重载是方法重载的一个典型特例,可以通过重载构造方法来表达对象的多 种初始化行为!3、 java访问权限修饰符修饰符同一个类中同一个包中子类中全局privateYesdefaultYesYesprotected YesYesYespublicYesYesYesYes继承继承可以有效实现代码重复使用super 关键字1、super 可用于访问父类中定义的属性2、super 可用于调用父类中定义的成员方法3、super 可用于在子类构造器中调用父类的构造器4、super 可用于在子类重写方法中调用父类的被重写方法方法重写:在子类定义一个方法与父类中的一个方法名称相同、返回类型及参数列表相匹配。子类的方法重写了父类的方法。第二节1、 多态:多态是面向对象的核心。1.1、多态是具有表现多种形态的能力的特征。(多态的定义)术语化说法:同一个实现接口,使用不同的实例而执行不同的操作!1.2、如何实现多态:1.21、子类重写父类的方法(AccpJavaTeacher2、AccpDotNetTeacher2都是AccpTeacher 的子类,他 们都重写AccpTeacher类的giveLesson()方法,因此具有不同的方法实现)如代码:public class HQ3 /* * 对教员进行评估,评估内容:自我介绍、授课 */public void judge(AccpTeacher t)roduction();t.giveLesson();public static void main(String args) HQ3 hq3 = new HQ3();hq3.judge(new AccpJavaTeacher2(吴焕标,天河中心);hq3.judge(new AccpDotNetTeacher2(标标,北京中心);hq3.judge(new AccpDBTeacher(ACCP,北京中心);1.22、把父类类型作为参数类型,该父类及其子类对象作为参数传入 所有的子类都可以作为参数传入(这样就避免每个子类类型编写相应的judge()方法)1.23、运行时,根据实际创建的对象类型动态决定使用哪个方法。(一般称为动态绑定)2.0、小结: 多态性与继承、方法重写密切相关,在方法中接收父类类型作为参数,在方法实现中 调用父类的各种方法,当把子类对象作为参数传递给这个方法时,Java虚拟机会根据 实际创建的对象类型。这样不仅可以减少代码的工作量,也能大大提高程序的可维护性和可扩展性。2、 抽象类:1、作为类的修饰符abstract和final,两者不可同时出现在类的声明中,因为final将限制 一个类被继承,而抽象类却必须被继承。2、抽象类不能被实例化3、抽象类中最常见的成员就是抽象方法,一个类中只要有一个abstract抽象方法,这 个类就一定要声明为abstract抽象类。public interface Qc /检查是否过期public abstract void CheckFood(Date date);4、 抽象类中也可以包含供所有子类共享的非抽象的成员变量和成员方法。继承抽象类 的非抽象子类只需要实现其中的抽象方法,对于非抽象方法既可以直接继承,也可 以重写时间强制转换实现:public static void main(String args) SimpleDateFormat sf=new SimpleDateFormat(yyyy/MM/dd);tryFood food=new Food(东北大米,32,又白又好吃!嗯不错!,10,sf.parse(2010/05/04);food.showInfo(); food.CheckFood(sf.parse(2010/08/01);catch(ParseException ex)ex.printStackTrace();2、接口1、接口是用关键字interface来定义的,接口是抽象类的变体。接口中的所有方法都是 抽象的,没有一个有程序体。接口只可以定义public static final成员常量 或public abstract方法(通常省略了public static /final )。2、一个Java类可以实现多个Java接口,这也解决了Java类不支持多重继承带来的弱点。 第三节一、异常处理 不要指望你的程序永远不会出错1.1 Java程序运行过程中所发生的异常事件可分为两类: 1、错误(Error):JVM系统内部错误、资源耗尽等严重情况 、异常(Exception): 其它因编程错误或偶然的外在因素导致的一般性问题,例如:对负数开平方根空指针访问试图读取不存在的文件网络连接中断1.2 常用异常:RuntimeExceptionArithmeticException:数学计算异常NullPointerException:空指针异常NegativeArraySizeException:负数组长度异常ArrayOutOfBoundsException:数组索引越界异常ClassNotFoundException:类文件未找到异常ClassCastException:造型异常IOExceptionFileNotFoundException:文件未找到异常EOFException:读写文件尾异常MalformedURLException:URL格式错误异常SocketException:Socket异常2、 异常(Exception)三大类(try/catch、throws 、throw )2.1 、 利用trycatchTry必须与catch一起使用,一个try可有多个catch,finally是处理一定要处理的语句,数据库关闭最常用(?)或trycatch(?)finally,在异 常处自行处理;如代码: try out=new FileOutputStream(file);System.out.println(正在写入您要输入的文件);out.write(我的实验成果!.getBytes();System.out.println(写入您的文件内容成功! 文件 名:+file.getName()+,+file.getAbsolutePath(); catch (FileNotFoundException e) System.out.println(没找到该文件!); catch (IOException e) System.out.println(写入文件时出错!);finally/关闭文件流try out.close(); catch (IOException e) System.out.println(关闭文件时出错!); 通过throws 抛异常,由调用者来处理异常;(throws跟在方法体后外 写)如代码:/通过throws抛出异常,由调用者处理public int Divide2(int x,int y) throws ExceptionNo = x/y;return No;/由throws抛出异常,调用者处理public static void main(String args) Divide divide = new Divide();divide.Divide1(3,0);try divide.Divide2(3, 0); catch (Exception e) System.out.println(被除数不可以为00!); 通过throw 显示抛异常,在方法体里面,必须与关键字new一起使用;如代码:/通过throw抛出异常,由调用者处理public int Divide3(int x,int y)if(y = 0)try throw new Exception(); catch (Exception e) System.out.println(被除数不可以为000!);elseNo = x/y;return No;3、 文件流流主要分为两种:1、字符流(写入较大文件时用)2、 字节流(主要用于处理一些较小文件)见文件流代码:public class FileWrite public static void main(String args) FileWrite filewrite = new FileWrite();filewrite.WriteFile(); public void WriteFile()/输出流FileOutputStream out = null;/新建文件File file = new File(D:/text.txt);if(file.exists()System.out.println(文件已存在!);elsetry file.createNewFile();System.out.println(文件创建成功!); catch (IOException e) System.out.println(文件创建失败!);/写入文件try out=new FileOutputStream(file);System.out.println(正在写入您要输入的文件);out.write(我的实验成果!.getBytes();System.out.println(写入您的文件内容成功! 文件名:+file.getName()+,+file.getAbsolutePath(); catch (FileNotFoundException e) System.out.println(没找到该文件!); catch (IOException e) System.out.println(写入文件时出错!);finally/关闭文件流try out.close(); catch (IOException e) System.out.println(关闭文件时出错!); 第四节1、 log4j1.1、 Log4j的使用 以上是从原理方面说明Log4j的使用方法,在具体Java编程使用Log4j可以参照以下示例: 1、 建立Logger实例: 语法表示:public static Logger getLogger( String name) 实际使用:static Logger logger = Logger.getLogger(ServerWithLog4j.class.getName () ; 2、 读取配置文件: 获得了Logger的实例之后,接下来将配置Log4j使用环境: 语法表示: BasicConfigurator.configure():自动快速地使用缺省Log4j环境。 PropertyConfigurator.configure(String configFilename):读取使用Java的特性文件编写 的配置文件。 DOMConfigurator.configure(String filename):读取XML形式的配置文件。 实际使用: PropertyConfigurator.configure(ServerWithLperties); 3、 插入日志信息 完成了以上连个步骤以后,下面就可以按日志的不同级别插入到你要记录日志的任何地方了。 语法表示: Logger.debug(Object message);/调试信息 L(Object message);/一般信息 Logger.warn(Object message);/警告信息 Logger.error(Object message);/错误信息 Logger.fatal(Object message);/致命错误信息 实际使用:(ServerSocket before accept: + server); 输出日记如:public int Divide3(int x,int y)if(y = 0)try throw new Exception(); catch (Exception e) Logger longger = Logger.getLogger(this.getClass().getName();BasicConfigurator.configure();longger.warn(被除数不可以为0!);/System.out.println(被除数不可以为000!);elseNo = x/y;return No;二、JDBC1. 通过Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver)方法加载数据库驱动(Database Driver)2. 利用DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=shopping;user=sa;password=sa)方法获得数据库连接(Connection)3. 通过Connection创建Statement,再利用 Statement 执行 SQL 语句4. 查询结果则通过 ResultSet 对象获得结果集5. 最后依次关闭数据库如代码:public static void main(String args) Connection conn = null;Statement stat = null;ResultSet rs = null;try / 1、通过Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver)方法加载数据库驱动(Database Driver)Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);/2利用DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=shopping;use

温馨提示

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

评论

0/150

提交评论