zoukankan      html  css  js  c++  java
  • 面向对象的四大特征 封装 继承 多态 抽象

    1.封装
    广义: 类 方法 包 的定义本身就是一种封装
    狭义: 在设计一个类的时候
    将所有的属性设置为私有的
    并对各个私有的属性设计相应的 存/取方法 来完成对属性的使用

    私有化只能代表封装的特性
    可以说私有是封装的一种 不能说封装即是私有
    封装的好处:
    隐藏实现细节 提供公共的访问方式
    提高了安全性
    封装的原则:
    将不需要对外提供的内容都封装起来
    把属性隐藏 提供公共的方法进行访问
    private关键字*****
    关键字的特点:
    1.私有的意思
    2.是一个权限修饰符
    3.可以修饰成员变量 和 成员方法
    4.被其修饰的成员 只能在本类中被访问
    封装的步骤:
    1.把成员变量用private修饰
    2.提供相应的 存/取方法 setXxx() 和 getXxx();

    2.this关键字
    this关键字指的是 当前对象的引用
    作用:
    this.属性 访问本类的成员变量
    用来区分 成员变量 和 局部变量 重名的问题
    this.方法 访问本类的成员方法
    this() 访问本类的构造方法
    ()中可以有参数的 如果有参数 就是调用指定的有参构造
    注意事项:
    1.this() 不能使用在普通方法中 只能写在构造方法中
    2.必须是构造方法中的第一条语句
    3.static关键字(静态)
    特点:
    1.static静态 可以用来修饰共有的属性/行为
    2.static与类相关 和对象无关 随着类的加载而加载 优先于对象而存在
    3.被类的所有对象共享
    例如 空调 就是静态 水杯 就是非静态
    4.被static修饰的成员 多了一种调用方式 可以通过 类名.成员名 调用
    方法区:
    类信息被存储在一个称为方法区的内存空间中
    类信息就是由类加载器在类加载时从文件中提取

    静态(类)变量 也存储在方法区中
    静态和非静态的区别*****
    1.所属不同
    静态属于类
    非静态属于对象
    2.内存中位置不同
    静态 存在方法区的静态区中
    非静态 存在堆内存中
    3.内存中出现的时间不同
    静态随着类的加载而加载 随着类的消亡而消亡
    存活时间长 不建议定义过多
    非静态随着对象的创建而存在 随着对象的消亡而消亡
    语法:
    修饰成员 (成员变量 / 成员方法)

    修饰成员变量的时候
    [访问权限修饰符] static 类型 属性名;
    修饰成员方法的时候
    [访问权限修饰符] static 返回值类型 方法名(参数列表){
    方法体
    }
    静态修饰方法:
    被静态修饰的方法 为静态方法
    1.只能直接访问 静态成员 包括成员变量和成员方法
    不能直接访问 非静态成员 包括成员变量和成员方法
    必须创建该类对象 才能调用非静态成员

    因为静态优先于对象存在 在静态方法加载进内存时
    非静态的还没进入内存中

    2.在静态方法中 没有this/super 关键字
    非静态方法
    可以访问静态成员 也可以访问非静态成员
    总结:
    静态虽好 不能乱用
    利:
    将对象共享的数据 进行单独存储 节省内存
    可以直接用类名.调用
    弊:
    生命周期过长
    访问出现局限性 静态只能直接访问静态

    静态的内存图


    main方法梳理:
    public static void main(String[] args){

    }
    主函数 是一个特殊的函数 可以被jvm直接调用 作为程序的入口
    public 最大权限
    static 静态的 在当前方法中会创建对象 需要在创建对象之前
    先将main方法加载进内存
    void 不确定的返回值 jvm不需要这个返回值
    main 一个通用的名称 不是关键字 jvm会识别它
    String[] 传入 存储String类型数据的数组
    args 参数列表 名 整个main方法中 只有这个能随便写
    代码块:
    静态代码块 , 局部代码块 , 动态代码块
    以{}包裹起来的代码 被称为一个代码块
    局部代码块:
    声明在方法中的代码块 执行时机与声明的位置相关
    静态代码块:
    使用static关键字修饰的代码块 在类加载时执行 并且 只执行一次
    在类中 方法外定义
    格式:
    static{
    执行内容
    }
    用于给类中的数据进行初始化 一般用于加载驱动 jdbc驱动
    动态代码块:
    又称为构造代码块 声明在类中的代码块 在创建对象是执行一次
    每创建一个对象 就会执行一次动态代码块
    在类中 方法外定义
    格式:{
    执行内容
    }
    执行顺序:
    静态代码块>动态代码块>构造方法

  • 相关阅读:
    hdu2155 小黑的镇魂曲(dp)
    hdu2155 小黑的镇魂曲(dp)
    hdu2158 最短区间版大家来找碴
    hdu2158 最短区间版大家来找碴
    hdu2102 水搜索
    hdu2102 水搜索
    hdu 2058 枚举区间和个数
    hdu 2058 枚举区间和个数
    hdu4982 暴搜+剪枝(k个数和是n,k-1个数的和是平方数)
    hdu4982 暴搜+剪枝(k个数和是n,k-1个数的和是平方数)
  • 原文地址:https://www.cnblogs.com/wanghuaying/p/9387544.html
Copyright © 2011-2022 走看看