oop总结

第一章  抽象和封装
一.构造方法
1.特点:构造方法的名称和类名相同,没有返回值类型。
2.主要作用:在创建对象时执行一些初始化操作。
3.成员方法和构造方法都可以进行重载。
4.方法重载的判断依据:
                                     a. 必须在同一个类里。
                                     b.  方法名相同。
                                     c.  参数列表不同。
                                     d.  与方法返回值和访问修饰符无关。
5.在使用this调用自身的其它构造方法时,只能最为第一条语句。
6.static和非static修饰的区别(从属性、方法、调用方式和归属方面规划):
 
static、非private修饰 非static、private修饰
属性 类属性、类变量 实例属性、实例变量
方法 类方法 实例方法


调用方式 类命.属性 对象.属性
类命.方法()
对象.属性
对象.方法() 对象.方法()




归属 单个对象
二.封装
1.具体步骤:
                    a.修改属性的可见性。
                    b.为每个属性创建一对get和set方法。
                    c.在set方法中,加入对属性的存取控制语句。
2.使用封装的好处:隐藏类的实现细节;只能通过程序规定的方法来访问数据;可以方便的加入存取控制语句。
 第二章  继承
一.继承
1.语法:
           修饰符  子类  extends  父类 {
                        //类定义部分
           }
2.不能被继承的父类成员:
                                        a.private成员
                                        b.子类与父类不在同包,使用默认访问权限的成员
                                        c.构造方法
二.重写
1.方法重写规则:
                         a.方法名相同
                         b.参数列表相同
                         c.返回值类型相同
2.子类中调用父类的被重写的方法通过“super.方法名”实现。
                          a.super必须出现在子类里
                          b.可以访问父类成员
                          c.注意访问权限的限制,如super不能访问private
3.继承条件下构造方法的调用规则:
                                                      a.子类中的构造方法没有用super调用父类的有参构造方法,也没有用this调用自身的其他构造方法,系统默认调用父类的无参构造方法。
                                                      b.子类的构造方法中通过super调用父类的有参构造方法,则执行父类相应的构造方法,而不是无参构造方法。
                                                      c.子类的构造方法中用this调用自身的其它构造方法,应用上两条。
                                                      d.如果存在多继承,一直执行到无参构造方法。
4.this和super的使用:
                                a.构造方法中的this和super只能是第一条语句
                                b.一个构造方法中不能同时使用this和super调用构造方法
                                c.类方法中不能有this和super关键字
                                d.实例方法中,this和super语句不要求是第一句,可以共存
三.抽象类
1.抽象类和抽象方法的特点:
                                           a.抽象类和抽象方法都通过abstract修饰
                                           b.抽象类不能实例化
                                           c.抽象方法只有方法声明,没有方法实现。有抽象方法的类必须声明为抽象类。子类必须重写所有的抽象方法才能实例化,否则子类还是一个抽象类。
2.abstract可以用来修饰类和方法,但不能修饰属性和构造方法。
3.final修饰符:
                      a.用final修饰的类不能再被继承
                      b.用final修饰的方法不能被子类重写
                      c.用final修饰的变量将变成常量,只能赋值一次
                      d.final可以用来修饰属性、方法和类,不能修饰构造方法
第三章  多态


1.概念:多态是具有表现多种形态的能力的特征。更专业的说法:同一个实现接口使用不同的实例而执行不同的操作。
2.实现方法:一种是使用父类作为方法形参实现多态;另一种是使用父类作为方法返回值实现多态。
3.实现多态的条件:
                               a.继承的存在(继承是多态的基础,没有继承就没有多态)。
                               b.子类重写父类的方法(多态下调用子类重写后的方法)。
                               c.父类引用变量指向子类对象(子类到父类的类型转换)。
4.使用多态的好处:可以减少类中的代码量,提高代码的可扩展性和可维护性。
5.把子类转换为父类成为向上转型,自动进行类型转换。把父类转换为子类称为向下转型,必须进行强制类型转换。
         a.向上转型后通过父类引用变量调用的方法是子类覆盖或继承父类的方法,通过父类应用变量无法调用子类特有的方法。
         b.向下转型后可以访问子类特有的方法,必须转换为父类指向的真实子类类型,否则将出现类型转换异常。
