目录
java(六)什么是面向对象——(七)常用的类和包
面向对象
6.1面向对象和面向过程的区别
- 作为面向对象的思维说,当拿到一个问题时,分析问题不是第一步做什么,第二步做什么,这是面向过程的思维。
- 面向对象的思维应该是:第一,这个问题有哪些类和对象;第二,这些类和对象应该具有那些属性和方法;第三,类与类之间应该具有什么关系。
- 面向对象的一个非常重要的思维是合适的方法应该出现在合适的类里面。
为什么要面向对象编程
做软件追求的是可重用性、可扩展性。面向过程的方法编程的方法和属性是分开的,代码复用较麻烦,复用的层次停留在方法这个层面上。但是面向对象的编程会将方法和属性综合在一起。综合在一起复用是将整个对象进行复用。所以面向对象比面向过程更容易实现可重用性。
6.2常用的类和包
1. java.lang
java的核心功能包,只要包括和语言相关的类,提供基本数据类型处理,基本数值函数,字符串的处理,线程和异常的处理。该包是由解释程序自动加载,不需要显示导入。
2.java.io
提供和输入输出相关的类,用于不同设备对数据的输入和输出处理。
IO常用的接口
java.io.Serializable实现序列化
IO常用的类
2.1 java.io.BufferedInputStream 缓冲输入流
构造方法:
-
BufferedInputStream(InputStream in)创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用
-
BufferedInputStream(InputStream in, int size)创建具有指定缓冲区大小的BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
-
int read()
从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1
int read(byte[] b, int off, int len)
此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中
void close()
关闭此输入流并释放与该流关联的所有系统资源。
2.2 BufferedOutputStream该类实现缓冲的输出流。
通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统
构造方法:
-
BufferedOutputStream(OutputStream out)创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
-
BufferedOutputStream(OutputStream out, int size)创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流
-
void flush()
刷新此缓冲的输出流。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off开始的 len个字节写入此缓冲的输出流。
void write(int b)
将指定的字节写入此缓冲的输出流。
2.3 BufferedWriter文本写入字符输出流
public class BufferedWriter extends Writer
文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入
构造方法:
-
BufferedWriter(Writer out)创建一个使用默认大小输出缓冲区的缓冲字符输出流。
-
BufferedWriter(Writer out, int size) 创建一个使用给定大小输出缓冲区的新缓冲字符输出流。
-
void close()
关闭此流,但要先刷新它。
void flush()
刷新该流的缓冲。
void newLine()
写入一个行分隔符。
void write(char[] cbuf, int off, int len)
写入字符数组的某一部分。
void write(int c)
写入单个字符。
void write(String s, int off, int len)
写入字符串的某一部分。
2.4BufferedReader字符输入流
public class BufferedReader extends Reader
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
构造方法:
-
BufferedReader(Reader in)创建一个使用默认大小输入缓冲区的缓冲字符输入流。
-
BufferedReader(Reader in, int sz)创建一个使用指定大小输入缓冲区的缓冲字符输入流。
- void close()
int read()
int read(char[] cbuf, int off, int len)
String readLine()读取一个文本行。
2.5 DataInputStream数据输入流
public class DataInputStream extends FilterInputStream implements DataInput
数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。DataInputStream 对于多线程访问不一定是安全的。 线程安全是可选的,它由此类方法的使用者负责。
构造方法:
1.DataInputStream(InputStream in)
使用指定的底层 InputStream 创建一个 DataInputStream。
- int read(byte[] b)
从包含的输入流中读取一定数量的字节,并将它们存储到缓冲区数组 b中。
int read(byte[] b, int off, int len)
从包含的输入流中将最多 len个字节读入一个 byte 数组中。
int readInt()
读取四个输入字节并返回一个 int 值
String readUTF()
该方法读取使用 UTF-8 修改版格式编码的 Unicode 字符串的表示形式
2.6DataOutputStream数据输出流
public class DataOutputStream extends FilterOutputStream implements DataOutput
数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。
构造方法:
1.DataOutputStream(OutputStream out)
创建一个新的数据输出流,将数据写入指定基础输出流。
void flush()
清空此数据输出流。
int size()
返回计数器 written的当前值,即到目前为止写入此数据输出流的字节数。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off开始的 len个字节写入基础输出流。
void write(int b)
将指定字节(参数 b的八个低位)写入基础输出流。
2.7 FileInputStream文件输入流
public class FileInputStream extends InputStream
FileInputStream从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。
1.FileInputStream(String name)
通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name指定。
- int read()
从此输入流中读取一个数据字节。
int read(byte[] b)
从此输入流中将最多 b.length个字节的数据读入一个 byte 数组中。
int read(byte[] b, int off, int len)
从此输入流中将最多 len个字节的数据读入一个 byte 数组中。
2.8FileOutputStream文件输出流
public class FileOutputStream extends OutputStream
1.FileOutputStream(String name)
创建一个向具有指定名称的文件中写入数据的输出文件流。
- void write(byte[] b)
将 b.length个字节从指定 byte 数组写入此文件输出流中。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off开始的 len个字节写入此文件输出流。
void write(int b)
将指定字节写入此文件输出流。
2.9File文件类
public class File extends Object implements Serializable, Comparable
处理文件的类
1.File(String pathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File实例。
- boolean delete()
删除此抽象路径名表示的文件或目录。
boolean exists()
测试此抽象路径名表示的文件或目录是否存在。
String getAbsolutePath()
返回此抽象路径名的绝对路径名字符串。
String getName()
返回由此抽象路径名表示的文件或目录的名称。
String getPath()
将此抽象路径名转换为一个路径名字符串。
boolean isDirectory()
测试此抽象路径名表示的文件是否是一个目录。
boolean isFile()
测试此抽象路径名表示的文件是否是一个标准文件。
long length()
返回由此抽象路径名表示的文件的长度
File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
2.10FileReader文件读取(FileWriter类似)
public class FileReader extends InputStreamReader
读取文件
1.FileReader(String fileName)
在给定从中读取数据的文件名的情况下创建一个新 FileReader。
2.从类 java.io.InputStreamReader 继承的方法
close, getEncoding, read, read, ready
从类 java.io.Reader 继承的方法
mark, markSupported, read, read, reset, skip
2.11 FilterInputStream(FilterOutputStream 类似)
public class FilterInputStream extends InputStream
protected FilterInputStream(InputStream in)
int read()
从此输入流中读取下一个数据字节。
int read(byte[] b)
从此输入流中将 byte.length个字节的数据读入一个 byte 数组中。
int read(byte[] b, int off, int len)
从此输入流中将 len个字节的数据读入一个 byte 数组中。
2.12InputStreamReader
public class InputStreamReader extends Reader
是字节流通向字符流的桥梁
1.InputStreamReader(InputStream in)
创建一个使用默认字符集的 InputStreamReader。
2.int read()
读取单个字符。
int read(char[] cbuf, int offset, int length)
将字符读入数组中的某一部分。
2.13 PrintWriter 格式化文本输出流
public class PrintWriter extends Writer
向文本输出流打印对象的格式化表示形式
1.PrintWriter(File file)
使用指定文件创建不具有自动行刷新的新 PrintWriter。
2.print方法
3.java.util
提供一些实用工具,包括集合框架以及遗留的集合类,事件模型,时间和日期实施,随机数生成器和位数等
常用的接口
3.1Collection集合上层接口
public interface Collection extends Iterable
Collection 层次结构 中的根接口。
Collection 表示一组对象,这些对象也称为 collection 的元素。
一些 collection 允许有重复的元素,而另一些则不允许。
一些 collection 是有序的,而另一些则是无序的。
JDK 不提供此接口的任何直接 实现:它提供更具体的子接口
(如 Set 和 List)实现。此接口通常用来传递 collection,
并在需要最大普遍性的地方操作这些 collection
boolean add(E e)
确保此 collection 包含指定的元素(可选操作)。
boolean addAll(Collection<? extends E> c)
将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
void clear()
移除此 collection 中的所有元素(可选操作)。
boolean contains(Object o)
如果此 collection 包含指定的元素,则返回 true。
boolean containsAll(Collection<?> c)
如果此 collection 包含指定 collection 中的所有元素,则返回 true。
boolean equals(Object o)
比较此 collection 与指定对象是否相等。
int hashCode()
返回此 collection 的哈希码值。
boolean isEmpty()
如果此 collection 不包含元素,则返回 true。
Iterator iterator()
返回在此 collection 的元素上进行迭代的迭代器。
boolean remove(Object o)
从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
boolean removeAll(Collection<?> c)
移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。
boolean retainAll(Collection<?> c)
仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
int size()
返回此 collection 中的元素数。
Object[] toArray()
返回包含此 collection 中所有元素的数组。
Iterator迭代器
public interface Iterator
迭代器
boolean hasNext()
如果仍有元素可以迭代,则返回 true。
E next()
返回迭代的下一个元素。
void remove()
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
List集合
public interface List extends Collection
boolean add(E e)
向列表的尾部添加指定的元素(可选操作)。
void add(int index, E element)
在列表的指定位置插入指定元素(可选操作)。
boolean addAll(Collection<? extends E> c)
添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。
boolean addAll(int index, Collection<? extends E> c)
将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。
void clear()
从列表中移除所有元素(可选操作)。
boolean contains(Object o)
如果列表包含指定的元素,则返回 true。
boolean containsAll(Collection<?> c)
如果列表包含指定 collection 的所有元素,则返回 true。
boolean equals(Object o)
比较指定的对象与列表是否相等。
E get(int index)
返回列表中指定位置的元素。
int hashCode()
返回列表的哈希码值。
int indexOf(Object o)
返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
boolean isEmpty()
如果列表不包含元素,则返回 true。
Iterator iterator()
返回按适当顺序在列表的元素上进行迭代的迭代器。
int lastIndexOf(Object o)
返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。
ListIterator listIterator()
返回此列表元素的列表迭代器(按适当顺序)。
ListIterator listIterator(int index)
返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。
E remove(int index)
移除列表中指定位置的元素(可选操作)。
boolean remove(Object o)
从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。
boolean removeAll(Collection<?> c)
从列表中移除指定 collection 中包含的其所有元素(可选操作)。
boolean retainAll(Collection<?> c)
仅在列表中保留指定 collection 中所包含的元素(可选操作)。
E set(int index, E element)
用指定元素替换列表中指定位置的元素(可选操作)。
int size()
返回列表中的元素数。
List subList(int fromIndex, int toIndex)
返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。
Object[] toArray()
返回按适当顺序包含列表中的所有元素的数组(从第一个元素到最后一个元素)。
T[] toArray(T[] a)
返回按适当顺序(从第一个元素到最后一个元素)包含列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。
Map集合
public interface Map<K,V>
void clear()
从此映射中移除所有映射关系(可选操作)。
boolean containsKey(Object key)
如果此映射包含指定键的映射关系,则返回 true。
boolean containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回 true。
Set<Map.Entry<K,V>> entrySet()
返回此映射中包含的映射关系的 Set 视图。
boolean equals(Object o)
比较指定的对象与此映射是否相等。
V get(Object key)
返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
int hashCode()
返回此映射的哈希码值。
boolean isEmpty()
如果此映射未包含键-值映射关系,则返回 true。
Set keySet()
返回此映射中包含的键的 Set 视图。
V put(K key, V value)
将指定的值与此映射中的指定键关联(可选操作)。
void putAll(Map<? extends K,? extends V> m)
从指定映射中将所有映射关系复制到此映射中(可选操作)。
V remove(Object key)
如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
int size()
返回此映射中的键-值映射关系数。
Collection values()
返回此映射中包含的值的 Collection 视图。
Set集合
public interface Set extends Collection
boolean add(E e)
如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。
boolean addAll(Collection<? extends E> c)
如果 set 中没有指定 collection 中的所有元素,则将其添加到此 set 中(可选操作)。
void clear()
移除此 set 中的所有元素(可选操作)。
boolean contains(Object o)
如果 set 包含指定的元素,则返回 true。
boolean containsAll(Collection<?> c)
如果此 set 包含指定 collection 的所有元素,则返回 true。
boolean equals(Object o)
比较指定对象与此 set 的相等性。
int hashCode()
返回 set 的哈希码值。
boolean isEmpty()
如果 set 不包含元素,则返回 true。
Iterator iterator()
返回在此 set 中的元素上进行迭代的迭代器。
boolean remove(Object o)
如果 set 中存在指定的元素,则将其移除(可选操作)。
boolean removeAll(Collection<?> c)
移除 set 中那些包含在指定 collection 中的元素(可选操作)。
boolean retainAll(Collection<?> c)
仅保留 set 中那些包含在指定 collection 中的元素(可选操作)。
int size()
返回 set 中的元素数(其容量)。
Object[] toArray()
返回一个包含 set 中所有元素的数组。
T[] toArray(T[] a)
返回一个包含此 set 中所有元素的数组;返回数组的运行时类型是指定数组的类型。
4.java.net
提供部分与网络应用开发相关的类
5.java.awt和java.swing
该包提供了用于GUI开发相关的窗口组件,布局管理器、监听事件以及用户交互控制的一些类。
6. java.applet
该包提供浏览器中应用程序插件的类,所需要的类可继承Applet并实现相应功能。
7. java.sql
该包提供java和数据源存储数据交互的接口。
8. java.text
该包提供和自然语言无关的方式处理文本,日期,数字和消息的类和接口。
本文所有类容皆来自于网络和书籍整理