黑马程序员技术交流社区

标题: 学习总结08 [打印本页]

作者: mm2015    时间: 2015-12-11 18:30
标题: 学习总结08

        构造方法
       
        static
       
        API

2、代码块
        局部代码块:
                用来控制局部变量的生命周期,尽早释放内存。 -- 开发一般不用
               
        构造代码块:
                将构造方法中的共性内容,提取出来。减少代码的重复。
                每次创建对象都执行,而且是优先于构造方法。 -- 开发一般不用
       
        静态代码块:
                用来做类的初始化动作,类一加载就执行。而且只执行一次。(类文件只加载一次的情况下)
               
                一般用来加载驱动。用途:JDBC连接数据库。
               
                main方法的类中如果有静态代码块,静态代码块优先于main方法执行的。
               
        各个成员的执行顺序:
                静态代码块 ==> 构造代码块 ==> 构造方法
                其中静态代码块只执行一次,构造代码块每次创建对象都执行,而且是优先于构造方法。
               
3、继承 -- extends
        继承的好处和弊端:
       
                好处:
                        提高复用性。
                        提高可维护性。
                        让类与类产生了一个关系,是多态的前提。
               
                弊端:
                        让类之间产生了一个强耦合的关系。
                       
                        名词解释:
                                耦合:类与类的依赖关系。
                                内聚:类自己完成一些功能的能力。
                       
                        java开发中原则:高内聚,低耦合。
               
        Java中类的继承特点:
                只允许单继承,不允许多继承,但是允许多层(多重)继承。
                        -- 避免了多继承中的调用不明确问题。
               
                学顶层:顶层定义的是体系的共性的内容。
                用底层:因为底层才是具体的实现,这里面的功能是最多的。
               
        什么时候使用继承:
                尽量不要为了使用部分功能而去使用继承,而继承体现的是“is a”。
               
        使用继承的时候注意事项:
                继承只能继承父类中所有非私有的成员。
                继承不能继承构造方法,但可以使用super关键字访问父类的构造方法。
       
        继承中成员变量的关系:
                变量的使用:就近原则
                        局部 -- 成员 -- 父类 -- 报错。
       
        this和super关键字:
                this代表本类对象的引用。理解:谁来调用我,我就代表谁。
                super是一个关键字,代表父类的存储空间标识。(可以理解为父类对象的引用)
               
                super和this的用法相似:
                        a:成员变量
                                this.变量        --        本类的成员变量
                                super.变量        --        父类的成员变量
                        b:构造方法
                                this(...)        --        根据参数的匹配,调用本类的其他构造方法。
                                super(...)        --        根据参数的匹配,调用父类的某个构造方法
                                        -- 保证在子类初始化之前,先初始化父类的数据。
                                        -- 在子类的每一个构造方法中,第一行都有一条默认的语句super();
                                        -- 所有的类都直接或间接继承自Object类。Object类中只提供了无参构造。
                                       
                                        注意事项:
                                                this()和super()语句必须放在构造方法的第一行。
                                                如果父类不存在空参构造,可以:
                                                        使用super(参数。。。)调用父类的某个带参构造。
                                                        使用this(参数。。。)调用子类的某个带参构造,而根本原因就是我们想访问的那个构造能够访问父类的构造。
                                       
                        c:成员方法
                                this.方法名()        --        调用本类的其他方法       
                                super.方法名()        --        调用父类的方法
       
        重载与重写:
                重载Overload:java允许在一个类中,多个方法拥有相同的名字,但在名字相同的同时,必须有不同的参数,这就是重载。与返回值类型无关。
                重写Override:
                        在子类中,方法声明(修饰符,返回值,方法名,参数列表)与父类相同的情况。
                       
                        访问权限修饰符:private 默认(什么也不写) protected public

                        注意事项:
                        a:父类中私有方法是不能被重写
                        b:子类重写父类的方法不能缩小父类的访问权限,不能抛出比父类更多的异常。
                        c:静态只能重写静态。(类的特点)
               
4、final关键字
        修饰类:类不能被继承
        修饰变量:一旦赋值就不可改变,其实是一个常量。
                基本数据类型:其值一旦赋值就不可改变
                引用数据类型:是指引用不再改变指向,或者说是地址值不变,但对象内部的属性还可以发生变化。
       
        修饰成员方法: 不能被重写。
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2