6.instanceof运算符用于判断一个对象是否属于一个类或实现了一个接口。
7.instanceof运算符通常和强制类型转换结合使用,先通过instanceof进行类型判断,在进行相应的强制类型转换。
第四章 接口4
1.接口的定义语法:
                                【修饰符】interface 接口名 extends 父接口1,父接口2,……{
                                                 //常量定义
                                                 //方法定义
                                   }
2.类实现接口语法:
                              class 类名 extends 父类名 implements 接口1,接口2,……{
                                           //类成员
                               }
3.接口可以定义常量,不能定义变量;接口中所有方法都是抽象方法;接口不能实例化,接口中不能有构造方法;接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类;接口的实现类必须实现接口的所有方法,否则必须定义为抽象类。
4.接口表是一种能力,也表示一种约定。
5.C#定义接口的语法:
                                     【修饰符】 interface 接口名:父接口1,父接口2,……{
                                                    属性定义
                                                    方法定义
                                       }
                                    


                                        class 类名:父类名,接口1,接口2,……{       }
说明:
接口之间可以通过冒号来实现继承,一个接口可以继承多个接口,但接口不能继承类。类只能继承一个父类,但可以实现多个接口,使用冒号来继承类并实现接口。
接口定义零个或多个成员,成员主要是方法、属性和索引器。接口不能包含常量、变量或构造方法,也不能包含任何静态成员。
接口中访问权限是public,定义接口是显示指定任何修饰符是非法的。
6.在Java和C#语言中,接口具有以下区别:
Java中接口通过extends来继承接口,类通过implements实现接口。
Java接口中的成员变量都是常量,自动用public static final修饰;C#中不允许存在成员变量,但是可以有属性。
Java接口中属性和方法都可以使用public修饰;C#中默认public,但不可以显示使用public修饰。
Java接口中可以定义静态常量和方法,C#中不可以包含任何静态常量。
7.抽象类利于代码复用不能,接口利于代码维护。
8.通过面向接口编程,,可以降低代码间的耦合性,提高代码的可扩展性和可维护性。
第六章 异常
1.异常概念:异常就是在程序运行的过程中所放生的不正常事件。
2.异常处理:异常处理机制就是在程序中预先设置好对付异常处理的办法。
3.异常处理的关键字:try、catch、finally、throw和throws。
4.异常处理执行顺序:try--catch--finally
5在.try-catch块中加入finally块,无论是否发生异常,finally块中的代码总被执行。
6.finally块中语句不被执行的唯一情况:system.exit(1)
7.在使用多重catch块时,排列顺序是子类到父类。
8.Java中通过throw抛出异常;用throws声明某个方法抛出的异常,可声明多个,中间用逗号隔开。、
9.throw和throws的区别:
(1)作用不同:throw用于抛出异常,throws用于声明异常。
(2)使用的位置不同:throw位于方法体内部,可以作为单独语句使用;throws必须跟在方法参数列表的后面,不能单独使用。
(3)内容不同:throw只能抛出一个异常对象;throws后可跟多个异常类。
第七章集合框架
一.集合框架
1.概述:集合框架是为表示和操作集合而规定的一种统一的标准体系结构。
2.三大内容:对外的接口、接口的实现和对集合运算的算法。
3.使用集合框架的好处:集合弥补了数组的缺陷,它比数组更灵活更实用,可大大提高软件的开发效率,而且不同的集合可适用于不同场合。
4.Java的集合框架中有两大类接口,Collection和Map。Collection有List和Set两个子接口。各接口区别:
         Collection接口存储一组不唯一、无序的对象。
         Set接口继承Collection接口,存储一组唯一、无序的对象。
         List接口继承Collection接口,存储一组不唯一、有序的对象。
         Map接口存储一组成对的键值对象,提供key到value的映射。key不要求有序,不允许重复。value同样不需要有序,但允许重复。
