美文网首页
面向对象

面向对象

作者: YQY_苑 | 来源:发表于2019-08-11 12:21 被阅读0次

什么是对象

  • 对象就是数据和行为的集合(主观能动性)
  • 一切用于new运算符创建爱你出来的都是对象
    • new Object()
    • 特例:
      • new Integer()【会自动装箱构建一个对象】
      • new String() 【从常量池中获取对象】
      • 特例:new Object[]

对象是由什么组成的?

  • 所有的对象都在“堆”上分配
    • 每个对象都包含⾃⼰的数据(成员变量)
    • 原⽣类型的成员
    • 引⽤类型的成员
image.png

对象的构造函数

  • 新建对象的唯⼀途径
    • 在堆上分配空间
    • 执⾏必要的初始化⼯作
    • 执⾏构造器函数
  • 如果没有任何构造器,编译器会偷偷摸摸帮你⽣成⼀个

对象的⽅法

  • 数据是“有什么”
  • ⽅法是“做什么”

⽅法的重载(overload)

重载(overload)与重写/覆盖(override)

重载(overload)

如何区分同名的不同重载⽅法?

  • 根据类型

根据类型

方法名相同,但参数表不一样。

void pringName(){
  
}

void pringName(String s){
  
}

void pringName(int i){
  
}

那隐式转换呢?

*  类型最匹配优先
* 如果能匹配多个呢?例如:null【使用强制类型转换】

那隐式转换呢??

类型最匹配优先【先按顺序,后按类型】
如果能匹配多个呢?例如:null【使用强制类型转换】

image.png
Number承继自Integer,低一层。故Interger和Object处于同一地位,与null距离相等
public static void main(String[] args) throws IOException {
        Interger a = 1;
        pringName(a) // 由于a是定义为Interger,故先匹配 2
    }

void pringName(int i){  // 1
  
}

void pringName(Interger i){   // 2
  
}

void pringName(Number i){   // 3
  
}
image.png

能仅仅重载返回值么?

不能,因为方法调用可以忽略返回值,所以仅重载返回值时方法用意产生冲突

image.png

如何为⽅法提供默认值?

image.png
  • 但是你可以通过重载曲线救国


    image.png

构造器的重载

this()

对象的初始化

  • 必要的初始化⼯作
    • 静态成员的初始化
    • 静态初始化块
    • 成员的初始化
    • 初始化块
  • 继续断点调试⼤法检查初始化顺序

对象的⽣命周期

新建对象,使用,摧毁回收

如果⼀直新建对象,内存会不会爆?

可能不会

那对象的内存什么时候被回收?

  • 谁也不知道

对象的内存如何被回收?

  • 不⽤管,垃圾回收器帮你⼲

JVM怎么知道哪个对象没有被⽤到?

  • 通过引⽤链(GC Roots),可达的数据都是活对象,除此之外都是死对象,可以回收

相关文章

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • 总结.Net基础知识——献给即将入坑的同行们(一期)

    什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

  • 20-OOP类与对象

    面向对象 Object Oriented 学习面向对象:XXOO 面向对象的学习: 面向过程和面向对象的区别: 面...

  • JavaScript面向对象核心知识归纳

    面向对象 概念 面向对象就是使用对象。面向对象开发就是使用对象开发。 面向过程就是用过程的方式进行开发。面向对象是...

  • 面向对象(未完成)

    面向对象 标签(空格分隔): 面向对象 第一章:面向对象(上) 什么叫面向对象 面向过程、面向对象、两者区别 构造...

  • 面向对象:创建对象&继承

    博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...

  • 面向对象

    了解什么是面向对象 首先,我们学习面向对象,要了解什么是面向对象,面向对象的重要概念:类,对象。 面向对象提出的这...

  • 面向对象的三大基本特征和五大设计原则

    1、面向对象概念 1.1、理解面向对象 面向对象是相对面向过程而言; 面向对象和面向过程都是一种思想; 面向过程:...

网友评论

      本文标题:面向对象

      本文链接:https://www.haomeiwen.com/subject/jdqfjctx.html