面向对象与对象的理解
java,一门面向对象的语言
初次接触java,java不同与最初学习的C语言这种面向过程的语言,它与c++同属面向对象的编程语言。
面向对象与面向过程
从概念来说,面向对象与面向过程的语言有如下的特点:
一、编程思想不同
- 面向过程的语言:是一种以过程为中心的编程思想。都是以什么正在发生为主要目标进行编程。
- 面向对象的语言:是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分
二、特点不同
-
.面向过程的语言:它的主要观点是采用自顶向下、逐步求精的程序设计方法,使用三种基本控制结构构造程序,即任何程序都可由顺序、选择、循环三种基本控制结构构造。
-
面向对象的语言:面向对象语言刻画客观系统较为自然,便于软件扩充与复用。有四个主要特点:
(1)识认性,系统中的基本构件可识认为一组可识别的离散对象;
(2)类别性,系统具有相同数据结构与行为的所有对象可组成一类;
(3)多态性,对象具有唯一的静态类型和多个可能的动态类型;
(4)继承性,在基本层次关系的不同类中共享数据和操作。
其中,前三者为基础,继承是特色。四者(有时再加上动态绑定)结合使用,体现出面向对象语言的表达能力。
面向过程语言
面向对象语言
什么是对象
一、类和对象的定义
- 类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
- 对象是具有类类型的变量。
类和对象是面向对象编程技术中的最基本的概念。
二、类与对象的关系
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
三、类和对象的创建
- 先看一个类的定义:
class Apple {
int num = 0 ;
public int getnum(){
return num;
}
public void setnum(int num){
this.num = num ;}
}
一个类是用来描述所有属于这个类的对象的共同结构的。这个Apple类表示的对象拥有一个叫做num的整数属性,这个属性被初始化成0。它还描述了两个操作num的方法。get和set. 这两个方法的内容都是很直观的。this.表示这个对象自己属性或方法。
- 对象的定义
Apple apple1 = new Apple ;
对象是一个类的实例化体现。这段代码表示声明一个Apple类型的名为apple1的对象,具体使用new方法创建Apple类对象。
个人理解
把类看作是一个文件模板,打印好的文件就是一个个对象。
- 把一个类实体化理解为一个表格模板,它只是一份数据没有实体,将它打印出来就是一个对象,一个模板可以打印多个文件(类的抽象性、类的实例化)。
- 两个打印好的表格的内容可以相同,但他们还是两份文件,只不过他们是由同一个模板打印出来的(对象的属性和方法可以一致,但其还是各自独立的对象)。
- 当然打印之前可以写入一些信息,这就需要先进行不同的操作,表格打印出来之后也可以对其中允许修改的内容进行修改(构造函数的重载,对象属性可以修改)。
- 这个表格对象不能是一片空白,一片空白肯定也不能称之为表格。(对象必须是客观存在的,可以描述的)。
- 表格中的内容即是对象的属性和方法,我们可以查询到表格的编号、打印日期等信息,这些是对象的属性。我们也可以通过查看表格来获得我们需要的信息,这就是对象的方法。
面向过程的编程语言,关注的是实现目的的过程,比如要知道张三的住址,我是通过向张三询问,还是进行跟踪,又或者是今天做了人员统计我去看他登记的内容。
而面向对象的语言关注的是对象,比如还是同样的问题,我现在要考虑的是,这块有一堆表格,有张三的成绩表、基本信息表、家庭成员表等等,我是通过哪个表格才能找到他的家庭住址,这就是面向对象考虑的东西。