收藏 分享(赏)

高级程序设计语言(Java版)4 面向对象基础.pptx

上传人:dzzj200808 文档编号:3365214 上传时间:2018-10-19 格式:PPTX 页数:28 大小:106.93KB
下载 相关 举报
高级程序设计语言(Java版)4 面向对象基础.pptx_第1页
第1页 / 共28页
高级程序设计语言(Java版)4 面向对象基础.pptx_第2页
第2页 / 共28页
高级程序设计语言(Java版)4 面向对象基础.pptx_第3页
第3页 / 共28页
高级程序设计语言(Java版)4 面向对象基础.pptx_第4页
第4页 / 共28页
高级程序设计语言(Java版)4 面向对象基础.pptx_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、第4章 面向对象基础,目录,4.1 概述 4.2 类 4.3 对象 4.4 访问修饰符 4.5习题,4.1 概述,4.1.1 面向对象的基本概念 面向对象程序设计的基本思想就是把人们对现实世界的认识过程应用到程序设计中,使现实世界中的事务与程序中的类和对象直接对应。 面向对象技术主要围绕以下几个概念:对象、抽象数据类型、类、类型层次(子类)、继承性、多态性。 像java语言这样的面向对象的程序设计(OOP)已成为现代软件开发的必然选择。通过掌握面向对象的技术,能开发出复杂、高级的系统,这些系统完整健全,而且可扩充性良好。,4.1.2 面向对象程序的特点 1. 抽象性:是对现实世界中某一类实体或

2、事件进行抽象,从中提取共同信息,找出共同规律,反过来又把它们集中在一个集合中,定义为所设计目标系统中的对象。 2. 封装性:是指把类的基本成分(包括数据和方法)封装在类实体中,使类与外界分隔开来。封装性减少了程序各部分之间的依赖性,降低了程序的复杂性,由于隐藏了其内部信息的细节,使内部信息不易受到破坏,安全性有了保证,同时也为外界访问提供了简单方便的界面。 3. 继承性:新的对象类由继承原有对象类的某些特性或全部特性而产生出来,原有对象类称为基类(或超类、父类),新的对象类称为子类,子类可以直接继承基类的共性,又允许子类发展自己的个性。 4. 多态性:多态性是指一个类中不同的方法具有相同的名字

3、。Java语言通过方法重载和方法覆盖来实现多态性。多态性丰富了对象的内容,扩大了对象的适应性,改变了对象单一继承的关系。,4.1.3 对象的基本概念对象是指一个特定的个体。其实,在人们的日常生活中,任何事物都可以看作一个对象。比如说,教室里的黑板、投影仪、课桌、电脑、老师万物都可以看作对象。下面举一个生活中的例子,如图4-1对象的属性和方法:,(1)对象的属性,(2)对象的方法,4.1.4 类的基本概念简单来说,类是对象的抽象,是对一类相似对象的共同特征的抽象。类和对象一样,也是具有属性和方法。比如说,可以定义一个顾客类,这个类具有的属性是:性别、年龄、国籍等,方法是:付款、挑选等。现在有一个

4、名字叫王五的顾客,性别男,中国人,这个实例就是顾客类的对象。,图4-2类和对象的关系,4.2 类,4.2.1 类定义 类的定义可以分为类声明和类体。格式如下: 将类声明和类体具体来写完整格式应该是: class extends implements 成员变量声明;构造成员方法;方法声明与实现;,【实例4-1】TestClass.java public class TestClass public static void main(String args) System.out.println(“调用类TestClass中的方法“);Cat cat = new Cat();cat.age = 4

5、;cat.weight = 8;System.out.println(“CAT“);cat.meow();System.out.println(“Age = “+cat.age+“tWerght = “+cat.weight);System.out.println(“n在类TestClass中调用类Cat中的main方法“);cat.main(args); ,class Catint age;int weight;public static void main(String args)System.out.println(“调用类Cat中的main方法“);Cat cat = new Cat(

6、);cat.age = 1;cat.weight = 2;System.out.println(“CAT“);cat.meow();System.out.println(“Age = “+cat.age+“tWeight = “+cat.weight);void meow()System.out.println(“Meow.“); ,运行结果: 调用类TestClass中的方法 CAT Meow. Age = 4 Werght = 8在类TestClass中调用类Cat中的main方法 调用类Cat中的main方法 CAT Meow. Age = 1 Weight = 2,4.2.2 成员变量

7、Java语言中,类具有两种成员变量:一种没有static修饰,为实例变量,一另种是被static关键字修饰的变量,叫类变量(静态变量)。实例变量和类变量在程序运行时具有一定的区别: 1)实例变量属于某个对象的属性,其中只有实例变量才会被分配空间,因此必需创立了实例对象,才可以使用这个实例变量。 2)实例变量不属于某个实例对象,而是属于类,所以也称为类变量,只要顺序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,实例变量必需创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。,4.2.3 成员方法 方法和类一样,也包含了两个部分,即方法的声明和方法体,定义方法的

