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

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

《高级程序设计语言(Java版)4 面向对象基础.pptx》由会员分享,可在线阅读,更多相关《高级程序设计语言(Java版)4 面向对象基础.pptx(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

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

4、方法。比如说,可以定义一个顾客类,这个类具有的属性是:性别、年龄、国籍等,方法是:付款、挑选等。现在有一个名字叫王五的顾客,性别男,中国人,这个实例就是顾客类的对象。对象实体类抽象数据类实例化抽象映射计算机世界现实世界抽象计算机逻辑的实现图4-2类和对象的关系4.2 4.2 类类4.2.1 类定义类的定义可以分为类声明和类体。格式如下:将类声明和类体具体来写完整格式应该是:class extends implements 成员变量声明;构造成员方法;方法声明与实现;【实例4-1】TestClass.java public class TestClass public static void m

5、ain(String args)System.out.println(调用类TestClass中的方法);Cat cat=new Cat();cat.age=4;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(Str

6、ing args)System.out.println(调用类Cat中的main方法);Cat cat=new Cat();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中的方法CATMeow.Age=4Werght=8在类TestClass中调用类Cat中的main方法调用类Cat中的main方法CATMeow.

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

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

9、;3)构造方法是一种特殊的成员方法;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)&(year%4=0);void print()Syst

10、em.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-212012 is a leap year:true4.34.3对象对象在计算机世界中,所有的对象都具有如下特征:具有唯一标识名;具有一个状态;有一

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

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

13、从所有类访问protected可以被同一包中的所有类访问,可以被所有子类访问子类没有在同一包中也可以访问private只能够被当前类的方法访问static静态方法(又称为类方法,其它的称为实例方法)提供不依赖于类实例的服务,并不需要创建类的实例就可以访问静态方法。final防止任何子类重载该方法注意不要使用const,虽然它和C、C+中的const关键字含义一样,可以同static一起使用,避免对类的每个实例维护一个拷贝。abstract抽象方法,类中已声明而没有实现的方法不能将static方法、final方法或 者 类 的 构 造 器 方 法 声 明 为abstractnative用该修饰符

14、定义的方法在类中没有实现,而大多数情况下该方法的实现是用C、C+编写的。参 见 Sun的 Java Native接 口(JNI),JNI提供了运行时加载一个native方法的实现,并将其于一个Java类关联的功能synchronized多线程的支持当一个此方法被调用时,没有其它线程能够调用该方法,其它的synchronized方法也不能调用该方法,直到该方法返回。4.5 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为

15、已定义的类名,下列声明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 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,以下为

16、其构造方法的声明,其中正确的是()A.public Person(int x).B.static Person(int x).C.public a(int x).D.void Person(int x).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();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