A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 景彬 于 2015-5-25 23:22 编辑

09.静态(Static):
10.继承:
11.继承中成员的特点:
12.构造函数:
13.this关键字:
14.super关键字:
15.final关键字:
Java基础--面向对象02


09.静态(Static):
static关键字:
       用于修饰成员(成员变量和成员函数)
被修饰后的成员具备以下特点:
      随着类的加载而加载
      优先于对象存在
      被所有对象所共享
      可以直接被类名调用
使用注意:
      静态方法只能访问静态成员
      静态方法中不可以写this,super关键字
      主函数是静态的
静态成员与普通成员的区别:
        静态成员:包括 静态成员变量、静态成员方法
        普通成员:包括 成员变量、成员方法
        1:位置上的区别
                静态成员: 在方法区内的静态区中
                普通成员:在堆内存中
        2:什么时候存在和消失
                静态成员: 随着类class的加载而存在,随着类的消失而消失
                普通成员: 随着对象的创建而存在,随着对象的消失而消失
        3: 使用上的区别:
                静态成员: 对象名.成员    类名.成员   
                普通成员: 对象名.成员                       
静态成员与普通成员的理解上的区别:
        静态成员:是所有对象共享同一个变量。
                它是与类相关,类变量
        普通成员:变量是每个对象单独拥有的。
                它是与对象相关,实例变量、成员变量
为什么要学习静态:
                好处: 可以把多个对象中共享的数据设置成static  比如说  国家
                       可以把方法使用static 来修饰,可以通过类名调用方法,不需 要创建对象      
                用处: 一般在工具类中使用静态
                       多个对象中共享的数据

10.继承:
        概述:
             在一个已有类的基础上,进行一些更改,得到了一个新类,该新类可以访问原有类的非私有成员
        继承的特点:
                子类可以直接访问父类中的非私有的成员
                        案例: 和媳妇开心的方法,儿子必须不能继承
                Java只支持单继承,不支持多继承
                        案例: 亲爹只能有一个,不能有多个
                Java支持多层(重)继承
                        案例: 你的姓由爹继承来的, 爹的姓由爷爷继承来的

11.继承中成员的特点:
                成员变量:
                        局部变量与成员变量同名,使用this来区别
                        子父类成员同名,使用super来区别
                        变量使用原则: 就近原则
                                如果局部位置找到该变量,使用局部变量
                                如果成员位置找到该变量,使用成员变量
                                如果父类中成员位置找到该变量,使用父类中的成员变量
                                如果父类中也没有,报错了
                成员方法[函数覆盖]:
                        函数的格式:
                                修饰符 返回值类型 方法名(参数列表){...}
                        子类与父类方法的声明部分一致
                                声明部分包含( 返回值类型 与方法名  与 参数列表)
                        子类的访问修饰符 要大于等于 父类的访问修饰符
                        由小到大
                        private < 默认的 < protected < public
                        面试题:
                                方法重写[函数覆盖] 与 方法重载的区别
                                方法重写: 子父类中的方法声明一致,子类将父类中声明一致的 方法重新实现
                                方法重载: 在同一个类中,有多个同名方法,它们的参数列表不 同
                        静态只能覆盖静态

12.构造函数:
                        a: 使用子类构造函数的时候,会默认调用父类的空参数构造函数
                        b: 任何一个构造函数默认的第一行语句都是 super(), super()是 用来调用父类的空参构造函数的
                        c: 为什么说构造函数第一行是super()
                           因为,在创建完子类对象的时候,就可以使用父类的成员了,所 以父类要在子类创建之前完成
                           所以,通过super()来实现将父类中的成员初始化
                        d: 在构造函数中 可以访问其他构造函数
                                访问父类构造函数:
                                        空参数:
                                                super()
                                        有参数:
                                                super(参数列表)
                                访问本类构造函数:
                                        空参数:
                                                this()
                                        有参数:
                                                this(参数列表)
                        e: 如果父类中,没有空参构造函数,需要手动指定调用父类中其他的构造函数
                        f: super(参数列表) 与 this(参数列表) 都必须在构造函数的第一 行,二者冲突
                           有 super(参数列表)  , 无 this(参数列表)
                           有 this(参数列表)   ,无 super(参数列表)

13.this关键字:
        理解: 当前对象的引用
               当前方法调用的时候,谁调用的该方法,那么,这个this关键字就                        相当于是谁      
        使用场景:
                当局部变量与 成员变量 重名的时候
                在构造函数中使用
        使用的方式:
                this.成员变量
                this.成员方法()

14.super关键字:
        理解: 父类对象的引用
               父类方法调用的时候,谁调用的该方法,那么,这个super关键字就相当于是谁      
        使用场景:
                super(),在继承中的子类对象的构造函数中使用
        使用的方式:
                super.成员变量
                super.成员方法()  也可在子类对象的成员方法内使用

15.final关键字:
        最终的意思:
        final修饰的类: 子类不可以继承
        final修饰的方法: 子类不可以重写
        final修饰的变量: 值不能改变,相当于是一个常量
                在java中定义常量的常用修饰符为:
                        public static final
                        举例:
                        public static final double PI = 3.14;
     ------------------------------以上只是楼主认为的重点知识,后续还有其它。如有不足还请补充。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马