04_面向对象概述

一、面向对象思想的简单概述

面向对象是Java基础学习过程中重点的的一部分。从大体上来说,面向对象思想就是基于面向过程的思想,是软件开发过程中使用的一种思维方式。举两个有趣的小实例来简单解释说明一下。

举例:

A:比如洗袜子过程,如果要完成这一整件事情,那么我们的过程是:

 

面向过程:脱了-->泡一泡-->扭一扭-->搓一搓-->漂洗-->晾干

 

我们如果要偷懒,想简化过程,此时我们可以---------------

找女朋友洗袜子:

面向对象:说两句好话

 

 

B:比如想吃煎饼果子,如果要完成这一整件事情,那么我们的过程是:

 

面向过程:上网搜一下,哪家强?-->买家伙什儿-->买材料-->摊煎饼-->找个人 试吃-->你就可以吃了

 

而现实生活中,我们实际上的做法是---------------

找摊煎饼大妈:

面向对象:-->掏钱-->吃。。。。。

 

 

面向过程:强调功能行为,关注完成的过程

 

面向对象:将功能封装进对象,强调具备了功能的对象,不关注过程

 

 

总结一下面向对象思想的特点:

 

1,是一种更符合我们思想习惯的思想--懒人的思想

 

2,可以将复杂的事情简单化

3,角色发生了转换,执行者-->指挥者 

 

 

面向对象完成需求:

a ,明确开发功能需求。

b ,查找具有该功能的类。

   c ,如果不存在满足功能的类,则定义这样的类。

   d ,创建该类对象,使用对象完成功能。

 

 

二、类与对象

我们学习编程语言,就是为了模拟现实世界的事物,实现信息化,实际生活中,我们是如何描述现实世界事物的呢?

比如描述一美女:

属性脸 ,眼镜 ,腿 ,腰  -->天生的  

功能爱旅游,爱音乐琴棋书画 -->后天的 

再比如描述一手机:

手机:

属性:像素,大小,价格,形状,内存,品牌,型号   iPhone6s

功能:玩游戏,拍照,打电话,发信息,看电影,上网,

 

Java中最基本描述事物的单位是类分类  ),Java中用class描述事物也是如此:

class 分类,分门别类物以类聚 

定义类就是描述一类事物

成员变量 就是事物的属性

成员方法 就是事物的行为

定义类其实就是定义类的成员(成员变量和成员方法)

 

 

如何java定义一个学生类呢?

[java]  view plain copy
  1. package cn.itcast;  
  2.    
  3. /* 
  4.  定义学生类  
  5.  分析: 
  6.  学生 : 
  7.  属性: 姓名,年龄,性别,学号 (名词) 
  8.  功能: 学习,吃饭,睡觉,做作业(动词) 
  9. 实现: 
  10.  */  
  11. class Student {  
  12. // 成员变量  
  13. // 姓名  
  14. String name;  
  15. // 年龄  
  16. int age;  
  17. // 性别  
  18. String sex;  
  19. // 学号  
  20. String studyNum;  
  21. // 成员方法 注意:别加 static  
  22. // 学习  
  23. public void study() {  
  24. System.out.println("学习");  
  25. }  
  26. // 吃饭  
  27. public void eat() {  
  28. System.out.println("吃饭");  
  29. }  
  30. // 睡觉  
  31. public void sleep() {  
  32. System.out.println("睡觉");  
  33. }  
  34. // 做作业  
  35. public void doHomework() {  
  36. System.out.println("做作业");  
  37. }  
  38.    
  39. }  
  40. /* 
  41.  * 一个文件里面写两个类,文件名字必须和测试类名字一致 使用成员 : 
  42.  *  
  43.  * 成员变量: 对象名.成员变量名 
  44.  *  
  45.  * 成员方法: 对象名.成员方法名(方法的调用) 
  46.  */  

 

 

类和对象的关系:

1,类是抽象概念,对象是类的具体实例。

2,一个类可以有多个对象。一个对象只属于一个类

 

对象创建格式:

数据类型 变量名(对象名) = new 数据类型(参数);

 

对象的使用:

1,成员变量的访问:对象名.属性名

2,成员函数的调用:对象名.函数名(参数)

 

我们做一个手机类,和一个内存图来帮助理解

[java]  view plain copy
  1. class PhoneTest {  
  2.    
  3. public static void main(String[] args) {  
  4. // 创建对象  
  5. Phone p = new Phone();  
  6. // 使用成员  
  7. p.brand = "苹果";  
  8. // 型号  
  9. p.type = "5s";  
  10. // 价格  
  11. p.price = 2999;  
  12. // 颜色  
  13. p.color = "土豪金";  
  14. System.out.println("---------------------");  
  15. // 方法  
  16. p.call();  
  17. p.sendMsg("妈妈喊你回家吃饭,妈妈喊你回家吃饭,妈妈喊你回家吃饭");  
  18. p.playApp();  
  19.    
  20. }  
  21. }  
  22.    
  23. // 定义手机类 --描述手机  
  24. class Phone {  
  25.    
  26. // 成员变量  
  27. // 牌子  
  28. String brand;  
  29. // 型号  
  30. String type;  
  31. // 价格  
  32. int price;  
  33. // 颜色  
  34. String color;  
  35. // num  
  36. int num = 20// 成员变量  
  37.    
  38. // 成员方法  
  39.    
  40. // 打电话  
  41. public void call() {  
  42. int num = 10// 局部变量  
  43. System.out.println("打电话" + num);  
  44. }  
  45.    
  46. // 发信息  
  47. public void sendMsg(String text) {  
  48.    
  49. System.out.println("发信息:" + text);  
  50. }  
  51.    
  52. // 玩app  
  53. public void playApp() {  
  54. System.out.println("玩微信,玩陌陌,玩比邻");  
  55. }  
  56. }  

 

一个对象内存图:


两个对象内存图:



三个对象内存图:


内存位置:

对象由new关键字创建,实体存在于堆栈内存中

任何数据均可以定义成类,创建对象,属于引用类型。

 

 

 

三、成员变量和局部变量的区别

1,在类中的位置不同

成员变量 类中方法外

局部变量 方法内或者方法声明上

2,在内存中的位置不同

成员变量 堆内存

局部变量 栈内存

3,生命周期不同

成员变量 随着对象的存在而存在,随着对象的消失而消失

局部变量 随着方法的调用而存在,随着方法的调用完毕而消失

4,初始化值不同

成员变量 有默认的初始化值

局部变量 没有默认的初始化值,必须先定义,赋值,才能使用。

 

 

四、匿名对象

定义:匿名对象是对象的简化形式,即没有名字直接创建的对象。

 

匿名对象的使用:

对象方法只调用一次时。

作为实际参数传递时。

作为返回值返回时。

 

 

五、面向对象特征

封装(encapsulation)

继承(inheritance)

多态(polymorphism)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值