Day05-【Java SE基础】面向对象

本文介绍了面向对象编程的概念,包括面向过程与面向对象的区别,对象在内存中的执行原理,this关键字的应用,构造器的作用,封装原则,以及实体类JavaBean的设计。还讨论了成员变量和局部变量的区别,强调了Java的自动垃圾回收机制。
摘要由CSDN通过智能技术生成

一、面向对象

面向方法的编程也叫面向过程编程:开发一个一个的方法,有数据要处理了,我们就调方法来处理。
面向对象编程:开发一个一个的对象来处理数据,把数据交给对象,再调用对象的方法来完成对数据的处理。
面向对象编程的好处:万物皆对象!符合人类思维习惯,变成更简单、更直观!
程序中的对象:对象本质上是一种特殊的数据结构。可以把每个对象看作一个表,每个对象的表的内容属性不一样,调用对象的时候就调对应的表的内容即可。
在这里插入图片描述
class也就是类,也称为对象的设计图(或者对象的模板),其实可以看作一张表的模板。
在这里插入图片描述
每new一个对象,就相当于把这张表发给了每个具体的人,让其按照模板填写表格而已,模板相同,数据不同。
在这里插入图片描述
在这里插入图片描述

1. 多个对象在计算机中的执行原理

  • 运行test类中的main函数,此时test类会被加载到方法区
  • main函数进入到栈内存
  • 第一行new学生对象,此时student类及其方法会被加载到方法区
  • 然后再栈内存中生成s1对象变量,在堆内存中生成一个存储空间,存储各个对应的属性以及指向类地址的属性,此时自定义的属性值为默认赋值,将该空间的地址赋值给s1,即s1指向堆内存中的空间。
  • 然后修改属性,根据地址找到相应的属性修改
  • 调用对应对象的函数时,对象会通过存储的类地址寻找方法区中的方法调用。

在这里插入图片描述
在这里插入图片描述
注意:当堆内存中的对象,没有被任何变量引用(指向)时,就会被判定为内存中的“垃圾”,但是jvm会有自动回收机制,会自动回收释放空间的。Java存在自动垃圾回收机制,会自动清楚掉垃圾对象,程序员不用操心。

2. this关键字

this就是一个变量,可以用在方法中,来拿到当前对象,输出为对象地址。
this主要用来解决:变量名称冲突问题的。
在这里插入图片描述

3. 构造器

构造器的常见应用场景:创建对象时,同时完成对对象成员变量(属性)的初始化赋值。
构造器的注意事项:

  • 类在设计时,如果不写构造器,Java是会为类自动生成一个无参构造器的
  • 一旦定义了有参数构造器,Java就不会帮我们的类自动生成无参构造器了,此时就建议自己手写一个无参数构造器出来了
    在这里插入图片描述
    右键项目名称 ->open in ->explorer跳出工程文件,打开out,打开项目名称,模块文件,对应的包,点constructor 将class文件拖入idea 并accpet反编译,可以看到无参构造器的。

4. 封装

面向对象的三大特征:封装、继承、多态
封装:就是用类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去。
封装的设计规范:合理隐藏、合理暴露

  • 合理安全地暴露属性和方法
    使用private隐藏属性,使用alt+insert选择对应的属性自动创建get和set方法。还有构造器

5. 实体类JavaBean

写了有参构造器,需要生成无参构造器,alt+insert选择构造器,select属性 或者 none即可自动生成构造器。实体类只是保存数据的java类。只有setget构造器方法,无其他方法
拆分类,实体类只负责数据存取,而对数据的处理交给其他类来完成,以实现数据和数据业务处理相分离

在这里插入图片描述

6. 成员变量、局部变量的区别

在这里插入图片描述

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jingwei1205

宝贝儿 施舍施舍吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值