一.面向对象的基础概念
1.抽象
提供一个方法的声明即可,不需要实现,就是抽象方法
2.对象
对象是有具体内容和数据、实例的叫做对象,每个对象都有独一的标识 如:学生的学号,年龄。
3.类
类是一组具有相同属性和行为的对象的抽象,类的作用是用来创建对象,对象是类的一个实例。
二.面向对象的三大特征
1.封装
封装性就是尽可能的隐藏对象内部细节,对外形成一道边界,只保留有限的接口和方法与外界进行交互。封装的原则是使对象以外的部分不能随意的访问和操作对象的内部属性,从而避免了外界对对象内部属性的破坏。
2.继承
继承就是子类继承父类的特征和行为,使得子类对象具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。Java只支持单继承
3.多态
面向对象的多态性,一个接口,多个方法。多态性体现在父类中定义的属性和方法被子类继承后,可以具有不同的属性或表现方式。多态性允许一个接口被多个同类使用,弥补了单继承的不足。
三.类
1.属性
1.属性又叫成员变量。
2.属性用于定义类或类对象的数据(静态特征)。
3.范围为整个类体。
2.方法
1.方法用于定义类或类对象的行为特征(执行动作)(动态)。
2.方法类似于面向过程中的函数,面向过程中的函数是最基本的单位。
3.而在面向对象中,最基本单位是类,方法从属于类和对象。
3.构造方法
1.构造方法分为无参构造方法;有参构造方法。
2.构造方法要与类名保持一致。
3.如果不设置构造方法,则系统自动生成无参构造方法。
四.内存分析
1.栈
1.栈描述的是方法执行的内存模型,每个方法被调用时都会创建一个栈帧。
2.JVM为每个线程创建一个栈。
3.栈是私有,在线程间不会共享。
4.栈是一段连续的存储空间。
2.堆
1.堆用于存储创建好的对象。
2.JVM只有一个堆。
3.堆被所有线程共享。
4.堆是不连续的空间,分配灵活。
3.方法区
1.方法区实际也是堆,用来专门存储类、常量(static关键词相关)等相关信息。 2.JVM只有一个方法区。 3.可共享。 4.存储不变的信息。