黑马程序员 面向对象


------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------



一、  面向对象和面向过程思想

OC是面向对象的,C是面向过程的。面向对象和面向过程只是解决问题的两种不同思想

1.     面向对象和面向过程的区别

1)         以用电脑听歌为例子

a)          面向过程

Ø   打开电脑

Ø   播放电脑中的歌曲

Ø   关闭电脑

 

b)         面向对象(不是相亲的“对象”)

Ø   电脑  

²   开机  

²   播放歌曲  

²   关机

 

2)         区别分析

Ø   面向过程关注的是解决问题需要哪些步骤;面向对象关注的是解决问题需要哪些对象

Ø   没有开发经验很难感受到它们的区别,两种思想都能达到解决问题的目的,但是解决思路不一样

 

2.     现实生活中面向对象的例子

Ø   想打电话\发短信 à 找手机,不用分析电话要怎样才能拨通

Ø   去饭店吃饭 à 找服务员,不用分析怎么到厨房炒菜

Ø   汽车坏了 à 找汽车维修工,不用分析修车的步骤

Ø   境界:万物皆对象

 

3.     常用术语

Ø   面向过程 ProcedureOriented

Ø   面向对象 ObjectOriented,简称OO

Ø   面向对象编程 ObjectOriented Programming,简称OOP

 

二、  类和对象的关系

面向对象中有2个非常重要的概念:类和对象

1.     如何创建对象

1)     面向对象解决问题的时候必须有对象,那如何创建对象呢?

 

2)     现实生活的例子:如何创造汽车对象?

a)          需要先有汽车的建造图纸,图纸上描述清楚汽车应该具备的属性和功能(行为)

Ø   属性:轮子数、时速

Ø   功能(行为):跑

b)         然后再根据图纸上的描述生成汽车

c)          每一辆汽车都是对象,都有自己具体的属性值,都是图纸的实例

d)         图纸是抽象的,房子是具体的。图纸是对房子对象的高度概括

 

2.     OC中的面相对象

1)     OC中的相当于图纸,用来描述一类事物。也就是说,要想创建对象,必须先有类

2)     OC利用类来创建对象,对象是类的具体存在

3)     因此,面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象

 

3.     需要设计哪些类,如何设计类

1)     类的设计,只关心3样东西:

Ø   事物名称(类名):人(Person)

Ø   属性:身高(height)、年龄(age)

Ø   行为(功能):跑(run)、打架(fight)

 

2)     一般名词都是类

Ø   坦克发射3颗炮弹轰掉了2架飞机

Ø   小明在公车上牵着一条叼着热狗的狗

 

3)     拥有相同(或者类似)属性和行为的对象都可以抽像出一个类


 

4)     类名、属性、行为练习

Ø   僵尸、炮弹、车、学生、书本

 

5)     哪个对象最清楚这个行为,就把这个行为写到哪个对象中去。打开电脑(开机)这个行为应该是属于电脑的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 面向对象思想是一种将问题抽象为对象,并通过对象的属性和行为来解决问题的思考方式。在Java中,面向对象的设计概念被广泛应用。面向对象的本质是对现实世界的对象进行建模操作,将问题中的实体抽象为对象,并通过定义类来描述对象的属性和行为。\[1\]在Java中,可以使用关键字static来修饰成员变量,使其具有共享的特性。static修饰的成员变量在类加载时就会被加载,并且被类的所有对象共享。\[2\]此外,在Java中还可以使用匿名内部类来创建一个继承了某个类或实现了某个接口的子类匿名对象。这种方式可以在需要使用某个类或接口的地方直接创建对象,并实现其方法。\[3\]总的来说,Java的面向对象特性使得程序开发更加灵活和可扩展,能够更好地解决实际问题。 #### 引用[.reference_title] - *1* [黑马程序员—Java之面向对象](https://blog.csdn.net/lwb0304/article/details/48224447)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [黑马程序员--Java面向对象](https://blog.csdn.net/Sherlock_Li/article/details/48108513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值