ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaSE-Day02-面向对象编程

2022-08-27 14:30:42  阅读:242  来源: 互联网

标签:调用 对象 Day02 构造 面向对象编程 子类 new JavaSE 父类


面向对象编程

OOP

面向对象和面向过程

对于描述复杂的事务,从宏观上需要面向对象的思路,具体到微观,仍然需要面向过程的思路

  • 面向过程——第一步做什么,第二部做什么......
  • 面向对象——分类的思维模式

类和对象的关系

  • 类——是一种抽象的数据类型,它是对某一类事物的整体描述或定义,不能代表某一个具体的事物
  • 对象——是抽象概念的具体实例,能够体现出特点、展现出功能的是具体的实例,而不是抽象的概念
  • 使用new()关键字创建对象
    使用new关键字创建的时候,除了分配内存空间外,还会给创建好的对象进行默认的初始化,以及对类中构造器的调用

类与对象小结

  1. 类是一个模板(抽象的),对象是一个具体的实例
  2. 对象的引用
    对象是通过引用来操作的(栈--->堆:引用就是指向对象的一个地址)
  3. 对象的创建和使用
    • 必须使用new关键字创建对象
    • 调用对象的属性和方法通过点“.”
    • 静态的属性(属性)
    • 动态的方法(方法)

构造器详解

  • 什么是构造器?
    构造器通常也叫构造方法、构造函数,是在创建对象时必须调用的
    当你new一个对象时,就会调用构造器。构造器格式如下:
    [修饰符,比如public] 类名 (参数列表,可以没有参数){ //这里不能有return}

  • 构造器的特点
    一个类即使什么都不写,也会存在一个方法

    1. 必须和类的名字相同
    2. 必须没有返回类型,也不能写void
  • 构造器的作用

    1. 使用new关键字,必须要有构造器(new本质在调用构造器)
    2. 用来初始化值(给实例化的对象赋一个初始值)
  • 注意事项
    一旦定义了有参构造,无参构造就必须显示定义(写出来)

创建对象内存分析

  • 方法区:类和方法和常量池
    • 静态方法区:static 和类一起加载(所有对象想调用它都可以从堆里直接调)
  • 栈:存放调用的方法和引用变量名(new出来的对象)
  • 堆:引用变量名指向(相当于内容)

封装

属性私有,get/set

  • 高内聚——类的内部数据操作细节自己完成,不允许外部干涉
  • 低耦合——尽暴露少量的方法给外部使用
  • 数据的隐藏——通常应禁止直接访问一个对象中数据的实际表示,而应该通过操作接口来访问

继承

  • 继承的本质是堆某一批类的抽象,从而实现对现实世界更好的建模(对类再抽象)
  • extends(意思是扩展),子类是父类的扩展
  • Java中只有单继承,没有多继承
  • 继承是类和类之间的一种关系。类和类之间的关系还有依赖、组合、聚合等
  • 子类(派生类)继承父类(基类),使用关键字extends来表示
  • 子类和父类的关系可看作“子类 is a 父类”(eg:学生是一个人)
  • 子类继承父类,就会拥有父类的全部方法
  • 在Java中,所有的类都默认直接或间接继承Object

Super详解

  • super是调用父类的构造方法,必须在构造方法的第一个
  • 只能出现在子类的方法或者构造方法中
  • super和this不能同时调用构造方法
    • this:调用者自身这个对象,没有继承也可以使用,调用本类的构造
    • super:代表父类对象的应用,只有在继承条件下才可以使用,调用父类的构造

方法重写

  1. 方法名必须相同
  2. 参数列表必须相同
  3. 修饰符范围可以扩大,但不能缩小
  4. 抛出的异常范围可以被缩小但不能扩大
  • 重写都是方法的重写,和属性无关
  • 父类的引用指向子类
  • 静态方法的调用只和定义的数据类型有关
    非静态可以重写

多态

标签:调用,对象,Day02,构造,面向对象编程,子类,new,JavaSE,父类
来源: https://www.cnblogs.com/isdsy/p/16630507.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有