8、格式如下:修饰符 返回类型 成员方法名( 参数 ) 方法体 修饰符包括:public, protected, private, static, final, abstract, native, synchronized等。,4.2.4 构造方法构造方法也叫构造函数,在java语言里,它是一种特殊的方法,用来初始化类的对象。构造方法的方法名必须与所属类名完全相同,但是不能为构造方法指定返回值类型。如果程序中定义的某个方法名与所属类同名的方法具有返回值类型,那么这个方法就不是构造方法,只是一个普通的方法。,构造方法有如下特征:1)构造方法必须与类名相同; 2)构造方法不能有返回值类型; 3)构造方

9、法是一种特殊的成员方法; 4)使用new来调用构造方法,返回类型为对象实例; 5)构造方法不能直接引用,只能在有系统隐含调用; 6)可以利用重载,创建多个构造方法;,【实例4-3】DateClass.java构造方法: class DateClass /变量声明int year;int month;int day;/构造方法DateClass(int y, int m, int d) year = y;month = m;day = d;/一般成员方法boolean isleapyear() return (year % 400 = 0) | (year % 100 != 0) ,void p

10、rint()System.out.println(“date is “+year+“-“+month+“-“+day); public class DateTESTpublic static void main(String args) DateClass d = new DateClass(2012, 12, 21);d.print();System.out.println(d.year + “ is a leap year:“ + d.isleapyear(); 运行结果: date is 2012-12-21 2012 is a leap year:true,4.3对象,在计算机世界中,

11、所有的对象都具有如下特征: 具有唯一标识名; 具有一个状态; 有一组操作方法; 可以有子对象; 对象的操作包括对自身操作和对其他对象操作; 对象之间可以消息通信;,4.3.1 创建对象对象的创建包括三个部分:声明、实例化、初始化。创建对象的一般格式为:类名 对象名称=new 类名( ); 声明对象:声明对象的过程并不为对性爱那个分配内存空间,分配的是引用空间,类似于c语言中的指针。 实例化对象:对象声明后,运算符new会立即为对象分配内存空间,实例化该对象。New调用对象的构造函数,返回这个对象的引用。此外,使用new可以为一个类实例化多个不同的对象,而且这些对象分别占用不同的内存空间,改变其

12、中一个对象的状态不会影响其他的对象。 初始化对象:执行对应的构造函数,在构造函数中完成对象初始化。,4.3.2 使用对象引用对象的成员变量和成员方法被称之为对象的使用。在Java语言中,通常是通过运算符“.”来实现成员变量的访问和成员方法的调用。 4.3.3 回收对象Java程序运行时,系统通过垃圾收集周期性的释放无用对象所使用的内存空间,来完成对象的回收。当不存在一个对象的引用时,该对象就成为一个无用对象。Java的垃圾收集器自动扫描对象的动态内存空间,对正在使用的对象加上标记,将没有引用的对象作为垃圾收集起来并将他们释放。Java还通过垃圾收集器进行内存管理,因此不需要跟踪每个生成的对象,

13、大大简化了工作量。,4.4 访问修饰符,4.5 习题,5. 设 A为已定义的类名,下列声明A类的对象a的语句中正确的是( )A. float A a; B. public A a=A( ); C. A a=new int( ); D. static A a=new A( ); 6. 设 A为已定义的类名,下列声明A类的对象a的语句中正确的是( )A. public A a=new A( ); B. public A a=A( ); C. A a=new class( ); D. a A;,9.设 A 、B 均为已定义的类名,下列声明类A的对象a1的语句中正确的是( ) A. public A

14、a1= new B( ); B. A a1= A ( ); C. A a1=new A( ); D. int A a1; 10. 设A 、B为已定义的类名,下列声明A类的对象a1的语句中正确的是( )A. static A a1; B. public A a1=new A(int 123); C. B a1; D. A a1= A( ); 11. 有一个类Person,以下为其构造方法的声明,其中正确的是( )A. public Person (int x). B. static Person (int x).C. public a(int x). D. void Person (int x)

15、.,16. 经典习题:打印出如下图案(菱形) * * * * * * *,16. 答案 public class test public static void main(String args) int H = 7, W = 7; for(int i=0; i(H+1) / 2; i+) for(int j=0; jW/2-i; j+) System.out.print(“ “);for(int k=1; k(i+1)*2; k+) System.out.print(*);System.out.println(); ,for(int i=1; i=H/2; i+) for(int j=1; j=i; j+) System.out.print(“ “);for(int k=1; k=W-2*i; k+) System.out.print(*);System.out.println(); ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报