二.接口
1.ArrayList和数组采用相同的存储方式,优点在于遍历元素和随机访问元素的效率比较高。LinkedList采用链表存储方式,优点在于插入、删除时效率比较高。
2.HashMap是最常见的Map实现类,它的存储方式是哈希表,优点是查询指定元素效率高。
三.迭代器
Iteraor为集合而生,专门实现集合的遍历。它隐藏了各种集合实现类的内部细节,提供了遍历集合的统一编程接口。
四.泛型集合.
使用泛型集合在创建集合对象时指定集合中元素的类型,再从集合中取出元素时无需进行类型强制转换,避免了ClassCastException异常。
五.Java中共有8个包装类:Byte 、Short、Integer、Long、Floa、tDouble、Boolean、Character
数组和集合的主要区别:
1.数组可以存储基本数据类型和对象,而集合中只能存储对象。
2.数组长度固定,集合长度可动态改变。
3.定义数组时必须指定数组元素类型,集合默认其中所有元素都是object。
4.length用来获取数组长度,size()用来直接获取集合存储的元素个数。
5.集合有多种实现方式和不同的使用场合,数组仅用于分配连续区间。
6.集合以接口和类的形式存在,具有封装、继承和多态等类的特性,通过简单的方法和属性调用即可实现各种复杂操作,大大提高了软件的开发效率。、
第七章 JDBC
一.JDBC访问数据常用类和接口
1.DriverManager:管理JDBC驱动
2.Connection:连接数据库并传送数据
3.Statement:负责执行SQL语句
4.ResultSet:负责保存Statement执行后所产生的查询结果
二.JDBC访问数据库的步骤
1.加载JDBC驱动
2.与数据库建立连接
3.创建Statement或PreparedStatement对象
4.发送SQL语句,并得到返回结果
5.处理返回结果
6.释放资源
三.注意事项
1.遍历结果集中数据可使用列号或列名表示列。
2.PreparedStatement比Statement提高了代码的安全性、可读性和可维护性。
第九章 数据访问层
一.持久化:是将程序中的数据在瞬间状态和持久状态间转换的机制。
二.主要持久化操作:保存 、删除、修改 、读取 、查找  
三.DAO:DataAccessObjects,数据存储对象
                     指位于业务逻辑和持久化数据之间实现对持久化数据的访问。
四.DAO模式的优势:
                   1.隔离了数据访问代码和业务逻辑代码
                   2.隔离了不同数据库的实现
五.DAO模式主要有以下几部分组成:
            1.DAO接口:把对数据库的所有操作定义成抽象方法,可以提供多种实现
            2.DAO实现类:针对不同数据库给出的DAO接口定义方法的具体实现
            3.实体类:用于存放与传输对象数据
            4.数据库连接和关闭工具类:避免了数据库连接和关闭代码的重复使用,方便修改。
六.分层的特点:
             1.每一层都有自己的职责
             2.上一层不用关心下一层的实现细节,上一层通过下一层提供的对外接口来使用其功能
             3.上一层调用下一层的功能,下一层不能调用上一层功能
七.分层开发的好处:
              1.各层专注于自己功能的实现,便于提高质量
              2.便于分工协作,提高开发效率
              3.便于代码复用
              4.便于程序扩展
第十章 Filo/O
1.File类用于访问文件或目录的属性
2.流是指一连串流动的字符,是以先进先出的方式发送信息的通道。程序和数据源之间是通过流联系起来的。
   数据源分为源数据源和目标数据源,输入流联系的是源数据源,输出流联系的是目标数据源。
3.流可以分为输入流和输出流,也可以分为字节流和字符流。
   输出流主要由OutputStream和Writer作为基类;输入流主要由InputStream和Reader作为基类。
4.FileInputStream和FileOutputStream以字节流的方式读写文本文件。
5.BufferedReader和BufferedWriter以字符流的方式读写文件,效率更高。
6.DataInputStream和DataOutputStream可用于读写二进制。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值