Java面向对象学习笔记(一)

1、 类、对象、方法和变量
  1. 类是一批对象的抽象,对象是具体存在的实体。能够把类当作一种抽象的数据类型,使用类来定义的变量成为引用型变量。
  2. 类中包含的三种成员:构造器,属性和方法;各成员之间的定义顺序没有任何影响,各成员之间能够相互调用;构造器是一个类建立对象的根本途径,若是在Java中一个类没有定义,则系统会提供一个默认的无参数的构造器。
  3. 使用new关键字调用类的构造器能够建立该类的对象。类里定义的方法和属性均可以经过类或者对象来调用。
  4. 引用型变量里存放的仅仅是一个引用,它指向实际的对象。引用变量存放在栈中,真正的对象则存放在堆中。Java中的引用至关于C语言中的指针。
  5. this关键字是一个对象的默认引用,它老是指向调用该方法的对象。出如今构造器中,引用该构造器执行初始化的对象;出如今普通方法中,指向调用该方法的对象。
  this能够表明任何对象,且具备不肯定性,但它的类型是肯定的,它所表明的对象只能是当前类,只有当this所出现的方法被调用时,它所表明的对象才会被肯定下来:谁在调用这个方法,this就表明谁。
  静态方法中不能使用this关键字。
  6. 方法不能独立存在,全部的方法都必须在类中定义。使用static声明的方法属于类,不然属于对象。执行方法必须使用类或者对象进行调用。
  7. 方法的参数传递方式只有值传递一种,就是讲实际参数值的副本传入方法内,而参数自己不会受到影响。对于引用类型参数一样采用的值传递。
  8. 同一个类中包含了多个方法名相同但形参列表不一样的方法称为方法重载。
  9. 构造器是用于建立类对象并进行初始化的特殊方法,能够在其中进行显式初始化(系统会默认初始化)。 可是对象并不是彻底由构造器负责建立,当系统开始执行构造器以前,系统已经建立了一个对象,当构造器的执行体执行结束以后,这个对象会做为构造器的返回值被返回并赋给引用类型的变量。
  10. 构造器和普通方法同样能够重载。当一个构造器须要包含另外一个构造器时,可使用this([形参列表])来调用另外一个重载构造器。
  11. Java中变量分为成员变量和局部变量。成员变量又分为类变量和实例变量,分别属于类和对象,与其生命周期相同。局部变量分为形参,方法局部变量和代码块局部变量。局部变量除了形参外,其余都须要显式初始化。另外,同名的局部变量会覆盖成员变量,可使用this关键字避免冲突。ide

2、 封装
  1. 封装是将对象的状态隐藏在对象内部,不容许外部程序直接访问对象内部信息,而是经过该类所提供的方法来实现对内部信息的操做和访问。须要考虑到:一是将对象的属性和实现细节隐藏起来,不容许外部直接访问;二是把方法暴露出来,让方法来操做或访问这些属性。即遵循:把该隐藏的隐藏起来,把该暴露的暴露出来。
  2. 封装须要经过访问控制符来实现。this

3、 继承
  1. 继承是一种通常和特殊的关系。子类经过继承,能够得到父类的所有属性和方法。但须要注意的是子类不能得到父类的构造器。
  2. 大部分时候,子类老是以父类为基础,额外增长新的属性和方法。同时,也能够重写(覆盖)父类方法。方法的重写须要方法名,形参列表相同,子类方法的返回值和抛出的已成类型须要小或等于父类方法,子类方法的访问权限须要大于父类方法。另外,覆盖与被覆盖的两个方法类型(类方法仍是实例方法)须一致。被覆盖的父类方法能够在子类中经过super(实例方法)或类型(类方法)来调用。
  3. Java程序建立某个类的对象时,系统会隐式建立该类父类的对象。Super指向父类对象。另外,因为子类不会得到父类的构造器,使用super([形参列表])来调用父类的构造器。spa

4、 多态
  1. 引用变量的编译类型和执行类型不一致的状况下,执行该引用类型的方法其实是执行在子类中被覆盖的方法。而对于属性则没有这种性质。
  2. Java容许把一个子类对象赋给赋给一个父类引用变量和无须进行任何类型转换。
  3. 使用instanceof运算符用于判断是否能够进行向上转型。
 指针

相关文章
相关标签/搜索