java第六章学习笔记:对象和类---java世界的细胞

【因为每一章都篇幅比较长(10多页,难免有的地方会写错字,如发现请指正,本人不胜感激)】

本章介绍面向对象理念以及如何通过类创建对象

6.1 面向对象概述

主要包括面向对象诞生,面向过程与面向对象程序设计思想的对比,面向对象技术的背景和特点;
提示:面向对象(Object Oriented简称oo)java是完全面向对象语言
6.1.1 面对对象程序设计思想的诞生
【对象不再仅仅与名词相联系,还包括事件和过程】
1、1966年,开发了具有更高级抽象机制的Simula语言。
2、Simula语言提供了比子程序更高一级的抽象和封装,并且为仿真一个实际问题,引入了数据抽象和类的概念,后来PARC一些科学家在吸取了Simula类的概念,开发了Smailtalk语言
3、大约在同时,”面对对象“这一术语正式确定,在Smailtalk中一切都是对象—即某个类的实例,最初的Smailtalk中对象与名词紧紧相连。
4、Smailtalk语言还影响和20世纪80年代早期和中期的很多面向对象语言,eg:Object-c(19860),C++(1986),Self(1987),Eiffel(1987),Flavors(1986),同时面对对象应用领域进一步扩宽,对象不再仅仅与名词相联系,还包括事件和过程。
5、sun公司于1995年推出了纯面向对象的java语言
说明:Smailtalk被认为是第一个真正面向对象语言。
6.1.2 面向对象和面向过程思想对比
传统面向过程的程序设计通过设计一系列的过程(即算法)来求解问题,这些过程一旦被确定,下一步就要寻找存储数据的方式,即“程序=算法+数据结构”,其中算法是第一位,而数据结构是第二位,而oop调换了这个次序,将数据放在第一位,然后再考虑操纵数据的算法。
提示:OOP是Object Oriented Programming的缩写,即面向对象的程序设计
在oop中,程序被看做是相互协作的对象集合,每个对象都是某个类的实例,所有类构成一个通过几成关系相联系的层次结构。面对对象的语言常有以下特征:
1、对象生成功能
2、消息传递机制
3、类和遗传机制
只有在面对对象语言中,以上的三个机制才共同出现,并以一种独特的合作方式相互协作,互相补充。实际上,软件开发的过程就是人们在使用各种计算机语言将自身关心的现实世界(或问题域)映射到计算机世界的过程,这个过程通常如下图所示:
这里写图片描述
1、面对过程的编程模式:
在这种编程模式中,数据和函数(过程)是分开的,即开发人员看到的是函数或过程的集合以及单独的一批数据,程序的处理过程为:参数输入->函数/过程代码->结果输出,如图:
这里写图片描述
图 6-2 面向过程的编程模式
图中的”F(1)”,”F(2)”,”F(3)”表示函数(过程),细线箭头表示函数(过程)对数据的访问。
对维护人员来说无论是函数还是数据结构的改动都会使整个程序受到干扰,进而导致软件系统的崩溃
并且,在这种模式中,程序员分析了问题之后,得到一个面向过程的模型,其中常见的词语是变量,函数,过程等。其过程如下图所示:
这里写图片描述

2、面向对象的编程方式
在这种模式中,函数和它需要存取的数据封装在称为对象的单元中,对象之间的访问是间接的,是通过接口执行的。这里所说的接口指:为其他代码调用提供的一套访问方法,也就是API,其编程模式如图:  

这里写图片描述
1、图中的每个圆表示一个对象,细线箭头表示对象间的消息(调用)
2、通常将对象比作鸡蛋,蛋黄是数据,蛋清是访问数据的函数,蛋壳表示接口(即那些公开的或公布的方法和属性)
3、蛋壳接口隐匿了函数和数据结构的实现,当数据结构和内部函数时,这种变化被限制在内部的局部范围内,由于接口具有相对稳定性,使得这种内部变化的影响不会波及到其他对象,除非蛋壳破裂(接口发生变化)
在面向对象编程模式中,程序的功能是通过对象间的通信获得的,对象被定义为一个封装了状态(数据)和行为(操作)的实体
1、状态包含了执行行为的信息,它以数据形式存储于对象之中;
2、消息是对象通信的方式,因而也是获得功能的方式,对象收到发给它的消息后,或者执行 一个内部操作或者再去调用其他对象的操作。在面向对象的编程模式中,开发人员首先得到一个面向对象的模型,其中常见的词语是类、对象、方法、消息等,基本过程如图:
这里写图片描述
6.1.3 面对对象技术的背景和特点
oo是一种方法、一种思想,一种技术,比如,认识“苹果”形成苹果的概念以后,这个概念会一直存在人们思维中,不会因为这个苹果被吃掉而不存在。每个对象都有自己的运动规律和内部状态,不同对象之间相互联系相互作用。
2、面对对象技术的特点:
1、某类对象是对现实世界具有共同特性的某类事物的抽象;
2、对象蕴含许多信息可以用一组属性来表示
3、对象内部含有数据和对数据的操作
4、对象之间是相互关联和相互作用的
所以面对对象的特点为:抽象性、继承性、封装性、多态性
从开发角度:对象就是协调数据存储以及作用于数据之上操作的数据实体,用户可以通过定义一个对象集合以及它们之间相互作用来创建一个面向对象程序,许多对象协同工作来定义一个完成用户需要的软件系统

6.2 类的定义和对象的创建

类决定了某一对象的外观和行为,类是构造对象的模板或蓝图,对象只有在程序运行 时才产生;
类声明是用来创建对象的模板的抽象规格说明

public class Student //类声明
{
//定义方法和成员变量
}

由类创建对象的过程称为实例化,每个对象是一个类的实例eg:
这里写图片描述
学生类是对什么是学生的一个定义,而张三、李四、王五是对象,是学生类的实例。

6.3 成员变量

成员变量与成员方法,成员变量的开发和使用、初始值以及对象引用变量的比较

6.3.1 成员变量的开发与使用
成员变量就是类的属性,也称实例变量eg:

public class Student //类声明
{
    //定义方法和成员变量
    String sname;
    int sage;
    String sclass;

}
public class Test39 
{
    public static void main(String args[])
    {
        Student Tom;
        Tom=new Student();
        Student Marry=new Student();
        Tom.sage=21;
        Tom.sclass="5788";
        Marry.sage=20;
        Marry.sclass="7890";
        Tom.sname="Tom";
        Marry.sname="herry";
        System.out.println("姓名:"+Tom.sname+",年龄:"+Tom.sage+",所在班级:"+Tom.sclass);
        System.out.println("姓名:"+Marry.sname+",年龄:"+Marry.sage+",所在班级:"&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值