2017.7.6学习小结 - 类和对象1

回顾

点拨

1.Java中的null使用
2.数组的下标

实战练习

1.冒泡排序
2.乱序排序

优化的冒泡排序。

学习小结

一、面向对象的程序

面向对象程序(Object-oriented programming,OOP)设计是继面向过程又一具有里程碑意义的编程思想,是现实世界模型的自然延伸。

1.结构化程序简介

早期:大量使用共享变量(全局变量)和goto语句,使得代码结构混乱,不易改错和复用。

后来:E.W.Dijikstra在1965年提出结构化程序设计,主要观点是自顶而下、逐步求精及模块化的程序设计方法,使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环这三种基本控制结构来构造。

面向过程编程(Procedure Oriented Programming,POP):编写不同目的的函数/过程的程序。

结构化程序 = 算法 + 数据结构

算法:用基本控制结构,顺序、选择、循环来实现。

数据结构:指数据以及其相应的存取方式。

2.面向对象程序设计简介

面向对象的思想主要是基于抽象数据类型(Abstract Data Type,ADT),考虑问题中各个对象之间的关系。

属性表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。

面向编程达到了软件编程的三个主要目标:重用性、灵活性、扩展性。

程序 = 对象 + 消息传递

3.面向对象程序设计的基本特征

主要特征:封装性、继承性、多态性。

a.封装性(encapsulation)

封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。

b.继承性

继承性是之类共享其父类数据和方法的机制。

c.多态性

同一个消息被不同的对象接受时可产生完全不同的行动。

4.面向对象和面向过程的比较

a.两种编程范式之间的区别

  • 面向过程:程序 = 算法 + 数据结构;

“自上而下,步步求精”,以过程为中心,以算法为驱动,不足之处不利于后期维护和扩展。

  • 面向对象:程序 = 对象 + 消息传递;

先自定义数据结构——“类”,然后用该类型下的“对象”组装程序,对象之间通过“消息”进行通讯。此设计更易扩展,也更加符合现实世界的模型。不足之处,执行效率低于面向过程。

2017.7.6学习小结 - 类和对象1_第1张图片

b.两种编程范式之间的联系

面向对象是由面向过程发展而来的,只是添加了它独有的特性。

对象 = 数据 + 方法
程序 = 对象 + 消息传递 = (数据 + 方法) + 消息传递

二、面向对象的基本概念

1.类(Class)

将具有相同属性及相同行为的一组对象称为类。是一种抽象的数据类型。

在面向对象程序设计中,类是一个独立的单位,它有一个类名,其内部包括成员变量,用于描述对象的属性;还包括类的成员方法,用于描述对象的行为。

2.对象(Object)

对象是类实例化后的产物。

对象的特征分:静态特征和动态特征

  • 静态特征:对象的外观、性质、属性等。即变量。

  • 动态特征:对象具有的功能、行为等。即方法(method)。

3.类和对象的关系

类是对某一类事物的描述,是抽象、概念上的定义;对象是实际存在的该类事物的个体,因而也被称作实例(instance)。

类相同,而对象各异。

三、类的声明与定义

1.类的声明

[标识符] class类名称
{
// 类的成员变量
// 类的方法
}

标识符可以是访问控制符,主要有四类:

①默认模式(default)

在默认模式下,不需为某个类、方法等加任何访问修饰符。此类方式声明的方法和类,只允许在同一个包(package)内是可以访问的。

②private(私有)

最严格修饰符,只被当前声明的类里内部访问。

③public(公有)

最宽松修饰符,不仅可以跨类访问,而且可以跨包访问。只需要导入(import)所需的包。

④protected(保护)

只能被类本身的方法和之类访问,即时之类在不同包中也可以访问。

也可以用final(无法改变、终态),不能被继承

2.类的定义

class 类名称{
数据类型 属性; // 0到多个属性
类名称(参数,···){ // 0到多个构造方法
}
返回值的数据类型 方法名称(参数1,参数2,···){ // 0到多个方法
程序语句;
return;
}
}

通常类里有,构造方法(constructor,构造器或构造函数)、属性和方法。构造方法是一种特殊的方法,专用于构造该类的实例(即与类同名的方法)。若用户未显式定义构造方法,Java编译器会默认提供无参构造方法。

注意: static修饰的成员不能访问没有static修饰的成员

思考

今天请假了,所以大白天就看书啦,看了好久概念的东东,头都晕了,要休息一会。哈哈······

你可能感兴趣的:(2017.7.6学习小结 - 类和对象1)