什么是OOP

场景:我进入一家IT公司,面试官问道我这个问题。OOP?WTF?“众所周知,Java是一门面向对象的开发语言,所以OOP不就是面向对象设计咩。Java把所有的元素都当成是一个对象,就这样面向呗。”“???!!!下一位。”

OOP的特点:

封装、继承、多态。

OOP的基本原则:

里氏替换原则

单一功能原则

开放封闭原则

依赖倒置原则

接口单一原则

面向对象的核心方法--抽象

抽象就是将一个具体的方法,使用一些认为的可以接受的方式进行描述,转化为一个处理这些最基本组成单位的方法。

优点:可以在一定程度上将复杂的问题简单化。

缺点:运行时效率和效能不如面向过程的方法好。

OOP学习讲义的更多相关文章

  1. oop学习 计算器类的规划

    类的学习 题目要求 采取面向对象的方法,四则运算自动出题软件,根据需求可以划分为几个类?每个类具有什么属性?每个类具有什么行为? 类与类之间是如何进行协作的?谁给谁发送消息?谁持有谁的引用? 该自动出 ...

  2. ruby oop学习

    class Man def initialize(name,age) @name=name @age=age end def sayName puts @name end def sayAge put ...

  3. OOP学习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. OOP 学习笔记汇总

    1.1 引用 1.2 const关键字 1.3 动态内存分配 1.4 内联函数和重载函数函数参数缺省值 1.5 类和对象的基本概念与用法1 2.1 类和对象的基本概念2

  5. 【深度学习Deep Learning】资料大全

    最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books  by Yoshua Bengio, Ian Goodfellow and Aaron C ...

  6. OOP复习笔记

    /*OOP相关的代名词不做讲解*/ OOP的三大特征: 封装 - 继承 - 多态 -----------------------------------目录---------------------- ...

  7. 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)

    ##机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)---#####注:机器学习资料[篇目一](https://github.co ...

  8. 强化学习(十四) Actor-Critic

    在强化学习(十三) 策略梯度(Policy Gradient)中,我们讲到了基于策略(Policy Based)的强化学习方法的基本思路,并讨论了蒙特卡罗策略梯度reinforce算法.但是由于该算法 ...

  9. 【LabVIEW技巧】LabVIEW OOP怎么学

    前言 有很多人对LabVIEW OOP存在比较极端的看法,大致分为两类: 1. 绝对否定派认为LabVIEW OOP只不过是LabVIEW为了追求时髦,在面向过程的基础上用簇做了一些特性,实际上完全不 ...

  10. 深度学习Tensorflow相关书籍推荐和PDF下载

    深度学习Tensorflow相关书籍推荐和PDF下载 baihualinxin关注 32018.03.28 10:46:16字数 481阅读 22,673 1.机器学习入门经典<统计学习方法&g ...

随机推荐

  1. Http请求接口

    方法一.使用springboot框间自带的Http的工具类RestTemplate. RestTemplate为springframework中自带的处理Http的工具类. 具体用法 请求的接口 @R ...

  2. Redis学习整理

    目录 1.Redis基本概念 2.Redis的5种基本类型 3.Jedis整合redis操作 4.Springboot整合redis 5.Redis主从复制 5.1.概念 5.2.原理 6.开启主从复 ...

  3. 发布了一个jar包到中央仓库,我的心好累…

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 前几天我在网上冲浪的时候,看见有一个老铁在git上给我提了一个issue: 万万没想到,有一天我写的烂代码居然也 ...

  4. jQuery烟花效果

    1.依赖源码 (function($){$.fn.fireworks=function(options){options=options||{};options.opacity=options.opa ...

  5. Potree 003 基于Potree Desktop创建自定义工程

    1.第三方js库 第三方库js库选择dojo,其官网地址为https://dojotoolkit.org/,git地址为https://github.com/dojo/dojo,demo地址为http ...

  6. win32com操作word 第二集:Application&Documents接口

    本课程<win32com操作word API精讲&项目实战>以视频为主,文字教程为辅,公众号ID:一灯编程. 先回答一个网友私信问题: win32com和微软的word接口文档有什 ...

  7. Python 常用库函数

    压缩 zlib: 兼容gzip的压缩 gzip: 对gzip文件的支持 bz2: 对bzip2压缩的支持 lzma: 使用LZMA算法的压缩 zipfile: 操作ZIP存档 tarfile: 读取t ...

  8. Python基本数据类型,用户交互,格式化输出,运算符,多种赋值方式,多种运算符

    Python基本数据类型,用户交互,格式化输出,运算符,多种赋值方式,多种运算符 一.Python基本数据类型 1.回顾之前学过的基本数据类型 1.整型(整数) 应用场景:年级,班级人数,年份 代码实 ...

  9. 【LeetCode】三数之和+四数之和(双指针)

    之所以放在一起是因为,"四数之和"的解题方法基本与"三数之和"一致 由此我们可以推出n数之和的解法 本质上,我们只是使用双指针的方法降低此类问题的时间复杂度 当 ...

  10. vs2019编写代码时的光标变成了黑块,选中字时替换掉了黑块选中的字的解决方法

    这是由于不小心按到了Insert键 解决方法:再按一下Insert就好了. 因为插入键(insert)是一个状态表示键 当你按倒它时,它会进入一个覆盖模式,在光标位置新输入字会替代原来的字:另一种为插 ...