第8章 类和对象 Java语言是一种纯面向对象的语言,如果要使用Java进行面向对象编程,首先就要建立面向对象思想。

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

网络应用程序设计 2014 JavaBean. JavaBean 及其属性 JavaBean 就是一种 Java 的组件技术 JavaBean 是 Java 类 JavaBean 通过约定的方法名实现属性功能 简单属性 void setXxx(Type value) Type getXxx() boolean.
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
第3章 使用类和对象编程 软 件 学 院 朱士明 副教授.
第4讲 使用类和对象编程(二) 对象 静态变量和静态方法 再谈方法.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第四章 类与对象.
第3章 面向对象的编程技术.
第四章 类 和 对 象.
第四章 对象与类 掌握面向对象程序设计语言的特点 理解对象、类,类和对象的关系 掌握类,成员变量,方法的定义 掌握构造方法的定义
Java软件开发基础 4. 面向对象的程序设计基础.
第3章 面向对象程序设计.
配合< Java面向对象程序设计>例子源代码一起使用
Java的面向对象程序设计.
Oracle数据库 Oracle 子程序.
第五章 Java面向对象编程基础 类:现实世界中实体的抽象集合。 5.1定义类 定义类的过程就是定义类的属性和服务的过程;
第14章 c++中的代码重用.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
类与对象 Java 实用技术4 类与对象
第10讲 Java面向对象编程基础(4) 教学目标 主要内容.
Java 第12讲:static与方法重载 主讲教师:李焱 讲师.
第六章 JAVA语言中的面向对象特性 6.1 类 6.2 对象 6.3 面向对象的特性 6.4 抽象类、接口和Inner Class.
第四章 Java面向对象程序设计.
面向对象的概念 构造方法 this和static关键字
JAVA 面向对象基础知识 主要内容: 1.面向对象基本概念 2.Java的类与对象 3.成员变量与封装 成员方法.
第九章 字符串.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
第4章 面向对象编程方法 王德俊 上海交通大学继续教育学院.
管理信息结构SMI.
走进编程 程序的顺序结构(二).
辅导课程六.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第二章 Java语言基础.
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
$9 泛型基础.
C#面向对象程序设计 $6 深入理解类.
第二章 Java基本语法 讲师:复凡.
VB与Access数据库的连接.
分裂对象模型 C++ otcl.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第九节 赋值运算符和赋值表达式.
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Chapter 18 使用GRASP的对象设计示例.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
辅导课程十五.
第7章 模板 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
JAVA 程式設計與資料結構 第三章 物件的設計.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第十七讲 密码执行(1).
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
本节内容 this指针 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Presentation transcript:

第8章 类和对象 Java语言是一种纯面向对象的语言,如果要使用Java进行面向对象编程,首先就要建立面向对象思想。

8.1 类 面向对象的程序都是由对象来组成的。所以在研究对象时首先要考虑对象的属性和行为。而有一些不同的对象却会表现出相同的属性或行为,例如苹果橘子等。通常将属性及行为相同或者相似的一些事物诚挚为类。类就是事物的集合和抽象。它所代表的是这类事物所共有的一些行为和属性

8.1.1 类的一般形式 类是对象的一般形式,Java程序的编写,就是将这些对象的共同点抽取出来,然后使用程序语言的形式表达出来。例如把一个人看作是一个对象,把他作为一个类抽象出来,那么这个人就可以看作是人类的一个对象。

8.1.1 在Java中使用的修饰符主要由以下几种。 private:只有在本类中可见。 protected:在本类或者是同一个包中都可见。 public:对于任何类都可见。 默认(无修饰符):在本类或者是能够一个包中都可见。

8.1.2 方法 方法是类中比较重要的组成成分,方法是实现类的行为,方法主要分为有返回值和没有返回值两种,如果方法中没有返回值,可以使用关键字void来进行修饰。如果有返回值的话,方法的类型必须和方法的返回值类型相同。

8.1.3 主方法 在程序中,主方法就是程序的入口。程序是一间屋子,主方法就是屋子的门。在类中,主方法是Main方法,主方法是由public来进行修饰,其中没有返回值,方法中的参数是字符串类型的args,一个完整的main方法为。 public static void main(String[] args) { }

8.1.4 构造方法 构造方法是类中比较特殊的一种方法,主要是用于初始化一些参数,相当于计算器中的“清零”。使用构造方法可以把所有的数字变量全都设置为0,把所有的布尔类型值设置为false,把所有的对象变量设置为null。 Java中提供有默认的构造方法,如果在类中没有提供自己的构造方法,在编译时,编译器就会为这个类添加一个构造方法。构造方法的使用语句是。 People people =new People();

8.1.5 方法的重载 在Java中,统一个类中的两个或多个方法可以共享一个相同的名称。只要它们的参数不同就可以。这就是重载的概念。在程序调用这些具有相同名称的方法时,会根据其中的参数类型和数量来决定要调用的方法是哪一个。

