封装:

封装的概念:

代码的整合,

封装的层次:

函数的封装: 把一组操作整合在一起
类的封装: 把属性和方法整合在一起
结构的封装:根据操作的性质(模型/控制操作/交互视图)进行结构设计封装

封装的操作:

1.将属性设为private 使属性私有制,只能在本类中被调用
2.提供getter和setter 使字段变成属性
3.基本数据类型的封装类型:
Java中要保证所有的成员都是完全面向对象的,所以java为基本数据类型也设计了一套对象类型(单词一致,首字母大写)
byte – Byte
short-Short
int-Integer
long-Long
float-Float
double-Double
char-Character
boolean-Boolean
实际项目开发中, javabean中的成员(属性)的类型要求用封装类型
赋值时,和基本类型无差别
封装类型和String之间的转换

封装的作用:

从源头控制字段的赋值(setter)
把字段变为只读(只有getter)
把字段的使用限制在类的内部(不加getter和setter,只加private)

拓展的封装思想:
把重要的数据限制在类的内部, 对外提供安全的访问和修改方式

private

只能在本类中被调用
所以对属性的调用或者赋值只能通过封装的get和set方法,或者构造方法

static:

概念:

1.是一个修饰符 , 用来修饰成员字段和成员方法(也可以修饰类)。
2.当静态方法中调用了类中的成员属性,就要求成员属性也必须声明为静态。

作用:

1.被静态修饰的内容只属于类本身,不属于任何对象
2. 产生的原因: 类中存在一类方法,它们和该类的对象并没有直接关系

操作:

在类的外部访问时:类名.静态成员
在类的内部访问时:

有一类方法,随着调用它的对象的不同而产生不同的结果 – 实例方法
有一类方法,不会根据调用对象的不同产生变化,只需要类直接调用 – 静态方法

8种封装类:

byte – Byte
short-Short
int-Integer
long-Long
float-Float
double-Double
char-Character
boolean-Boolean

访问修饰符:

继承:

关键字 extends super

继承后的初始化顺序:
静态信息加载是按照类里面的顺序加载的,与访问修饰符无关

super()关键字:代表父类引用。


通过super调用父类指定的构造方法,必须在子类的构造方法的第一行使用super()
访问构造方法时:this和super 都是要抢占第一行的位置,所以一山不容二虎

重写:

关于instanceof的使用

