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的主要内容,如果未能解决你的问题,请参考以下文章