一.基本概念
类: 将一些具有相似属性和共同方法的事物抽象为一个类,以便于对事物进行描述.(足球,篮球,排球可以抽象为一个类 球 )
对象:一个类的具体实例.(球的一个具体事物,足球)
继承: 子类拥有父类的属性和方法,而且可以额外添加独有的属性和方法.(字体中的宋体,楷体都是继承至字体类)
组合: 一个类可以是其他类组合而成.(电脑是有CPU,显示屏,键盘等组成)
多态性: 同一种方法,每个类都有自己的实现.
消息传递:通过调用对象的方法,向对象传递消息.
二.Java 中的类定义
类:
使用 class 可以定义普通的类,从而封装一些共有的属性和方法.
抽象类:
使用 abstract 修饰符 可以定义抽象类,使用抽象类可以只定义方法体,而不提供具体的实现.抽象类不能用于创建实例.对于形状类来说,都是可以计算面积的,而每一种具体的图形,例如矩形,圆形等,计算面积的具体方法是不一样的.在应用中为了计算所有图形的面积,我们就可以通过调用它们的抽象父类计算面积的方法来实现.而不必知道它到底是何种图形.
抽象类体现的是一种模板式设计思想.
接口:
使用 interface 可以定义接口.通常接口定义类一些共同的操作规范和属性定义.它相当于系统和外界交互的窗口.
接口体现的是一种规范.
抽象类和接口都可以实现类的复用.通过”面向接口”的设计理念来降低程序的耦合.
枚举类:
使用 enum 修饰符可以创建枚举类.某些情况下,类的对象是有限的和固定的,如季节,星期,月份等.
使用枚举可以使程序更加健壮,避免创建无意义对象.
三.Java 基础类库
Scanner
封装了大量的操作以简化获取键盘输入
System
提供了代表标准输入,标准输出和错误输出的变量,可以访问系统环境变量,系统属性,加载文件和动态链接库
Runtime
代表了java的运行时环境,可以访问JVM的相关信息,例如处理器数量,内存信息等.
Object
它是java中所有类,数组的父类,所有的对象都可以向上转型为Object.Object实现的clone()方法可以用来获取对象的副本.但是这种克隆是一种”浅克隆”,它仅是克隆对象的所有成员变量值,不会对引用类型的成员变量值所引用的对象进行克隆.
Objects
工具类.这个类包含操作对象的静态实用方法。这些工具包括检验空值或计算对象的哈希码,返回一个字符串对象,比较两个对象。
String StringBuffer StringBuilder
String 是一个不可变类,一旦对象被创建它的字符序列就不可改变直到对象被销毁.它封装了许多对字符串操作的方法,例如比较,查找,连接,大小写转换,基本的正则操作等.可以通过多种方式构建字符串对象.
StringBuffer和StringBuilder的功能基本相似,都可以创建可变的字符串,而tringBuffer是线程安全的,因此在不考虑线程安全情况下,StringBuilder拥有更高的性能.
Math
提供了大量的静态方法用于复杂的数学运算.包括随机数,常量E和PI,三角函数,对数,指数运算等.
Random 和ThreadLocalRandom(1.7)
提供了多种产生随机数的方法.ThreadLocalRandom是Random的并发版.
BigDecimal 和BigInteger
高精度的浮点数运算和大整数的运算
Date和Calendar
早期的日期操作类.Date中的大部分操作都已过时.Calendar含有对日期的丰富操作
Arrays
数组操作的便捷工具类,包括排序,填充,搜索,复制比较,输出
Time包
java8新增的日期/时间处理包.包括:
Clock:获取指定地区的日期和时间.
LocalDate:不带时区的日期,可以对日期增加减少.
LocalTime:不带时区的时间,可以对时间增加减少.
MonthDay:仅用于操作月日
YearMonth:仅用于操作年月
Month:月份类,1-12月
DayOfWeek :代表星期日-星期六的枚举
ZonedDateTime: 代表一个时区化的日期,时间;
ZoneId: 代表时区
time包下的DateTimeFormatter :强大的日期时间格式化类
正则表达式操作类Pattern和Matcher
预先将正则表达式字符串转化为Pattern,然后创建Matcher对象匹配字符串内容,所有信息和状态都保存在Matcher中.详细信息查看API文档.
Properties
该类封装了读取键值对属性文件的便捷方法
国际化支持
java程序的国际化主要由以下三个类完成:
1.java.util.ResourceBundle:用于加载国家,语言资源包
2.java.util.Locale:用于封装特定国家/地区,语言环境
3.java.util.MessageFormat:用于格式化带占位符的字符串.
必须要提供资源文件,一般是.properties文件存储键值对标识界面显示字符串.