一:类java
类定义语法this
[修饰符]class //修饰符能够是public,final,abstract 类名必须是由一个或多个有意义的单词连缀而成的,每一个单词首字母大写,其余字母所有小写
对象
{继承
零到多个构造器定义//建立对象[修饰符] 构造器名(形参列表)
递归
零到多个成员变量//[修饰符]类型 变量名[=默认值]public,protected,private,static,final 第一个单词首字母小写,然后每一个单词首字母大写
内存
零到多个方法//[修饰符]方法返回值类型 方法名(形参)public,abstract,protected,private,static,final 返回值能够是任何类型
编译
}class
static用于区分红员变量,方法,内部类,初始化块是属于类自己仍是属于实例。java类的做用:定义变量;建立对象;调用类的类方法或访问类的类变量变量
二:对象权限
构造器建立对象,经过new关键字来调用某个类的构造器
Java对象的做用:访问对象的实例变量;调用对象的方法。没有使用static修饰的普通方法和成员变量只能够经过实例来调用。
类也是一种引用数据类型,对象的成员变量数据实际存放在堆内存里。this关键字老是指向调用该方法的对象:a:构造器中引用该构造器正在初始化的对象。b:在方法中引用调用该方法的对象。Java容许对象的一个成员直接调用另外一个成员。static修饰的方法中不能使用this引用。this在构造器中表明该构造器正在初始化的对象。若是在某个方法中把this做为返回值,则能够屡次连续调用同一个方法。堆内存里保存了对象自己,栈内存中保存了引用该对象的引用变量。
三:方法
方法在逻辑上要么属于类,要么属于对象。若是方法用static修饰,这个方法属于类,没有则属于这个类的实例。
方法必须使用类或对象来做为调用者,即类.方法名/对象.方法名。同一个类里的方法调用另外一个方法时,若是被调用的是普通方法,则默认使用this做为调用者,若是被调用的是静态方法,则默认使用类做为调用者。
java里参数传递方式:值传递 一个方法中最多只能有一个个数可变的形参。
一个方法体内调用它自身,称为方法递归。递归必定要向已知方向递归。
重载:Java容许一个类里定义多个同名方法,只要形参列表不一样就行。(两同一不一样:类名方法名相同,形参不一样)不能使用方法返回值类型做为区分方法重载的依据。形参的值由方法的调用者负责指定。形参存储在栈里。
四:成员变量和局部变量
成员变量:在类里定义的变量,实例变量(不以static修饰),类变量(以static修饰)
局部变量:在方法里定义的变量,形参,方法局部变量,代码块局部变量 局部变量除了形参以外,都必须显示初始化。保存在栈内存。
访问变量语法:类.类变量/实例.实例变量/实例.类变量
java容许局部变量和成员变量同名。
五:隐藏和封装
封装:将对象的状态信息隐藏在对象内部。
访问控制符:private——>protected——>public访问控制级别由小到大
private:当前类访问权限
protected:子类访问权限
public:公共访问权限
Java容许将一组功能相关的类放在同一个package下,从而组成逻辑上的类库单元。
六:构造器
构造器最大的用处就是在建立对象时进行初始化。构造器名必须与类名相同。
构造器重载与方法重载基本类似,形参不一样
构造器不能直接被调用,构造器必须使用new关键字来调用。使用this调用另外一个重载的构造器只能在构造器中使用,并且必须做为构造器执行体的第一条语句。
七:继承
经过extends 关键字实现。父类和子类的关系,是一种通常和特殊的关系,java的子类不能得到父类的构造器。每一个类最多只能有一个直接父类。
方法的重写:(两同两小一大原则)两同:方法名相同、形参列表相同。两小:子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应该比父类方法声明抛出的异常类更小或相等,一大指的是子类方法的访问权限应比父类方法的访问权限更大或相等。
可以使用super限定来调用父类被覆盖的实例方法。super不能出如今static修饰的方法中。
八:多态
Java引用变量有两个类型,一个是编译时类型,一个是运行时类型,若是编译时类型和运行时类型不同,就会出现多态。Java容许把一个子类对象直接赋给一个父类引用变量,无需任何类型转换。instance of运算符的前一个操做数一般是一个引用类型变量,后一个操做数一般是一个类,它用于判断前面的对象是不是后面的类,或者其子类,实现类的实例。使用instance of 运算符前面操做数的编译时类型要么与后面的类相同,要么与后面的类具备父子继承关系,不然会引发编译错误。