zoukankan      html  css  js  c++  java
  • day09

    变量的分类:按照变量声明的位置划分

       1,局部变量

       2,成员变量

         (1)实例变量:没有static修饰的属性

         (2)类变量:使用static修饰的属性

    局部变量和成员变量的区别

      1,声明位置

          局部变量的声明位置

        (1)方法的形参列表

        (2)方法体中

        (3)代码块

         成员变量声明的位置:类中方法、代码块等外面

      2,初始化的方式

          局部变量初始化

        (1)形参的初始化必须在调用时由实参赋值

        (2)其他局部变量必须手动初始值

          成员变量初始化

        (1)有默认值

        (2)显示初始化

        (3)构造器

        (4)set方法可再次修改值

      3,值的存储位置不同

           局部变量:栈

           成员变量:(1)实例变量:堆

                              (2)类变量:?

      4,生命周期

           局部变量:短

                 当代码执行到局部变量声明处开始,到它的作用域结束

           成员变量:相对长

                 随着对象的创建而创建,随着对象被垃圾回收而消亡;每个对象的成员变量是独立的

      5,修饰符不同

           局部变量:final

           成员变量:权限修饰符(4个),static,final,volatile等

    二,继承(extends)

        概念:延续、保留、并且扩展

        1,继承的目的(好处)(意义):

                 代码的复用、代码的扩展、可以表示事物之间is-a的关系。

        2,继承的语法格式:
               【修饰符】 class 子类  extends 父类{
                  }

        3,继承的特点:
                (1)Java只支持单继承
                               一个子类只能有一个直接的父类
               (2)Java支持多层继承
                               一个子类的父类仍然可以有父类,子类可以继承所有“祖宗”类的所有属性、方法。
               (3)一个父类可以同时有很多个子类,而且子类还可以有子类
               (4)子类会继承父类所有的属性、方法,子类可以扩展父类没有的属性和方法
               (5)子类不会继承父类的构造器,但是一定会在子类的构造器中去调用父类的构造器,默认在子类的构造器的首行,会通过"super()"去调用父类的无参构造;
                         如果父类没有无参构造,那么子类的构造器的首行需要用"super(实参列表)"去显式的调用父类的有参构造。
               (6)如果一个类没有显式的继承其他类,那么它的父类就是java.lang.Object。

     this和super关键字的用法

         this:当前对象

           (1)this.属性 当成员变量与局部变量重名时,可以在“成员变量”的前面加"this."进行区别。

           (2)this.方法 表示访问当前对象的某个成员方法,完全可以省略"this."

           (3)this()或this(实参列表) 用在构造器的首行,表示调用本类的其他构造器。

         super:父类的

           (1)super.属性 当子类的属性与父类的某个可见的属性重名时,想要在子类中去表示用“父类的属性”, 可以在“父类的属性”前面加"super."

           (2)super.方法 在子类中去调用父类“被重写的方法”时,可以用"super."

           (3)super()或super(实参列表) 用在子类构造器的首行,表示调用父类的构造器

    三,多态(多种形态):针对方法

           目的:使代码编写更灵活,功能更丰富

           理解:

            1,方法的重载和重写:一个功能有多种形式

            2,对象的多态性   

                某个对象在Java中可能出现编译时类型和运行时类型不一致

           多态的前提:

           (1)类有继承关系

           (2)方法的重写  

           (3)多态引用:父类的变量指向子类的对象
      出现的对象的多态性的现象

           按照父类的类型编译,运行时按照子类的类型运行,执行的方法是子类的方法体

    多态的应用

        1,多态数组:元素的类型是父类的类型,元素存的是子类的对象

        2,多态参数:形参是父类类型,实参是子类类型

    父子类之间类型转换

         1,向上转型:自动完成

         2,向下转型:强制完成

              向下转型之前,一定发生过向上转型

         注:父类的变量可以存储子类的对象:子类的变量不可以存储父类的对象

    关键字:instanceof

          为了避免转型失败,可以在转型之前加instanceof判断

       

  • 相关阅读:
    jQuery 自执行函数
    IRelationalOperator空间关系接口简介
    9.2 空间拓扑运算[转]
    解决关于ArcGIS10.2服务手动启动的问题
    Multipart to single part feature
    Multipart polyline to single part lines
    VS2015 C#6.0 中的没有实现/支持的特性
    VS2015 C#6.0 中的那些新特性
    ArcGIS中各种合并要素(Union、Merge、Append、Dissolve)的异同点分析 转载
    FME2010 案例分析: 动态批量转换
  • 原文地址:https://www.cnblogs.com/zzz222zzz/p/11545939.html
Copyright © 2011-2022 走看看