if (userDao.login(user) instanceof VipUser ) {
//判断是否是vip用户就是判断返回的对象是不是Vipuser类型的实例(userDao.login(user))这个就是调用方法返回值
VipUser login=(VipUser)userDao.login(user);
//是的话可以强转为vipuser类型的对象,即可调用getvipId方法(vipuser对象才可以的)

多态

多态的使用思想

1.先构建父子的类型的体系
2.在使用类型的时候用父类作为高级(兼容性,拓展)
3.只要声明新的子类类型,它和原有操作就完全兼容

使用场景

当代码中的数据类型是高级类型的时候(返回类型/参数类型/声明对象类型),程序会按照实际的引用来执行子类自己的重写方法

多态:满足继承关系,父类引用指向子类对象
编译时多态,运行时多态

向上转型=隐式转型=自动转型-

父类引用指向子类实例。
可以调用子类重写父类的方法以及父类派生的方法,无法调用子类独有方法。
小类转型为大类

概念
多种形态
Java不允许声明重名的字段/方法(如何判断调用了谁?)
从设计的角度,java的设计思想是名字用一样的,提现不同的功能(区分?)

方法的多态

重载:
在一个类中,存在一组方法,它们的方法名一致,但参数各不相同(数量或类型),这一组方法就构成了重载,用单词overload表示
作用: 让一个同名的方法组通过参数就可以完成不同的调用
重载和返回值无关
重写
在继承过程中,如果子类声明了一个方法,和父类的方法声明完全一致,只有操作不同,父类和子类的方法就构成了重写
重写时,方法的声明部分(访问权限/返回类型/参数/方法名)都必须完全一致
用单词override表示,也被叫做覆盖
作用: 让子类和父类具有相同的行为,但,执行方式却不同,为对象的多态准备
@Override 重写的注解,作用是检查是否符合重写格式

对象的多态

上转型对象
声明为高级类型(父类),传递引用的时候赋值为低级类型(子类), 声明对象就是上转型对象
上转型对象在执行到有重写的方法时,会执行子类
上转型对象可以调用父类中声明的方法(继承)
上转型对象不可以调用子类独有的方法
下转型对象
声明为低级类型(子类),传递引用的时候赋值为高级类型(父类)
装箱和拆箱
调用方法的时候,需要用强转还原原本类型(必须和原类型一致)

向下转型=强制类型转换

子类引用指向父类对象,此处必须进行强转,可以调用子类独有的方法。
Cat temp=(Cat)two;//这里就是子类引用指向父类对象
Instanceof 运算符:判定向下转型

面向对象的三大特征:封装 继承 多态相关推荐

  1. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

  2. Python学习笔记④——类、面向对象的三大特征 [封装+继承+多态]

    ✅ Blogger Learns Python is for learning the "Deep Learning". 文章目录 一.面向对象编程的简介 二.类与对象 -- 基础 ...

  3. OC面向对象的三大特征(封装 继承 多态)习题2 复合

    复合:一个类中有一个成员变量是另外一个类的对象. 比如我现在要制作一台电脑,电脑需要CPU,显示器,鼠标和键盘等.这些东西的研发都是很复杂的过程.如果现在有成型的CPU等组件,就可以直接用这些组件攒一 ...

  4. Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态

    Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...

  5. 三大特征 封装 继承 多态

    ''' 1.面向对象与面向过程 面向过程:核心过程二字,过程即解决问题的步骤,就是先干什么后干什么 基于该思想写程序就好比在这是一条流水线,是一种机械式的思维方式 优点:复杂的过程流程化 缺点:扩展性 ...

  6. 面向对象的四大特征 封装 继承 多态 抽象

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

  7. java的知识点11——面向对象的三大特征之一继承、instanceof 运算符、方法的重写override、Object类基本特性、toString方法

    面向对象的三大特征:继承.封装.多态 继承的实现 继承让我们更加容易实现类的扩展.子类是父类的扩展 使用extends实现继承 package cn.sxt;public class Test {pu ...

  8. Java面向对象三大特性(封装继承多态)解释及案例

    文章目录 包 包基本语法 命名规则 命名规范 导入包实例 访问修饰符 面向对象编程-封装 面向对象编程-继承 super关键词 super和this的比较 方法重写/覆盖 (override) 注意事 ...

  9. Python全栈开发——面向对象的三大特性(继承 多态 封装)

    1.继承 1.两层意思 改变和扩展(详细看随笔继承和组合) 2.多态(体现在运行时的状态) 1.不同的类可以调用相同的方法,得到不同的结果 2.实际上是继承的一种体现机制 class H2o:def ...

  10. 深入理解Java面向对象三大特性 封装 继承 多态

    1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...

最新文章

  1. xgboost与coo_matrix
  2. [数学]点、线、面分割问题
  3. ado jet 反复连接 未指定的错误_为什么驱动器的PE端要和变压器中性点有可靠连接?...
  4. Java本地缓存CaffeineCache集成
  5. springcloud使用zipkin和rabbitmq进行服务链路追踪
  6. 第六章—条件语句和循环
  7. apt-get 很有用的一个命令
  8. Python二级题库答案纠正
  9. 2020广西电子设计竞赛题目
  10. python为什么被称为胶水语言_为什么说python是胶水语言
  11. FastReport VCL开发人员手册:自定义报表组件编写
  12. 170816 Ubuntu-Nvidia CUDA+Driver+cuDNN installation-Titan Xp
  13. od机考题目-机器人走迷宫
  14. 水果店圈子:怎么做好水果店线上营销方案,水果店线上如何做
  15. Python量化教程:量化风险
  16. PBRT_V2 总结记录 81 Importance Sampling
  17. AICodeHelper - AI编程助手
  18. 程序员职业资格软考——软考,你不想软就得考 (值得一看的总结)
  19. rs485转rs232串口转换器常见的故障剖析
  20. 手机归属地免费接口查询

热门文章

  1. FastCopy包含和排除文件夹处理
  2. 视美泰IOT-3288A安卓主板刷机方法
  3. Python爬虫新浪新闻网【使用selenium获取JS加载的动态数据】
  4. 字母使用频率统计c 语言编程,C语言统计字母使用频率
  5. mush上线,一篇关于技术的博客,欢迎关注!
  6. 《0day安全:软件漏洞分析技术第二版》
  7. UILabel文字重叠
  8. 湘潭不明原因肺炎病例样本将送WHO
  9. 全网通各个版本的区别
  10. python怎么取小数_python取小数点