1.面向对象编程和面向过程的区别在于复用程度的不同。
2.面向对象编程的核心在于面向类的编程。
3.面向对象方式考虑问题:
(1)这个问题里应该有哪些类,哪些对象
(2)这些类和对象应该具有哪些属性和方法
(3)这些类和对象直接具有怎样的关系
4.成员变量默认初始化,局部变量不会。
5.new,构造方法。new出来的位于堆内存。局部变量(形参)位于栈内存。静态变量位于数据区(data seg)
6.字符串常量也位于数据区。
7.对于一个类的所有对象来说,static成员变量只有一份(不管有没有对象存在),并且是公用的。
8.访问控制
(1)private 类权限
(2)default 包权限
(3)protected 包权限+子类可以访问
(4)public All
9.类的访问权限 public, default(包权限)
10.继承中的构造方法
子类的构造过程中必须调用其基类的构造方法。
子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法
使用this(arguments_list)调用本类的另外的构造方法
如果调用super,必须写在子类构造方法的第一行
如果子类的构造方法中没有显式的调用基类的构造方法,则系统默认调用无参数的构造方法
如果子类的构造方法中即没有显式的调用基类的构造方法,而基类中又没有无参的构造方法则编译出错。
11.Object类
hashcode (hashcode table)
equals(默认等同于"==",String和Date类等JDK已经重写过了equals方法)
12.对象转型(casting)
13.动态绑定(多态)
动态绑定是指“在执行期间(而非编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法”多态存在的必要条件:1.要有继承2.要有重写3.父类引用指向子类对象
14.抽象类
15.final关键字
final的变量的值不能够被改变(1)final的成员变量(2)final的局部变量(形参)final的方法不能够被重写final的类不能够被继承//public final class String
16.接口
特性:(1)接口可以多重实现(2)接口中声明的属性默认为public static final,且只能是public static final(3)接口中只能定义抽象方法,而且这些方法默认是public的,也只能是public的(4)接口可以继承其他的接口,并添加新的属性和抽象方法*接口本质上是个抽象类*与继承关系类似,接口与实现类之间存在多态性*接口的存在是为了实现多继承