使用java实现面向对象编程总结

  • 格式:doc
  • 大小:166.00 KB
  • 文档页数:15

第1章抽象和封装一、类是对象的抽象,对象是类的实例二、使用面向对象进行设计面向对象设计的过程就是抽象的过程,分三步来完成:1.找出它的种类2.找出它的属性3.找出它的行为三、类名、属性名、方法名以及常量名的命名规则:1.类名由一个或几个单词组成,每个单词的第一个字母大写,如Dog、StringBuffer2.属性名和方法名由一个或几个单词组成,第一个单词首字母小写,其他单词首字母大写,例如health,stuName,println(),getMessage()。

3.常量名由一个或几个单词组成,所有字母大写,如PI,SEX_MALE四、静态常量1.static可以用来修饰属性、方法和代码块2.static修饰的属性和方法称为类属性(类变量)、类方法3.不使用static修饰的属性和方法,属于单个对象,通常称为实例属性(实例变量)、实例方法4.static修饰的变量和方法可以通过类名和对象名访问,而不用static修饰的变量和方法只能通过对象名访问5.final可以用来修饰属性、方法和类6.用final修饰的变量成为常量,其值固定不变五、构造方法1.构造方法是一个特殊的方法,它用于创建类的对象,因此一个类必须包含至少一个构造方法,否则就无法创建对象。

2.构造方法的名字和类名相同,没有返回值类型。

3.构造方法的作用主要就是在创建对象时执行一些初始化操作,如给成员属性赋初值。

六、方法重载的判断依据1.必须是在同一个类里。

2.方法名相同3.方法参数个数或参数类型不同。

4.与方法返回值和方法修饰符没有任何关系。

七、封装1.封装(Encapsulation):是类的三大属性之一,就是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

2.封装的具体步骤:1—修改属性的可见性来限制对属性的访问,2—为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的存取。

3—在赋值方法中,加入对属性的存取控制语句。

3.封装的好处:隐藏类的实现细节;让使用者只能通过程序员规定的方法来访问数据;可以方便地加入存取控制语句,限制不合理操作。

八、This的使用因为this是在对象内部指代自身的引用,所以this只能调用实例变量、实例方法和构造方法this不能调用类变量和类方法。

this也不能调用局部变量。

第二章继承一、使用继承1.编写父类Class Pet {//公共的属性和方法}2.编写子类,继承父类Class Dog extends Pet {//子类特有的属性和方法}Class Penguin extends Pet {}二、理解继承1.子类访问父类成员使用super关键字访问父类属性; (super代表父类对象)2 ) 访问父类方法Super.print();2.有些父类成员不能继承1)private成员2)子类与父类不在同包,使用默认访问权限的成员3)构造方法3.访问修饰符protected1)可以修饰属性和方法2)本类、同包、子类可以访问4.符合is-a关系的设计使用继承5.Java中,继承(Inheritance)通过extends关键字来实现,其中SubClass称为子类,SuperClass 称为父类、基类或超类。

6.在子类中可以根据需求对从父类继承的方法进行重新编写,称为方法的重写或方法的覆盖。

方法的重写满足的要求:7构造方法不能被继承因此不能被重写。

8.在子类中调用父类的构造方法?Super();Super(参数表);9.super代表对当前对象的直接父类对象的默认引用。

在子类中可以通过super关键字来访问父类的成员。

Super的要求10.继承条件下构造方法的调用规则:11.使用this和super注意事项:12.抽象类和抽象方法都通过abstract关键字来修饰。

13.abstract也可以用于方法——抽象方法1)抽象方法没有方法体2)抽象方法必须在抽象类里。

3)抽象方法必须在子类中被实现,除非子类是抽象类。

Public abstract void print();——没有方法体14.final修饰符1)用final修饰的类,不能再被继承2)用final修饰的方法,不能被子类重写3)用final修饰的变量(包括成员变量和局部变量)将变成常量,只能赋值一次。

注意:P5715.abstract是否可以和private、static、final共用第三章多态一:1.个引用类型,使用不同的实例而执行不同操作。

(父类引用子类对象)使用多态的好处:通过多态可以减少类中的代码量,可以提高代码的可扩展性和可维护性。

2. 实现思路编写父类编写子类,子类重写父类方法运行时,使用父类的类型,子类的对象。

三:实现多态的两个要素1. 重写使用父类类型方法重写的规则在继承关系的子类中重写的方法名、参数、返回值类型必须与父类相同私有方法不嫩计策因而也无法重写。

2.Instanceof运算符语法:instanceof 类或接口该运算用来判断一个对象是否属于一个类或者实现了一个接口。

结果为true或false。

子类转换成父类时的规则:子类到父类的转换(向上转换)父类到子类的转化(向下转换)第四章接口一、接口可以看作是一种特殊的“抽象类”。

