1、.点操作符
作用:引用一个类的成员变量或者成员方法
使用:先创建类的实例对象,对象.的方式调用
2、构造函数
给类型不一的成员初始化成员值
构造函数没有返回值
通过new关键字来调用构造函数,并且只能被调用一次。一个对象被初始化以后就不能再调用该对象的构造函数
构造函数不能被继承
有参构造函数会屏蔽默认无参构造函数
3、方法重载和方法复写
重载,同一个类中,参数列表不同,返回值不同
复写(重写),不同类型中,只有方法体不同,子类用@Override标志,表示重写父类方法。
4、信息封装和隐藏
给私有变量设置setter和getter值
5、用类名定义一个变量时,定义的只是一个引用,外面通过这个引用来访问这个类里面的属性和方法。其实,java中 提供了一个内部对象this,永远指向当前对象。在继承关系中,用super访问当前对象的父类。
6、组合和继承
IS-A关系,即一个类需要向另一个类暴露其所有的方法,用继承。
HAS-A关系,用组合,即装饰者模式。
7、java中只支持单继承
8、所有类的父类java.lang.Object
Object类定义和实现了java类都需要的一些通用行为,在多线程和垃圾自动收集中用到。
9、多态性
可替换性:
子类具有父类的所有属性和行为,因此需要使用父类的实例的时候,可以用子类代替。
向上转型和向下转型:
将一个子类的实例赋值给父类的引用称为向上转型,向上转型总是安全的,自动发生的。
将一个父类引用转型为最初类型,称为向下转型。需要强制性转换,不合理的强制转换在编译时不会报错,运行 时才会报错。
10、instanceOf操作符:判断一个一个实例是否真的属于一个类型
anObject instanceof aClass
11、抽象类和接口
含有至少一个抽象方法的类称为抽象类,抽象类不能被实例化。抽象方法必须被子类实现。
接口中的所有方法都是抽象方法,只能有static final类型的数据成员,且不许给出初值。接口中的成员变 量可以在子类中重新赋值。
单继承,可以实现多个接口。
抽象类可以有默认行为,接口不可以有,想要有默认行为的话需要委托。
实现接口必须实现接口中的所有方法,继承抽象类必须继承抽象类中的所有抽象方法。
12、java中定义了21个包,常用的有如下几个:
java.lang
java.util
java.io
java.awt
java.awt.event
java.net
java.applet
java.sql
java.rmi
java.security
13、包的使用(装载自己已编译好的包)
a、在需要引用的类名前加上包名
b、用import引入包中的类
c、用import引用整个包*
java.lang无需显示调入,编译器自动调入。
14、默认继承Object类
15、Object类常用方法:
Object构造方法;
public boolean equals(Object object) //对象比较
public int hashCode() //取得hash码
public String toString() //对象打印时使用
16、==基本类型比较值,引用类型比较是否是同一个对象。
17、Object中的equals方法只用来比较是否是同一个对象,只能比较引用类型。
对于File、String、Data、包装类不需要比较对象,可以进行重写
18、toString()方法默认返回类名和哈希码值的十六进制形式。其他类型数据和String类型进行连接时会自动调用toString()方法
19、static关键字是为了实现对象之间重复属性的数据共享。静态成员变量可以通过类名.直接访问,也可以通过对象.进行访问(非静态函数可以访问静态成员,静态成员先于对象存在)。
20、static特点:
随着类的加载而加载;先于实例对象存在;被所有实例对象所共享;静态只能访问静态。
21、静态变量和实例变量的区别:
静态变量存在于内存中的方法区中,实例变量存在于堆内存中。
22、import java.util.Calendar;
import java.util.Date;
//初识化日历对象
Calendar cal = Calendar.getInstance();//0表示1月,1表示2月
//Calendar和Date的相互转化
Date date = cal.getTime();
cal.setTime(date);
23、格式化输出时间:
Date date = new Date();
SimpleDateFormat sd = new SimpleDateFormat("yy-MM-dd : hh:mm:ss");
sd.format(date);