面向对象基础

本文深入探讨了面向对象编程的概念,通过生活场景解释面向对象与面向过程的区别。介绍了面向对象的三大特性——封装、继承和多态,并详细阐述了类与对象的关系,包括属性和方法。此外,还讲解了构造方法、方法重载以及堆栈内存管理。面向对象编程通过封装复杂性,简化代码复用,是大型项目中不可或缺的设计思想。
摘要由CSDN通过智能技术生成

面向对象基础

+例子
生活场景:一日三餐。
面向过程: 自己需要做买菜 - 洗菜 - 做饭 - 吃饭 - 洗碗 得过程
面向对象: 请一个保姆,每天等吃
	场景升级:
	你是富豪,有一个占地3000亩得庄园,每日得衣食住行
	面向过程:自己重复做饭过程,重复打扫过程。。。
	面向对象:聘请保姆,园丁,司机。。。
总结: 面对过程编程在大的程序里面很繁琐,面对对象编程我们把方法都封装起来,用得时候直接调用,减少了很多重复得代码
三大思想三大特征
OOA:面向对象分析封装性:所有内容对外都不可见
OOD:面向对象设计继承性:将其他得功能继承下来继续发展
OOP:面向对象程序多态性:方法的重载本身就是一种多态的体现

类与对象

  • 类由属性和方法构成:
    • 属性:相当于人得一个个特征,例如:名字,年龄
    • 方法:相当于人的一个个行为,例如:吃饭,睡觉
  • 类必须通过对象得调用才可以使用

堆栈

在这里插入图片描述

  • 栈里面放对象名称和基础数据类型, 堆里面放类的对象 new clasee();

  • Book b1 b1为对象名(默认值null) = new Book() 为对象(在堆中开创空间eg:0x123) ,进行赋值

  • 同时 Book的方法加载到方法区中。

  • b1.name = "金苹果" b1操作地址0x123,令名字和ifo变量赋值。

  • Book b2 = new Book(); b2 也进行操作,new book()新开一个内存

  • b2操作地址0x124,进行赋值

  • 随后 b2 = b1 将b1 的地址赋值给b2

  • 在这里插入图片描述

  • 此时b2 = 0x123 ,因为0x124 地址块没有被引用,所以当GC发现的时候会被自动回收内存空间

  • b2.name = "铜苹果" b2 操作地址0x123,将name 改成铜苹果,

  • 此时利用b1调用方法,输出的也是铜苹果。

构造方法

  • 每个类中系统都会自动构造一个无参无操作的构造方法(当你自己构造了一个后,系统便不会自动生成无参构造)

在这里插入图片描述

  • 无参构造方法,在 new Person2(); 的时候就被调用了。

方法的重载

 (同名,参数不同(可以是位子顺序不同))

在这里插入图片描述

  • 当方法功能一致时(都是sum) 就无法区别名字,可以用方法重载。
+		构成重载:
+		1、方法名字相同(与返回值类型无关)
+		2、参数列表的长度、类型或者顺序不同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值