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修饰的变量是一个常数,只能赋值一次。
  • 相关阅读:
    阿里云服务器ECS centos_7 安装jdk环境
    Spring Data Jpa 投影(Projection)的用法
    win10 docker 部署微服务
    centos 安装docker
    VMware 启动 虚拟机后一直黑屏
    VMware 新建虚拟机选择操作系统的时候提示,此主机不支持64位客户机操作系统,此系统无法运行
    mysql 表名全变小写的解决(windows)
    docker: Error response from daemon: driver failed programming external connectivity on endpoint jovial_morse (71d0315110605c3812f7255c7072f5d38512118a4635feaf84cdc170d3bee8d1): Error starting userland
    win10 docker部署springboot项目
    nginx failed (1113: No mapping for the Unicode character exists in the target multi-byte code page)
  • 原文地址:https://www.cnblogs.com/jwlxtf/p/7922743.html
Copyright © 2011-2022 走看看