8.2 对象 现实生活就是由对象组成的,例如抽象的是动物、书籍、水果等,具体的又有杯子、桌子、椅子等。无论它们如何来进行划分,都具有属性,例如大小、颜色等。同时又向外界诚信出各自所特有的行为。例如将一台电脑看做是一个对象,用属性来表示他当前的状态,如星号、颜色、配置等。而它的行为是运行操作系统等。当对计算机进行操作时,不用考虑计算机中的各个零件如何去运作,只需要根据计算机可能的行为进行响应的操作。

8.2.1 对象的创建和使用 使用一个对象之前,首先要去创建该对象。这样创建一个对象主要分为声明和初始化两个步骤。声明该类型变量,该变量只是引用的一个实例的对象。然后要或得类的一个实例对象并把它赋值给该变量。这个过程可以使用运算符new来完成。

8.2.2 构造方法重载 一般在创造对象时所提供的模板也就是该类中的无参构造方法。但在程序的编写过程中不一定每次创造对象的模板都是相同的,而只是对其中的一部分进行初始化。所以使用前面所介绍到的重载方法,对构造方法进行重载。这样一来就可以增加几个不同的构造方法。例如下面的实例,在类中创建几个不同的构造方法,在创建该类的对象时,也可以创建不同的对象模板。

8.2.3 对象类型的参数传递 前面介绍到了方法中节本类型的传递,传递一个基本数据类型的参数还是比较简单的。如果所传递的参数是一个对象呢,这样操作就比较特殊了,对象类型的参数传递是将对象的引用传递给参数,这样也是传值。

8.3 关键字 在编程的过程中,有一些数据是对象公用的,如果给这些对象都给一个这个数据,这些数据的同步将是很大的问题。假设在一个学生类中,除了描述这些学生的信息,需要有一个int型的数据类型来描述当前学生的个数,如果给每一个学生都给这么一个值,显然是多余的,并且每增加一个人都需要更新所有对象的属性值。Java提供了静态变量的概念来解决这个问题,静态变量是用static来描述的。而常量则使用final来进行描述的。

8.3.1 static关键字 static关键字可以用来修饰类的变量、方法和内部类。它的意思是静态的,也可以理解为全局。使用它来定义的变量不与具体的示例有关,而是属于全局。如果要调用它,只能够通过类名来直接调用,而不是先要创建一个对象,再通过对象来调用方法。

1 静态变量 静态变量是属于类的,它和对象没有关系,只能是类和它进行关联,而不是对象。普通的各种变量都是属于某个对象的,有一个对象就有一个这个数据的副本。而静态变量的话则是整个类只有一个变量,它跟对象是没有关系的,跟它相关联的类而不是对象。

2 静态方法 关键词static还可以用来描述方法,用static描述的方法称为静态方法。访问静态方法也是使用“类名.方法名”的方式来访问,一般在工具类中定义一些静态方法来处理一些事情,这样可以方便的使用这些静态方法。在Java常用的数学工具类Math类中的方法就大多数是静态的,可以很方便的访问。 使用静态方法的时候需要注意下面两点: 静态方法不能直接访问非静态变量 非静态方法可以直接访问静态变量

3 静态常量 在实际应用中,静态变量不是很常用,最常用的是静态常量,用了存储一些在程序中不会改变的信息。它的定义如下: 3 静态常量 在实际应用中,静态变量不是很常用,最常用的是静态常量,用了存储一些在程序中不会改变的信息。它的定义如下: public static final int X=123; 该变量在程序中不可以改变的,不能通过赋值改变它的值。 现在已经介绍了静态变量、静态方法、静态常量,静态变量和常量的初始化是调用构造函数之前完成的。

8.3.2 final关键字 final的意思是“最终的”,这个字段和static一样,可以对变量、方法和类进行修饰。修饰不同的元素所代表的含义也是不同的。但是使用final修饰过的都是不可改变的。

8.3.2 final关键字 1.final修饰变量 使用final修饰过的变量,不管该变量时一个类的成员还是一个临时的变量,这个变量都不可以被重新赋值。final类通常都会被用作表示一个类中的固有属性,使用final修饰的变量一般使用大写来表示。 2.final修饰方法 如果使用final对方法进行修饰,就会会使得任何继承类都无法覆盖该方法,但是重载不会受到限制。 3.使用final修饰类 如果将一个类设置成final类型,就表示这个类不能够作为任何类的父类,修饰后的类中方法会全部被自动定义成为final类型。

8.4 包 包是Java面向对象编程中所特有的概念。包是由类和接口所组成的集合,是用来将相关的一组类组织在一起进行管理。它体现了封装特性,可以将类和接口封装在一个包内。而且包的引入也解决了类命名冲突的问题。

8.5 小结 本章的内容对Java的类和对象进行了简单的介绍,并介绍了对象和构造函数的知识,再就是介绍了static关键字的使用。然后就是了介绍参数传递和包的使用。本章的难点在于理解面向对象的思想,Java有一个口号是“万物皆对象”,如何接受这种思想,是需要读者深入思考的。通过本章的学习,读者可以Java的面向对象特性有初步的了解。再接下来的内容里会进步一步介绍Java的面向对象特性,希望读者再接再厉,更上一层楼。