zoukankan      html  css  js  c++  java
  • 012-面向对象

    一、面向对象

    面向过程

      分析出解决问题的步骤,然后用函数把步骤实现

      以算法为核心

      自顶向下设计

      将大问题转化若干小问题

      用函数作为划分程序的基本单位

      直接面向问题

    优缺点

      易于理解,符合人的思维习惯

      对于需求明确、规模不大、变动较小的问题合适

    缺点

      数据与操作分离开,但是修改困难

      数据安全性得不到保证

      程序架构的关系不合理

        main函数依赖子函数,子函数依赖于更小函数,有一个修改,影响整体

      需求不明确,规模大,变动大,不合适

    面向对象

      对事物进行抽象

      自下而上

      用类作为划分程序的基本单位

      

    二、类与对象

      类,把一类事物的静态属性和动态可以执行的操作组合在一起所得的这个概念就是类。

      类是抽象的,用来模拟一类事物,是一个概念。

      一旦定义,类的概念就存在了

      对象,类的一个个体,具体的,有生命周期,生成和消亡

    三、内存分配

      

    A aa =new A();//原来 (A *)malloc(sizeof(A)) C++ 后统一用new A()代替

      //new A() 在堆中动态分配一块区域,被当做A对象

      //aa本身的内存是在栈中静态分配的

      //堆中内存地址赋给了aa

      //aa指向堆中的内存,aa代表了堆中的内存

    aa.name  //相当于C语言中(*aa).name 只不过java做了统一处理

        //aa.name这个静态指针变量所指向的动态内存中的A对象的name成员

    堆区,可跨函数使用,手动释放,java垃圾回收

    栈区,只能一个函数中使用,不能跨函数使用

      

    类内部变量同时在堆上

    四、访问控制符

      成员变量使用方法设置获得

      private 私有的,

      默认【即不加任何修饰符】

      protect 保护

      public 公开

    函数调用,过程是压栈,程序中压栈是有次数的

    五、构造函数

      默认构造方法

      与类同名的方法,构造时候被调用

      函数重载

    关键字this

    关键字static

  • 相关阅读:
    第十三周时间进度表
    第十二周时间进度表
    第十周时间进度表
    elasticsearch(ES)日志迁移
    docker stack 部署nginx
    docker stack 部署容器监控方案(cAdvisor、Prometheus、Grafana)
    docker stack 部署 mysql 5.6
    docker stack 部署 filebeat
    docker stack 部署 redis
    docker stack 部署 seafile(http)
  • 原文地址:https://www.cnblogs.com/bjlhx/p/6896744.html
Copyright © 2011-2022 走看看