1.JavaOOP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.JavaOOP相关的知识,希望对你有一定的参考价值。

1.1抽象和封装

       1.1.1 封装 快键键:alt+shift+s  创建getter、setter进行封装处理

                       实现:①属性私有(private)②创建getter、setter方法

                       好处:方便存取、提高安全性

       1.1.2 构造方法

                     特点:①名字与类名相同②无返回值类型

                     作用:执行初始化操作、为属性赋值

                     注意:系统编译器自带一个无参构造方法,当自己手动创建构造方法时编译器不在提供默认构造方法

                              一般创建一个全参构造方法和一个无参构造方法

       1.1.3 static修饰符

                     作用:修饰属性、方法、代码块

                     注意:①通常把其修饰的属性和方法称为类属性、类方法(不使用的称为实例属性、实例方法)                                 ②静态方法中只能调用静态方法和静态属性、非静态方法可以访问静态成员

                              ③不能与final修饰符一起修饰(final修饰的为常量)

                              ④类变量不能是局部变量

                              ⑤静态方法中不能使用this

1.1.4方法重载

              条件:①必须在同一个类中②方法名相同③参数列表(参数个数和参数类型)不同

              注意:与方法修饰符和返回值无关

1.2继承

       好处:避免代码重复、方便日后的代码修改、利于扩展

       语法:C#(A:B 方法重写使用override)Java(A extends B 不用override可有@override标记表示重写)          方法重写:①方法名相同②参数列表相同③返回值类型相同④访问权限不能高于父类

                       ⑤子类抛出的异常类型小于等于父类

       初始化顺序:父类属性——>父类构造方法——>子类属性——>子类构造方法

       super: 

作用:直接引用父类对象

注意:必须出现在子类中、可以访问父类属性、方法、构造方法

      Super不能访问private成员

       抽象类和抽象方法:

                     关键字:abstract

                     特点:①通过abstract修饰 ②抽象类不能被实例化。但其有构造方法

                              ③抽象类只有方法声明、没有方法实现    

       final修饰符:

                     修饰类,其不能被继承

                     修饰方法,不能被子类重写

                     修饰变量,变成常量(不能修改)

1.3多态

       多态是具有表现多种形态的能力的特征

       好处:减少代码量,提高扩充性

       实现:①子类到父类的转换(父类引用指向一个子类对象)向上转型,自动进行类型转换

                          例:Petpet=new Dog();

②使用父类作为方法形参实现多态

               ③使用父类作为方法返回值实现多态

               ④父类到子类的转换(子类对象的父类引用赋给一个子类的引用)向下转型,进行强制类型转换

                            例:Penguinpen = (Penguin) pet;

       同一类型,用不同对象   ,产生不同结果

1.4接口(interface)

       接口代表一种规范,可以约束类的行为,是一些方法特征的集合

       实现接口使用implements关键字

       好处:利于代码的扩展和维护

               可以被多实现

          设计实现完全分离

           更自然使用多态…

       注意:①接口的命名规则与类相同 ②接口中可以定义常量,不能定义变量

               ③接口中所有方法都是抽象方法④接口不能实例化

               ⑤接口的实现类必须实现接口的全部方法

               ⑥一个接口可以继承多个接口,但接口不能继承类

               ⑦接口中的方法不能用private、static、final修饰

1.5异常(exception)

       指程序运行过程中所发生的不正常的事件

       1.5.1异常处理

              捕获异常 try—catch—finally

                     注意:try不能省略、catch和finally省略但不能同时省略

                             catch只能捕获一个异常(捕获异常由小到大)

                             即使在try和catch中存在return,finally块也会被执行

              声明异常 throws

                     放在方法后

例:publicvoid A() throws Exception{}

              抛出异常 throw    

                     一般放在if()语句中,自行抛出异常

              throws和throw的区别

①   作用不同。throw用于抛出异常,throws用于声明该方法抛出了异常

②   使用的位置不同。

③   内容不同。throw抛出一个异常对象,throws后跟异常类

              异常分类:

