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()

时间: 2024-10-06 00:12:09

1.JavaOOP的相关文章

JavaOOP 试题

1) 以下属于OOP的特征有().   a)继承   b)封装   c)多态   d)隐藏   2) JavaOOP中的多态包括()   a) 方法重写 b) 方法重载   c) 方法隐藏 d) 以上都不对   3) Java中的访问修饰符包括( ).   a) Public b) private   c) protected d) internal   4) Java中用于实现继承的关键字是.   a) Extends b) implements   c) : d) base        

JavaOOP之基础概念

JavaOOP之基础概念 学习java的基础语法后就懂了java程序的常用程序逻辑,能够解决了简单的常用的问题.就像是建造城市一样,学会基础只能够建造一个村庄学会了面向对象就能造出城市. 相对于早年的面向过程方式,面向对象的稳定性.可扩展性和可重用性有着不可比拟的优势. 后面将学习如何使用java语言实现面向对象的三大特征:封装.继承.多态. 什么是对象 万物皆对象,客观存在的事物. 用来描述客观事物的一个实体,由一组属性和方法构成. 什么是面向对象 面向对象,字面意思就是对象面对面,关注对象.

java-oop 堆栈

1  head和stack有什么区别 栈(stack) 和堆(head)都是在内存中存放数据的地方,二者的区别在于: 1 栈存放基本类型变量和对象应用,当超过作用域后释放,堆存放new出来额对象和数组: 2 堆可以动态的分配内存的大小,神存期也不必先告诉编译器:java的垃圾回收器会自动回收这些没有用的数据,而存在栈中的数据大小和生存期必须是确定的,缺乏灵活性.栈的存取速度比堆要快,仅次于直接位于cpu的寄存器.堆由于要在运行时动态分配内存,存取速度慢: 3  栈数据可以共享,如字面量3  等

JavaOOP笔记

1.面向过程的结构化程序设计 结构化程序的弊端: 1.缺乏对数据的封装 2.数据和方法(对数据的操作)的分离 2.什么是抽象数据类型 所谓的抽象数据类型可以理解为:将不同的数据的集合组成一个整体用来描述一个新的事物. 3.什么是类 类定义了一种抽象类型 类不但定义了抽象类型的组成(成员变量),同时还定义了可以对该类型实施的操作(方法). 4.定义成员变量 对象创建以后,其成员变量可以按照默认的方式初始化 初始化成员变量时,其默认值的规则如下表所示: 成员变量类型 默认初始化 byte short

JavaOOP基础理论知识

上册:java面相对象语法,理论性为主: 1.对象:就是"东西",世界万物都是对象:(对象因关注而产生) 2.类:将对象中,具有相同属性和行为的对象集合在一起:(类是用来定义的<>就是个模版,模具:)(抽类) 3.方法:类中对象共有的行为:(比如:人类,都要吃饭,走路)(动作,能做什么) 3.1.方法组成:修饰符,返回值,方法名,参数,方法体: 3.2.抽象方法:无方法体的方法(必须由abstract修饰)(然后,类也必须由abstract修饰) 3.3.构造方法: 3.3

javaoop初级入门继承和封装和接口和多态和抽象类

1.   所谓 继承 就是 把class 类里面的一些 属性和方法  加一个  private 的前缀, 比如   public class student { private int age; private  void getScore(){} // 然后 提供 几个 普通的 方法 来 给 私有变量  赋值 public void setAge(int  a){ this.age=a; } } >>>>>>>>>>>>>&g

java-oop集合与泛型

>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> 1.所谓 集合就是 把一系列的储存数据 方法和 接口和类封装 放在一起, 以方便人们的使用, 1.  List有序的----(ArrayList随机访问)+(Linkedlist快速插入元素)+                                

Javaoop选择题总结

解析:使用流,是为了简化数据的读写操作,让程序员能专注在有效合理的数据处理上,而不是底层的数据写入对应的物理地址,磁盘驱动器的状态等等方面.所以,此答案为B 解析:参看Java Doc,在List接口的说明中,实现其的子类有Stack.Vector.LinkedLisk.ArrayList.Set不是其子类,而是与其并行的接口(同一个父接口Collection).正确答案B 解析:本题考查HashMap类的特性.HashMap类是基于哈希表的 Map 接口的实现.它提供所有可选的映射操作,并允许

javaoop从 封装到继承

1.java 有三大特性:继承,封装 ,多态 >>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1.1封装: private 加上之后就是 私有化了, 需要提供 相应 的 set和get方法, 给其中的 属性赋值 就是  :s1.setName("马云"); 取值就是: s1.getName(); >