Java--面向对象:封装、继承、多态

一:什么面向对象

面向对象是一种编程思想,就是将我们的程序模块化,对象化;通过这种思想可以把生活中的复杂事情变得简单化,从原来的执行者变成了指挥者,面向对象是基于面向过程而言的。
以前的编程是面向过程的,强调的是过程 !例如:1、打开冰箱 2、把大象放进去 3、关上冰箱
而现在面向对象强调的是结果! 例如:饿了,去平台点餐,这个动作就是面向对象

1.面向对象的三大特征:

  1. 封装性:把我们需要的对象的属性和方法封装成一个"类";<1、 提高安全性2、 提高重用性>
    (1)、 计算机语言是用来描述现实世界事物的。属性+行为
    (2)、 那怎么通过java语言描述呢?通过类来描述事物,把事物的属性当做成员变量,把行为当做成员方法。
    分析手机事物:
    属性:颜色,尺寸,品牌,价格。。。
    方法:打电话,发短信,听音乐。。。。
    类:手机类,抽取相同的属性和行为
    对象:可以按照模板生产很多个手机,比如1号手机对象,包含特有的成员变量和成员方法

  2. 继承性:继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
    特点:
    (1)、 使用extends关键字
    (2)、 java只支持单继承, 相当于子类把父类的功能复制了一份
    (3)、 继承可以传递(爷爷,儿子,孙子的关系)
    (4)、 继承多用于功能的修改,子类可以拥有父类的功能的同时,进行功能拓展
    (5)、 不能继承父类的私有成员

  3. 多态:多态指同一个实体同时具有多种形式。它是面向对象的一个重要特征。
    特点:
    (1)、 多态的前提是继承
    (2)、 要有方法的重写
    (3)、 父类引用指向子类对象,如:Animal a = new Dog(); – 小到大,向上转型
    (4)、 多态中,编译看左边,运行看右边

对象在内存中的存储:
1、 一般来讲局部变量存在栈中,方法执行完毕内存就被释放
2、 对象(new出来的东西)存在堆中,对象不再被使用时,内存才会被释放
3、 每个堆内存的元素都有地址值
4、 对象中的属性都是有默认值的

	1、 在栈内存中,创建一个引用变量p,持有对象的地址值
	2、 在堆内存中,创建Person对象,并且开辟变量的空间,完成初始化
	3、 给堆内存中的元素,分配一个唯一标志,地址值。交给p去保存。
	4、 p.name=”lisi”;p.age=20;就去堆内存中找唯一的地址值,找到Person对象,并对其属	性进行修改赋值。
	5、 p.eat();就去堆内存中找唯一的地址值,找到Person对象,执行Person对象的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值