Java必备:类和对象

2014-11-24 02:55:27 · 作者: · 浏览: 1

一、面向对象的特征

  • Java支持面向对象的三大特征:

    • 封装:Java提供了private ,protected和public三个访问控制修饰符来实现良好的封装;

    • 继承:提供了extends关键字让子类继承父类,子类继承父类就可以继承到父类的Field和方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法,这是实现一种复用的手段;

    • 多态:继承实现复用时,子类对象可以直接复制给父类变量,这个变量具有多态性;

      • 此继承之外,也可以通过组合来实现复用;

        二、类

        • 引用变量:我们把类当成一种自定义数据类型,可以使用类来定义变量,这种变量统称引用变量;

          • Java程序设计中有两个重要的概念:

            • 类(Class):某一批对象的抽象,可以把类理解成某种概念;

            • 对象(Object):对象才是一个具体存在的实体;

            • 定义类语法:

              [修饰符] class 类名{

              零到多个构造器定义...

              零到多个Field...

              零到多个方法...

              }

              • 修饰符:可以是pubilc、final、abstract,或者完全省略;

              • 类名:合法的标示符;

              • Field:定义该类或该类的实例所包含的状态数据;

              • 方法:定义该类或该类的实例的行为特征;

              • 构造器:用于构造该类的实例;

                • 定义Field语法:

                  [修饰符] Field类型 Field名 [=默认值];

                  • 修饰符:可以省略,也可以使public、protected、private、static、final,其中public、protected、private三个最多只能出现其中之一,可以与static、final组合起来修饰Field;

                  • Field类型:可以是Java设计语言的任何类型,包括基本类型和引用类型;

                  • Field名:一个合法的标示符;

                  • 默认值:指定一个默认值;

                    • 定义方法的语法格式如下:

                      [修饰符] 方法返回值类型 方法名(形参列表){

                      //由零条到多条可执行语句组成的方法体

                      }

                      • 修饰符:修饰符可以省略,可以是public、private、static、final、abstract,其中public、protected、private最多只能出现其中一个;abstract和final最多只能出现其中之一;可以与static组合起来修饰;

                      • 返回值:可以是Java语言支持的任何类型;

                      • 方法名:命名与Field的命名相同;

                      • 形参列表:定义该方法可以接受的参数,多个参数之间使用逗号(,)隔开;

                        • 构造器是一个特殊的方法,定义语法和方法相似,语法格式如下:

                          [修饰符] 构造器名(形参列表){

                          //由零条到多条可执行语句组成的构造器执行体

                          }

                          • 修饰符:可以省略,可以使public、protected、private之一;

                          • 构造器名:必须和类名相同;

                          • 形参列表:和定义方法形参格式完全相同;

                            三、对象的产生和使用

                            • 创建对象的根本途径是构造器,通过new关键字来调用某个类的构造器即可创建这个类的实例;

                              • 类或实例访问方法或Field的语法:类.Field|方法,或者实例.Field|方法;

                              • static修饰的方法和Field,即可通过类来调用,也可以同通过实例来调用;没有static修饰的普通方法和Field,只能通过实例调用;

                                四、对象、引用和指针

                                • 程序定义的Person类型的变量实际上是一个引用,它被放在栈内存中,指向实际的Person对象;真正的Person对象放在堆内存中;

                                • 实际上Java里面的引用就是C里地指针,只是Java语言把这个指针封装起来,避免开发者进行繁琐的指针操作;

                                • 堆内存中的对象可以有多个引用,即多个引用变量指向同一个对象;

                                  • 如果堆内存里地对象没有任何变量指向该对象,那么程序将无法在访问该对象,这个对象也就变成了垃圾,Java的垃圾回收机制将回收该对象,释放该对象占用的内存;

                                  • 如果希望通知垃圾回收机制回收某个对象,只需要切断该对象的所有引用变量和它之间的关联即可,也就是把这些应用变量赋值为null;

                                    五、对象的this引用

                                    • Java提供了一个this关键字,this关键字总是指向调用该方法的对象。根据this关键字的位置的不同,this作为对象的默认应用有两种情形:

                                      • 构造器中引用该构造器正在初始化的对象;

                                      • 在方法中应用调用该方法的对象;

                                      • this可以代表任何对象,当this出现在某个方法体中,它代表的对象是不确定的,但它的类型时确定的,它代表的对象只能是当前类;只有当这个方法被调用时,它代表的对象才能被确定下来,谁在调用这个方法,this就代表谁;