二、接口有比抽象类更好的特性1.可以被多继承2.设计和实现完全分离3.更自然的使用多态三、接口语法public interface Myinterface{public void foo(){//其他方法}说明P99-100使用接口:编写接口,实现接口,使用接口四、接口特性1.接口不可以被实例化2.实现类必须实现接口的所有方法3.实现类可以实现多个接口4.接口中的变量都是常量五、接口表示一种约定:体现在接口名称和注释上(有些接口只有名称,方法的实现方式要通过注释来约定)面向接口编程:程序设计时面向接口的约定而不考虑具体实现。

六、接口是一种能力:体现在接口的方法上面向接口编程:关心实现类有何能力,而不关心实现细节。

七、C#中的接口[修饰符] interface 接口名: 父接口1,父接口2, ……{属性定义方法定义}class 类名: 父类名,接口1,接口2, ……{}八、语法对比(Java&C#)第六章异常一:定义:异常是在程序的运行过程中所发生的不正常的事件,他会中断正在运行的程序二:异常处理关键字:try catch finally throw throwsTry:把可能出现异常的代码放入try中Catch:捕捉异常Finally:无论是否有异常,都会执行的代码Throw:总是出现在方法体Throws:总是出现在方法的声明中,用了表明改方法可能抛出的各种异常三:常见的异常Exception:异常层次结构的根类ArithmeticException:算数错误的情形,ArrayIndexOutOfBoundsException:数组大于或小于实际数组的大小NullPointerException:尝试访问null对象成员ClassNotFoundException:欲得到数据类型与实际输入类型不匹配IllegalArgumentException:方法接受到的非法参数四:log4i记录日子文件信息日志文件具有输出优先级:从低到高: debug info warn errorJava语言的基本数据类型和包装类访问修符的可访问性第七章集合框架一:接口:即表示集合的抽象数据类型。

实现:即集合框架中接口的实现。

算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、排序等。

Collection 接口存储一组不唯一,无序的对象List 接口存储一组不唯一,有序(插入顺序)的对象Set 接口存储一组唯一,无序的对象Map接口存储一组键值对象,提供key到value的映射二、实现List接口的常用类有ArrayList和LinkedList。

它们都可以容纳所有类型的对象,包括Null,允许重复,并且都保证元素的存储顺序。

ArrayList实现了长度可变的数组,在内存中分配连续的空间。

遍历元素和随机访问元素的效率比较高LinkedList采用链表存储方式。

插入、删除元素时效率比较高Vector和ArrayList的异同P185MapHashtable和HashMap的异同P190三、迭代器Iterator所有集合接口和类都没有提供相应遍历方法,而是由Iterator实现集合遍历Collection 接口的iterate()方法返回一个Iterator,然后通过Iterator接口的两个方法可实现遍历1.boolean hasNext(): 判断是否存在另一个可访问的元素2.Object next(): 返回要访问的下一个元素四、泛型集合把任何类型对象通过add(Object obj) 放入List中,认为只是Object类型通过get(int index) 取出List中元素时必须进行强制类型转换,繁琐而且容易出现异常使用Map的put(Object key, Object value)和get (Object key)存取对象时存在同样问题使用Iterator的next()方法获取元素时存在同样问题第八章JDBC一、JDBC(Java DataBase Connectivity)是Java数据库连接技术的简称,提供连接各种常用数据库的能力二、工作原理提供者:Sun公司内容:供程序员调用的接口与类,集成在java.sql和javax.sql包中,如:DriverManager类:依据数据库的不同,管理JDBC驱动Connection接口:负责连接数据库并担任传送数据的任务Statement接口:由Connection 产生、负责执行SQL语句ResultSet接口:负责保存Statement执行后所产生的查询结果DriverManager提供者:Sun公司作用:管理各种不同的JDBC驱动JDBC 驱动提供者:数据库厂商作用:负责连接各种不同的数据库三、JDBC访问数据库的步骤加载JDBC驱动与数据库建立连接发送SQL语句,并得到返回结果处理返回结果释放资源四、JDBC的驱动JDBC驱动由数据库厂商提供在个人开发与测试中,可以使用JDBC-ODBC桥连方式在生产型开发中,推荐使用纯Java驱动方式使用JDBC-ODBC桥方式连接数据库将对JDBC API的调用,转换为对另一组数据库连接API的调用优点:可以访问所有ODBC可以访问的数据库缺点:执行效率低、功能不够强大使用纯Java方式连接数据库由JDBC驱动直接访问数据库优点:100% Java,快又可跨平台缺点:访问不同的数据库需要下载专用的JDBC驱动五、Statement接口和ResultSet借口Statemen对象用将SQL语句发送到数据库中,或者理解为执行SQL语句Statament常用方法方法名说明ResultSet executeQuery(String sql) 执行SQL查询并获取到ResultSet对象int executeUpdate(String sql) 可以执行插入、删除、更新等操作,返回值是执行该操作所影响的行数boolean execute(String sql) 可以执行任意SQL语句,然后获得一个布尔值,表示是否返回ResultSetResultSet可以理解为由所查询结果组成的一个二维表,每行代表一个记录,每列代表一个字段,并存在一个光标,光标所指行为当前行,只能对结果集的当前行数据进行操作。