【Java】(十一)面向对象编程:特点、方法调用、创建对象

0 常用IDEA快捷键

快捷键含义
“new 类名()"+alt+enter引入局部变量(实例化对象)
(鼠标放在类里)+alt+insert生成,可选选择“生成构造器”
(鼠标放在类里)ctrl+H展开子父类关系
双击shift搜索方法
(选中代码)Ctrl+Alt+T包围方法(try-catch-finally语句)

1 面向对象编程(OOP)

面向对象编程(Object-Oriented Programming,OOP)的本质就是:以类的方式组织代码,以对象的组织(封装)数据。

1.1 类和对象的关系

对象
一种抽象的数据类型抽象概念的具体实例
某一类具体的事物应该具备的特点和行为具体的事物
实例张三

从认识论角度考虑是先有对象后有类。【先有物品,再分类】
从代码运行角度考虑是先有类后有对象。类是对象的模板。【先有模板,再生产】

1.2 面向过程和面向对象

面向过程面向对象
思想流水线。按照步骤,一步步走物理类聚。先分类,分别完成每个类
应用适合处理较为简单的问题适合较为复杂、多人协作的问题

对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。
但是,具体到微观操作,仍然需要面向过程的思路去处理。

1.3 方法的调用

参考OOP的思想——以类的方式组织代码,之后都会用一个主类运行main方法,并在目录下建包存放类。
在这里插入图片描述

方法就类似之前学的函数,通常定义在类内。
方法的定义:修饰符 返回类型 方法名(参数列表){ 方法体 }
修饰符四种类型,优先级由高到低:public、protected、default、private

方法的调用/使用方式:

  1. 静态方法(static)。和类一起存在,可以直接使用。
  2. 非静态方法。和对象一起存在,先实例化后才能使用非静态方法。
  3. 形参和实参【形参=参数列表,实参=调用方法时传递进去的参数】
  4. 值传递和引用传递【值传递不改变原变量,引用传递可以返回】
    类的属性(参数)是引用传递。【像传递数组名,改变数组元素】
  5. this关键字,指代类本身。在类方法中使用this.属性名访问类的属性。实例化以后才可以使用this关键字,即不可用在静态方法中。
    在这里插入图片描述

1.4 创建对象和初始化(构造器)

使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用。new 类名()实际上是调用了类的构造器。

构造器:

  1. 特点:必须和类的名字相同:必须没有返回类型,也不能写void。
  2. 用途:类中的构造器也称为构造方法,一般在方法中对类的属性设置初始值,或者输出属性值等等。
  3. 优点:属性默认私有,而公有的方法可以被对象调用。
  4. 一个类什么也不写也会有一个默认的构造方法(隐式无参构造)。如果要显示定义有参构造(方法重载),必须同时显式定义无参构造(可以什么都不写)。
  5. 构造器快捷键:(鼠标放在类里面)alt+insert
    在这里插入图片描述
    在这里插入图片描述
    【这个好像和版本有区别,我的IDEA只能有】

1.5 创建对象和内存的关系

  • 栈由操作系统自动分配释放 ,用于存放函数的参数值、局部变量等,其操作方式类似于数据结构中的栈【后进先出】。
  • 堆由开发人员分配和释放, 若开发人员不释放,程序结束时由 OS 回收,分配方式类似于链表。

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值