面向对象的总结:

面向对象的三条主线

1.类及类的成分

2.面向对象的三大特性

3.其他关键字:this super import package static final interface 


1.java程序是关注类的设计。类从代码的角度讲:并列关系。从执行、设计的角度:关联关系,继承关系,聚合关系

2.类的成分:属性 方法 构造器 代码块 内部类

2.1属性:      ①变量的分类:成员变量(属性 Field)&局部变量9(方法的形参、方法的内部、代码块内部)

基本数据类型(8中)&引用数据类型(数组、类、接口  默认初始化值为null)

       ②属性的声明格式:修饰符 数据类型 变量名 = 初始化值;//java是强数据类型的语言

       ③对属性赋值的操作:1.默认初始化 2.显式的初始化 3.代码块的初始化 4.构造器的初始化 5.调用方法、属性进行赋值

2.2方法(函数)①格式: 修饰符 (其他关键字static final abstract)返回值类型 方法名(形参列表){方法体}

               ②方法的重载(overload) vs 方法的重写(override overwrite)

       ③方法的参数传递机制 值传递

2.3构造器      ①构造器的作用:1.创建类的对象 2.初始化对象的成员变量

      ②构造器也是可以重载的

2.4代码块  主要作用:主要用来初始化类的成员变量 只能用static修饰 

              分类:静态&非静态

2.5内部类      ①分类 :成员内部类 (static的成员 &非static的成员)vs 局部内部类 (方法内声明的类)

               ②掌握 1.如何创建成员内部类的对象 2.如何区分调用内、外部类的变量 3.局部内部类的使用

3.类的初始化(创建类的对象)

3.1如何创建类的对象  如:Person p = new Person(); Date d = new Date();

3.2内存解析:  ① 栈:局部变量、对象的引用名、数组的引用名

      堆:new出来的东西  

                方法区 :(字符串常量池)

                               静态域 :存放类中静态的变量

                       ②如何理解创建的对象在内存中加载的过程(理解)

         3.3 子类对象实例化的全过程:SubClass sc = new SubClass();

4.面向对象的三大特性:

   4.1 封装性:

       ①通过私有化的成员变量,通过公共的getter和setter方法来调用和修改

       ②还可以对类的其他结构进行:“封装”

       ③权限修饰符:public protected 缺省 private

   4.2 继承性:

       通过让一个类A继承另一个类B,就可以获取类中的结构(主要的:属性 方法 构造器)。子类:类A 父类:类B

      java中是单继承

   4.3 多态性:

       ①体现:方法的重载与重写;子类对象的多态性 Person p = new Student();

       ②子类对象多态性的使用:虚拟方法的调用

       ③向上转型 向下转型 Student s = (Student)p;//建议在向下转型前:if(p instanceof Student)避免出现ClassCastException异常


5.其他关键字:

   5.1 this:修饰属性、方法、构造器。表示:当前对象或当前正在创建的对象

   5.2 super:修饰属性、方法、构造器。显式的调用父类的相应的结构,尤其是子父类有重名的方法、属性

   5.3 static:修饰属性、方法、代码块、内部类。随着类的加载而加载

   5.4 final:修饰类、属性、方法。表示“最终的”。

   5.5 abstract:修饰类、方法。

   5.6 interface:表示一个接口(接口是与类并列的一个结构)。类与接口之间同时“implements”发生关系。

   5.7 package import。。。

>abstract不能修饰属性、构造器,不能与final、static、private公用。