zoukankan      html  css  js  c++  java
  • 面向对象特性一

    面向对象特性

    封装

    • 定义:隐藏对象得属性和实现细节, 仅仅对外提供公共访问得方法
    • 好处: 将变化隔离, 便于使用; 提高重用性,安全性。
    • 原则:将不需要对外提供得内容隐藏起来, 把属性隐藏起来,提供公用得方法对其访问。
    1. this: 式对象得引用代表对象。作用是减少命名得冲突。
    2. static:是静态修饰符,是静态关键字。
      特点:
    1. 通过它实现对象之间数据得共享
    2. 可以通过类名直接调用
    3. 静态随着类加载而加载, 它优于对象存在

    注意点:

    • 某个对象需要特别持有得数据是不能够被静态修饰否则, 共享
    • 因为静态方法优先于对象加载, 所以不可访问非静态得方法
    • 静态方法中没有对象这个概念, 也就不能用对象所特有得super, this 关键字得使用
    • 主函数是静态得, 加载顺序是和静态方法平级,按照排列顺序加载。

    3.什么时候定义静态:

    公用同一个方法或者变量得时候可以定义成静态得

    4. 成员变量和静态变量得区别

    1. 成员变量属于对象,也被称为实例变量。静态对象属于类, 被称为类对象
    2. 成员变量存放在堆中,静态变量存放在方法区中
    3. 成员变量随着对象创建而存在, 随着对象被回收, 而静态变量随着类加载而存在, 随着类得消失而消失,所以静态变量得生命周期较长
    4. 成员变量指能被对象所调用, 静态对象可以被对象调用, 也能被类名调用。

    静态代码块、构造代码块、构造函数同时存在时的执行顺序:
    静态代码块> 构造代码块 > 构造函数;

    关于设计模式:

    就是一套经验总结出来得模式或者称为棋谱,java中有23种设计模式

    5. 单例设计模式

    思想:

    1. 不让其他程序创建该类对象
    2. 在本类中创建一个本类对象
    3. 对外提供方法

    第一点:可将构造方法私有化实现。

    代码体现:

    //饿汉式
    class Single{
    private Single(){} //私有化构造函数。
    private static Single s = new Single(); //创建私有并静态的本类对象。
    public static Single getInstance(){ //定义公有并静态的方法,返回该对象。
    return s;
    }
    }
    
    //懒汉式:延迟加载方式。
    class Single2{
    private Single2(){}
    private static Single2 s = null;
    public static Single2 getInstance(){
    if(s==null)
    s = new Single2();
    return s;
    }
    }
    

    继承

    1. 好处: 提高代码复用性, 让类与类之间产生了关系提供了多态的前提。

    2. 父类的由来:多个类不断向上抽取共性的内容

    3. Java中只支持单继承不支持多继承,因为多继承让项目变得更加复杂。

    4. super:父类内存空间中的引用

    5. this: 本对象的引用

    • 第一:两者是否同时出现:因为都要定义在第一行所以不能
    • 第二:为什么要定义在第一行:这两者是用于调用构造方法的, 构造方法初始化操作要先于完成

    6. 什么时候使用继承:当符合is-a

    方法覆盖时候,注意两点:

    子类覆盖父类, 必须要保证子类的访问权限不低于父类的访问权限

    1. final特点:
    2. 这个关键字是一个修饰符, 可以修饰类, 方法, 变量
    3. 被final修饰的类是一个最终类, 不可以被继承
    4. 被final修饰的方法是最终方法, 不可以被覆盖
    5. 被final修饰的变量是一个常数,只能赋值一次。
  • 相关阅读:
    loj#6433. 「PKUSC2018」最大前缀和(状压dp)
    PKUWC2019游记
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
    7. Reverse Integer
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/jwlxtf/p/7922743.html
Copyright © 2011-2022 走看看