技术分享

 

                            

                            Error:程序本身无法恢复的严重错误

Exception:checked异常(必须处理)——SQLExecption、ClassNotFoundExecption、          IOExecption…

       RuntimeException(运行时异常)

       1.5.2 log4j日志

              步骤:①在项目中加入jar文件②创建log4j.properties文件

④   编写log4j.properties文件 ⑤使用log4j记录

              输出级别:fatal>error>warn>info>debug

1.6集合框架

        迭代器:Iterator

        两大类接口:Collection(子接口List、Set)、Map 

              Collection存储一组不唯一、无序的对象

              Set存储一组唯一、无序的对象

              List存储不唯一、有序的对象

                            实现类:①ArrayList

                                   ArrayList与Victor的区别:Victor线程安全、arrayList重速度线程不安全

                                                 长度增长时victor增长1倍,ArrayList增长50%

                                  

方法:add() size() contains()判断列表是否存在该元素 remove()

                                   ②LinkedList

                                                 作用:在插入、删除操作较频繁时,可提高效率

                                                 特殊方法:addFirst()addLast() getFirst() getLast() removeFirst() removeLast()

                                         

Map存储一组键-值对象(key唯一、value不唯一)

       实现类:HashMap(线程不安全、效率高)

              方法:put(key,value)get() remove() size() keySet()返回键集合

                     Values()返回值的集合 containsKey() isEmpey() clear()

                                   HashMap和HashTable区别

                                  

技术分享

 

 

                                   HashTable线程安全、HashMap线程不安全

          Iterator迭代器:

                            hasNext()是否存在另一个可访问的元素

                            next()访问下一个元素

       泛型集合:使用<> 指定集合的元素类型避免发生类型异常

1.7 JDBC

       Java数据库连接技术的简称

       1.7.1组成要素:

                     JDBC API、JDBCDriverManager、JDBC驱动

       1.7.2 JDBC API

              DriverManager类 管理jdbc驱动

              Connection接口Statement接口

ResultSet接口

              PrepareStatement接口con.prepareStatement(sql)

       1.7.3JDBC访问数据库步骤

              ①加载JDBC驱动 Class.forName(); com.microoft.sqlserver.jdbv.SQLServerDriver

②建立数据库连接 Connection con = DriveManager.getConnection(url,username,pwd);

       url:jdbc:sqlserver://localhost:1433;DataBaseName=?

              ③发送sql语句 并得到返回结果

                     Statement stmt =con.createStatement();

                     ResultSet rs=stmt.executeQuery(sql);

④   处理返回结果

While(rs.next()){int id=rs.getInt(“id”);}      

1.8数据访问层

       1.8.1持久化:是将程序中的数据在瞬时状态和持久状态间转换的机制(例如JDBC)

       1.8.2DAO:数据存取对象 位于业务逻辑和持久化数据之间实现对持久化数据的访问

               DAO模式组成:Dao接口、Dao实现类、实体类、数据库连接和关闭类

       1.8.3分层开发

              优势:①每一层专注于自己功能的实现,便于提高质量

                      ②便于分工协作、提高效率

③   便于代码复用

④   便于程序扩展

              实体类的特征:

①   使用private

②   根据业务需求提供getter/setter方法

③   提供无参构造方法和相应的有参构造方法

….

1.9File/IO

       1.9.1File类的常用方法

              exists() isFIle() isDirectory()getPath()获取相对路径名 getAbsolutePath()获取绝对路径名

              getName() delete() createNewFile()length()

       1.9.2流

              接受和发送数据的通道

              按流的流向划分:输出流(OutputStream和Writer)、输入流(InputStream和Reader)

              处理数据单元划分:字节流(InputStream和OutputStream)、字符流(Writer和Reader)

              InputStream 、Reader方法:read() close()available()                     OutputStream 、Writer方法:write() close()

      

 

技术分享

 


以上是关于1.JavaOOP的主要内容,如果未能解决你的问题,请参考以下文章