OOP是Java的核心编程思想,整套Java的精髓就是OPP思想的实现

一、封装

定义:封装就是把对象的属性(状态)和⽅法(⾏为)结合在⼀起,并尽可能隐蔽对象的内部细节,成为⼀个不可分割的独⽴单位(即对象),对外形成⼀个边界,只保留有限的对外接⼝使之与外部发⽣联系。

实现方法:属性私有化,被private修饰,对外只提供set/get方法

二、继承

继承通过extends关键字来实现。修饰符如果是public,则该类在整个项目中可见;若无public修饰符,则该类只在当前包可见,不可以使用private和protected修饰类。

java中修饰符分别为public、protect、default、private,他们这就说明了面向对象的封装性,所以我们要适用他们尽可能的让权限降到最低,从而安全性提高。

方法重载OverLoad

1.子类中出现和父类中方法声明相同的方法(方法名相同,参数列表不同)

2. 无需继承条件,当前类中

3. 对象可以选择性的调用同一方法名下的不同参数方法

三、多态

多态是具有多种形态的能力的特征。更专业的说法:同一个实现接口,使用不同的实例而执行不同的操作。

1. 多态是在继承或实现的基础上实现的

2. 父类引用指向子类对象

3. 如果子类覆盖了父类中的属性或方法,调用子类覆盖后的属性或方法

父类 引用 = new 子类对象

子类对象调用就是子类对象自己的方法,体现了子类的特殊性,但前提是继承或实现

什么是Java面向对象OOP相关推荐

  1. java基础(三):java面向对象OOP

    java面向对象OOP 基本概念 面向过程与面向对象 面向过程:关注代码实现的细节.复用性 面向对象:先把每个过程的代码实现细节整合到对象中,只要找到对象就能拥有对象身上所有的功能. 面向对象基于面向 ...

  2. java面向对象oop阶段总结

    名词解释 笔记0927 *对象数组起始位置可以初始化几个元素 // 1.功能五 判断队名是否重复2.给队起名:3.队伍建队用flag循环判断是否队伍已满: 2.功能六 遍历二维数组子元素的方法 *3. ...

  3. Java面向对象(OOP)--面向过程 面向对象 OOP详解

    1. 面向过程 & 面向对象 语言的进化发展跟生物的进化发展其实是一回事,都是"物以类聚".相近的感光细胞聚到一起变成了我们的眼睛,相近的嗅觉细胞聚到一起变成了我们的鼻子. ...

  4. Java面向对象(OOP)入门

    一.面向对象概述 Java是面向对象思想的高级计算机编程语言. 面向对象(简称:OOP)是一种以事物为中心的编程思想,是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件 ...

  5. JAVA面向对象OOP→构造方法、this、访问修饰符、static、方法重载、JVM内存分配、GC垃圾回收、包、样例代码

    构造方法 构造方法(constructor):与类名同名,没有返回值 其初始化作用:一为属性分配内存空间.二为属性赋值 构造方法不能自己调用,只能通过new实例化对象调用 隐式构造方法:对象实例化时编 ...

  6. JAVA面向对象OOP多态→抽象类abstract、接口interface实现implement、final不变修饰符、样例代码

    抽象类 抽象类-接口关系示意图 如果一个类实现接口,就要把接口中所有的抽象方法都重写. A接口继承另一个B接口时,类要重写AB两个接口的方法 如果只是实现部分接口,可以用抽象类实现. 抽象类与接口不同 ...

  7. JAVA面向对象OOP→继承extends、构造方法super、方法重写override、样例代码

    继承(extends扩展) 一个子类只有一个父类,单一继承,可以在不同包内,不同包要导入import 基类(Object)如果一个类不继承任何类,默认就自动继承Object类 子类可以对父类的属性不用 ...

  8. JAVA面向对象OOP、类、属性、方法、样例代码

    类由属性和方法组成.jdk类接近八千个 成员变量 一个类中的任何方法,都可以使用同一个属性. 属性可以被类中的所有方法访问,类中的所有方法都可以改变属性值. 为区分,类名默认首字母大写,方法名默认首字 ...

  9. Java面向对象(OOP)--内部类(匿名内部类)

    1. 匿名内部类 没有(或者不需要)命名来初始化类,就称为匿名内部类. 在这四种内部类中,以后的工作可能遇到最多的是匿名内部类,所以说匿名内部类是最常用的一种内部类. 什么是匿名对象? 如果一个对象只 ...

最新文章

  1. leetcode 203 Remove Linked List Elements
  2. Winform开发框架之通用人员信息管理实现代码介绍
  3. 配置ASA 7.x to Router LAN−to−LAN IPsec Tunnel
  4. Jmeter加Fiddler对web项目测试
  5. pycharm报错(Non-zero exit code (2))与手动安装报错
  6. clocks_per_sec 时间不正确_测血糖的正确做法:这4步一定别搞错了
  7. 7-34 红色警报 (10 分)(结构体并查集)
  8. vs2019怎么调整字体大小_每年至少十万考生涂错答题卡,是时候讨论一下最新版答题卡怎么用了...
  9. python 高斯过程_【Scikit-Learn 中文文档】高斯过程 - 监督学习 - 用户指南 | ApacheCN...
  10. 不要再拿“学历不重要”的谎言,骗正在“入海”的95后
  11. 第一个被赋予公明身份的机器人_第一个获得公民身份的机器人,放话“毁灭人类”,下场如何?...
  12. 大数据(一)数据采集 3
  13. Java常用缓存组件和方法
  14. Learning Disentangled Label Representations for Multi-label Classification
  15. 专业高科技展-2019智能锁智能家居博览会
  16. Linux中断申请之request_threaded_irq
  17. WebAssembly中级——网络连接websocket
  18. Arduino Uno 开发简介
  19. cocos2d-x for wp 之Box2D游戏-是男人就坚持60M(一)
  20. 腾讯微博项目 之 获取主页时间线(未写完)

热门文章

  1. UGC、PGC、OGC的概念
  2. DataStream API【1】
  3. 烟雨PHP图床程序源码
  4. 服务器被劫持,恶意注入js
  5. python:输入一个整数正序各个输出,并判断输出位数
  6. java jtextarea 监听文本_Java Swing JTextArea文本区域的实现示例
  7. Linux 下的 FFmpeg 安装编译环境配置总结
  8. Android中Alarm的机制
  9. 区块链技术再出新玩法——解决跨境支付问题
  10. 【网页制作】制作静态钟表