面向对象一点通内附学习视频

面向对象大纲

面向过程适合简单、不需要协作的事务,重点关注如何执行。

但是当我们思考比较复杂的设计任务时,比如“如何造车,就会发现列出1234这样的步骤,是不可能的。那是因为,造车太复杂,需要很多协作才能完成。此时面向对象思想就应运而生了。

面向对象(Oriented-Object)思想更契合人的思维模式。我们首先思考的是“怎么设计这个事物 比如思考造车,我们就会先思考“车怎么设计,而不是“怎么按步骤造车的问题”。这就是思维方式的转变。

其次应该思考**“应该让谁来实现**,这个”谁”就是对象 , 对象如何实现我们不关注,只关注对象本身。

比如,我们用面向对象思想思考“如何设计车”:

为了便于协作,我们找轮胎厂完成制造轮胎的步骤,发动机厂完成制造发动机的步骤;这样,发现大家可以同时进行车的制造,最终进行组装,大大提高了效率。但是,具体到轮胎厂的一个流水线操作,仍然是有步骤的,还是离不开执行者、离不开面向过程思维!

图1-1 认识天使

但是,看完10个天使后,我们总要总结一下,什么样的东东才算天使使是无数的,总有没见过的!所以必须总结抽象,便于认识未知事物!**总结的过程就是抽象的过程。**小时候,我们学自然数时怎么定义的1,2,3,4…这样的数就叫做自然数。 通过抽象,我们发现天使有这样一下特征:

  1. 带翅膀(带翅膀不一定是天使,还可能是鸟人)
  2. 女孩(天使掉下来脸着地,也是天使!)
  3. 善良
  4. 头上有光环

那么通过这4个具体的天使,我们进行抽象,抽象出了天使的特征,我们也可以归纳一个天使类。 通过这个过程,类就是对象的抽象。

对象:是具体的事物 xiaoming xiaohong
类:是对对象的抽象(抽象? 抽出象的部分)Person
先有具体的对象,然后抽象各个对象之间象的部分,归纳出类通过类再认识其他对象。

生活案例

  • 类是一个图纸 对象是根据该图纸制造多个实物

  • 类是一个模具 对象是使用模具制造的多个铸件(月饼模子 )

  • 类是上海大众汽车,对象就是大家购买的一辆辆具体上海大众汽车

类可以看做是一个模版,或者图纸,系统根据类的定义来造出对象。我们要造一个汽车,怎么样造就是这个图纸,规定了汽车的详细信息,然后根据图纸将汽车造出来。
类:我们叫做class。 对象:我们叫做Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。

对象和类的关系:

  • 特殊到一般,具体到抽象。
  • 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
  • 类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属性。
  • JDK提供了很多类供编程人员使用,编程人员也可定义自己的类。

自定义类与对象

自定义类

做了关于对象的很多介绍,终于进入代码编写阶段。本节中重点介绍类和对象的基本定义,属性和方法的基本使用方式。

定义类(类的组成)

  • 属性 field
  • 方法 method
  • 构造方法 construtor
  • 其他:代码块 静态代码块 内部类
属性(field 成员变量)

属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化

表4-2 成员变量的默认值
数据类型 默认值
整型 0
浮点型 0.0
字符型 ‘u0000’
布尔型 false
所有引用类型 null

属性定义格式:

说明:

练习题目:

? 1) 自定义小汽车类并使用

? 2) 自定义天使类并使用

? 3) 自定义学生类并使用

成员变量与局部变量的区别

  • 声明位置不同 成员变量定义在类中方法外 , 局部变量定义在方法中|语句块中
  • 作用范围不同:成员变量-> 当前类的所有方法 , 局部变量->当前方法
  • 不同的方法中即使有同名的局部变量,没有关系,互不影响,建议相同
  • 内存存放的位置的:局部变量->栈内存中 , 成员变量->堆内存中
  • 默认值问题: 成员变量有默认值 , 局部变量没有默认值

实现关系

实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系。在Java中此类关系通过关键字implements明确标识。

关联关系(Association)

关联体现的是两个类之间语义级别的一种强依赖关系,比如我和我的朋友,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。关联可以是单向、双向的。表现在代码层面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月20日
下一篇 2020年11月20日

相关推荐