书签 分享 收藏 举报 版权申诉 / 72
上传文档赚钱

类型JAVA面向对象编程基础课件.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:4376758
  • 上传时间:2022-12-03
  • 格式:PPTX
  • 页数:72
  • 大小:797.92KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《JAVA面向对象编程基础课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    JAVA 面向 对象 编程 基础 课件
    资源描述:

    1、1面向对象编程OOP旨在在计算机程序中模拟现实世界中的概念在 OOP 中,现实世界的所有事物全都被视为对象能够在计算机程序中用类似的实体模拟现实世界中的实体设计和实现软件系统的方法第1页/共72页2对象对对 象象是类的实例面向对象程序设计中用来描述客观事物的程序单位具备某种功能 完成特定任务表示现实世界中的实体“对象是存在的具体实体,具有明确定义的特征和行为。对象是存在的具体实体,具有明确定义的特征和行为。”第2页/共72页3对象的示例收银员对象顾客对象顾客姓名:朱丽叶年龄:28操作:购买商品特征特征姓名:布兰尼年龄:35职务:收银员操作:收款打印帐单行为行为第3页/共72页4类q类是面向对象

    2、程序设计的基础和核心q类是对象的抽象和归纳,是对象的模板水果类水果类动物类动物类汽车类汽车类类的示例类的示例“类是具有相同属性和方法的一组对象的集合类是具有相同属性和方法的一组对象的集合”第4页/共72页5类和对象的示例雇员雇员收银员系统管理员仓库管理员促销员部门经理第5页/共72页6属性q 属性名称由类的所有实例共享q 事物的特征在类中表示为变量q 每个对象的每个属性都拥有其特有的值住址住址姓名姓名属性属性年龄年龄“在类中属性表示对象或实体拥有的特征在类中属性表示对象或实体拥有的特征”促销员对象促销员对象第6页/共72页7方法方法方法是是对象行为的实际实现每一个方法确定对象的一种行为或功能“

    3、对象执行的操作称为方法。对象执行的操作称为方法。”第7页/共72页8方法的示例缝制衣服的步缝制衣服的步骤骤量尺寸量尺寸得到工具得到工具缝衣服缝衣服方法方法缝制衣服裁缝第8页/共72页9类和对象的区别 类是概念模型,定义对象的所 有特性和所需 的操作对象是类的实例类和对象类定义对象对象是实际的实体类是对象的抽象类是对象的抽象所有属于同一个类所有属于同一个类的对象都具有相同的对象都具有相同的特性和操作的特性和操作第9页/共72页10 类与对象的关系示例 抽象实例化对象:刘丽静态特征:刘丽 女 讲师 890.00动态特征:授课 评职称 调工资属性值执行的操作方法名属性名类:教师属性:姓名 性别 职称

    4、 工资方法:授课 评职称 调工资类与对象的关系示例第10页/共72页11抽象处理事物复杂性的方法处理事物复杂性的方法 只关注事物的重要细节,而忽略事物的次要细节。数据抽象:“根据具体的应用抽取出类的相关属性和操作。”第11页/共72页12数据抽象的示例属性NameStudentNOSeatNumber方法getName()getStudentNO()Student 类类getSeatNumber()第12页/共72页13封装q信息隐藏,隐藏对象的实现细节,不让用户看到q将东西包装在一起,然后以新的完整形式呈现出来q例如例如,两种或多种化学药品组成一个胶囊,两种或多种化学药品组成一个胶囊q将方法

    5、和属性一起包装到一个单元中,单元以类的形式将方法和属性一起包装到一个单元中,单元以类的形式实现实现“隐藏属性、方法或实现细节的过程称为封装。隐藏属性、方法或实现细节的过程称为封装。”第13页/共72页14封装的示例 3-1 采购经理罗杰斯先生大众汽车公司.通用汽车公司.市场经理雪莉女士 要求第14页/共72页15 封装的示例 3-2有选择地提供数据大众汽车公司通用汽车公司公共电话号码电子邮箱产品种类私有备件的制造方法备件库存备件的制造成本公共电话号码电子邮箱汽车种类私有汽车的组装方法汽车库存汽车的组装成本第15页/共72页16封装的示例 3-3 实体大众汽车公司实体通用汽车公司 Auti Lt

    6、d.Buto Ltd.属性电话号码电子邮箱产品种类现有存货数量雇员详情所需物料详情属性电话号码电子邮箱汽车种类汽车规格雇员详情库存详情经销商详情方法接收订单备件的制造方法计算备件的制造成本计算利润率方法发出订单汽车的组装方法计算汽车的组装成本计算利润率第16页/共72页17封装的特征:封装的特征:(1)在类的定义中设置访问对象属性(数据成员)及方法(成员方法)的权限,限制本类对象及其他类的对象使用的范围。(2)提供一个接口来描述其他对象的使用方法。(3)其他对象不能直接修改本对象所拥有的属性和方法。封装的示例 3-4 第17页/共72页181.定义类的一般格式定义类的一般格式 (1)系统定义的

    7、类,即Java类库,是系统定义好的类,类库是Java语言的重要组成部分。Java类库是一组由它的发明者SUN公司以及其他软件开发商编写好的Java程序模块,每个模块通常对应一种特定的基本功能和任务,且这些模块都是经过严格测试的,因而也总是正确有效的。当自己编写的Java程序需要完成其中某一功能的时候,就可以直接利用这些现成的类库,而不需要一切从头编写,这样不仅可以提高编程效率,也可以保证软件的质量。类的定义第18页/共72页19 (2)用户自己定义的类。在Java程序中,用户自己定义类的一般格式如下:类的定义语法语法class 类名 类体其中:其中:class 是创建类所使用的关键字,类体包含

    8、属性(数据成员)和成员方法的声明。第19页/共72页20类的简单定义q类的命名规则:q不能为 Java 中的关键字q不能包含空格或点号“.”q可以下划线“_”、字母或“$”符号开头class Book String bookName;String authorName;int nopages;boolean available;第20页/共72页21类中的方法 4-1方法的定义方法的定义方法的名称参数列表方法的主体方法返回的数据类型第21页/共72页22类中的方法 4-2语法:返回值类型 方法名(参数列表)方法体(语句体)第22页/共72页23类中的方法 4-3class Book Strin

    9、g bookName;String authorName;int nopages;boolean available;void isAvailable()if(available=true)System.out.println(有这本书);.方法第23页/共72页24 创建对象通常包括声明对象、建立对象和初始化对象三步。1 1声明对象声明对象 声明对象就是确定对象的名称,并指明该对象所属的类。声明对象的格式如下:类名 对象名表;例如:Class_name object_one,object_two;对象的声明第24页/共72页25 2建立对象建立对象 建立对象就是用new关键字为对象分配存储空

    10、间。只有通过建立对象这一步,才为对象分配内存,使该对象成为类的实例。建立对象的格式如下:建立对象的格式如下:对象名=new 构造方法();例如:object_one=new Class_name();object_two=new Class_name();对象的建立第25页/共72页26 3.创建对象的格式如下创建对象的格式如下:类名 对象名=new 构造方法名();例如:Class_name object_one=new Class_name();Class_name object_two=new Class_name();其中:new的作用是建立对象,为对象分配存储空间。执行new Cla

    11、ss_name()将产生一个Class_name()类的实例(对象)。对象的创建与类名相同第26页/共72页27 4.使用对象使用对象 一个对象可以有许多属性和多个方法。当一个对象被创建后,这个对象就拥有了自己的数据成员和成员方法,我们可以通过引用对象的成员来使用对象。对象的数据成员的引用方式如下:对象名.数据成员名 对象的成员方法的引用方式如下:对象名.成员方法名(参数表)对象的使用第27页/共72页28示例class Book String bookName;String authorName;int nopages;boolean available;static void isAvai

    12、lable()if(available=true)System.out.println(“有这本书);Book objBook=new Book();objBook.isAvailable();.圆点符号第28页/共72页29类的严谨定义格式如下:类的严谨定义格式如下:类修饰符 class 类名 extends 父类名 implements 接口列表 数据成员 成员方法 类的严谨定义第29页/共72页30访问修饰符 6-1q信息隐藏是 OOP 最重要的功能之一,也是使用访问修饰符的原因。q信息隐藏的原因包括:q对任何实现细节所作的更改不会影响使用该类的代码q防止用户意外删除数据 访问修饰符访问

    13、修饰符访问修饰符访问修饰符privateprotectedpublic默认第30页/共72页31访问修饰符 6-2该类或非该类均该类或非该类均可访问可访问public只有该类可以访只有该类可以访问问private相同数据包中的相同数据包中的类可以访问类可以访问默认默认该类及其子类的该类及其子类的成员可以访问,成员可以访问,同一个包中的类同一个包中的类也可访问也可访问protected第31页/共72页326.1 6.1 类修饰符类修饰符 类的修饰符用于说明对它的访问限制,一个类可以没有修饰符,也可以有public、final、abstract等几种不同的修饰符。1无修饰符的情况无修饰符的情况

    14、如果一个类前无修饰符,则这个类只能被同一个包里的类使用。Java规定,同一个程序文件中的所有类都在同一个包中。这也就是说,无修饰符的类可以被同一个程序文件中的类使用,但不能被其他程序文件中的其他包中的类使用。类访问修饰符 6-3第32页/共72页33【示例程序C3_1.java】class Aa /无修饰符的类Aa int a=45;/Aa类的数据成员a public class C3_1 /公共类C3_1 public static void main(String args)Aa a1=new Aa();/类C3_1中创建了一个无修饰符类Aa的对象a1 System.out.println

    15、(a1.a);第33页/共72页34 2public修饰符修饰符 如果一个类的修饰符是public,则这个类是公共类。公共类不但可供它所在包中的其他类使用,也可供其他包中的类使用。在程序中可以用import语句引用其他包中的public类。Java规定,在一个程序文件中,只能定义一个在一个程序文件中,只能定义一个public类类,其余的类可以是无修饰符的类,也可以是用final修饰符定义的最终类,否则编译时会报错。类访问修饰符 6-4第34页/共72页35【示例程序C3_2.java】class Fp C3_2 f1=new C3_2();int add()return(f1.b+f1.c);

    16、public class C3_2 int b=20,c=3;public static void main(String args)Fp p1=new Fp();System.out.println(p1.add();运行结果:运行结果:2323第35页/共72页36 3final修饰符修饰符 用用final修饰符修饰的类被称为最终类修饰符修饰的类被称为最终类。最终类是不能被任何其他类所继承的。定义最终类的目的有三:(1)用来完成某种标准功能。将一个类定义为final类,则可以将它的内容、属性和功能固定下来,与它的类名形成稳定的映射关系,从而保证引用这个类时所实现的功能是正确无误的。类访问修

    17、饰符 6-5第36页/共72页37 (2)提高程序的可读性。从父类派生子类,再从子类派生子类,使软件变得越来越复杂。而在必要的层次上设置final类,可以提高程序的可读性。(3)提高安全性。病毒的闯入途径之一是在一些处理关键信息的类中派生子类,再用子类去代替原来的类。由于用final修饰符定义的类不能再派生子类,截断了病毒闯入的途径,因而提高了程序的安全性。第37页/共72页38 4abstract修饰符修饰符 用用abstract修饰符修饰的类称为抽象类修饰符修饰的类称为抽象类。其作用在于将许多有关的类组织在一起,提供一个公共的基类,为派生具体类奠定基础。另外,当一个类中出现一个或多个用ab

    18、stract修饰符定义的方法时,则必须在这个类的前面加上abstract修饰符,将其定义为抽象类。访问修饰符 6-6第38页/共72页39 5类修饰符使用注意事项类修饰符使用注意事项 可以同时使用两个修饰符来修饰一个类,当使用两个修饰符修饰一个类时,这些修饰符之间用空格分开,写在关键字class之前,修饰符的顺序对类的性质没有任何影响。需要注意的是:需要注意的是:一个类可以被修饰为public abstract,也可以被修饰为public final,但不能被修饰为abstract final,这是因为abstract类自身没有对象,需要派生子类后再创建子类的对象,而final类不能派生子类,

    19、所以不存在用abstract final两个修饰符修饰的类。访问修饰符 6-7第39页/共72页401.无修饰符无修饰符:具有包访问特性。2.public访问修饰符访问修饰符:用public修饰的数据成员称为公有数据成员,使用时危险,通常不使用。3.private访问修饰符访问修饰符:用private修饰的数据成员称为私有数据成员。私有数据成员只能在定义它的类中使用,不能在类外使用,是对类进行封装时使用的主要方法。4.protected访问修饰符访问修饰符:用protected修饰的数据成员可以被该类及其子类的成员访问,同一个包中的类也可访问。主要作用是允许其他包中的子类访问父类。数据成员访问

    20、修饰符 6-7第40页/共72页41class ClassA private int k;private void methodA()System.out.println(“私有方法”);class ClassB void methodB()ClassA a=new ClassA();a.k=10;/a.methodA();/数据成员访问修饰符示例 第41页/共72页425.static修饰的静态数据成员修饰的静态数据成员 用static修饰符修饰的数据成员不属于任何一个类的具体对象,而是属于类的静态数据成员。其特点如下:(1)(1)它被保存在类的内存区的公共存储单元中,而不是保存在某个对象的

    21、内存区中。因此,一个类的任何对象访问它时,存取到的都是相同的数值。(2)(2)可以通过类名加点操作符访问它。(3)(3)static数据成员仍属于类的作用域,还可以使用public static、private static等进行修饰。修饰符不同,可访问的层次也不同。数据成员修饰符 6-8第42页/共72页43class Pc static double ad=8;public class C3_5 public static void main(Stringargs)Pc m=new Pc();Pc m1=new Pc();m.ad=0.2;System.out.println(m1=+m1

    22、.ad);System.out.println(Pc=+Pc.ad);System.out.println(m=+m.ad);【示例程序C3_5.java】对上述(1)和(2)的示例。运行结果:m1=0.2 Pc=0.2 m=0.2第43页/共72页446.final修饰符修饰符:用final修饰符修饰的数据成员称为最终数据成员。最终数据成员可以在声明时进行初始化,也可以通过构造方法赋值,但不能在程序的其他部分赋值,它的值在程序的整个执行过程中是不能改变的。用final修饰符说明常量时,需要注意:需要说明常量的数据类型并指出常量的具体值。数据成员修饰符 6-9第44页/共72页45class

    23、Ca static int n=20;final int n1;final int k=40;Ca()n1=+n;public class C3_6 public static void main(String args)Ca m1=new Ca();Ca m2=new Ca();/m1.n1=90;System.out.println(m1.n1=+m1.n1);System.out.println(m1.k=+m1.k);System.out.println(m2.n1=+m2.n1);System.out.println(m2.k=+m2.k);【示例程序示例程序C3_6.java】运行

    24、结果:m1.n1=21 m1.k=40 m2.n1=22 m2.k=40第45页/共72页46课堂练习1.P76 例3.10第46页/共72页47 在成员方法头中:在成员方法头中:修饰符可以是公共访问控制符public、私有访问控制符private、保护访问控制符protected等访问权限修饰符,也可以是静态成员方法修饰符static、最终成员方法修饰符final、本地成员方法修饰符native、抽象成员方法修饰符abstract等非访问权限修饰符。访问权限修饰符指出满足什么条件时该成员方法可以被访问。非访问权限修饰符指明数据成员的使用方式。成员方法修饰符第47页/共72页48方法修饰符方法

    25、修饰符方法修饰符staticfinalabstractnative第48页/共72页49static 修饰符 3-1qstatic修饰符修饰的方法叫静态方法。q静态方法是属于整个类的类方法,不用static修饰符限定的方法,是属于某个具体类对象的方法。qstatic方法使用特点如下:(1)static方法是属于整个类的,它在内存中的代码段将随着类的定义而分配和装载。而非static的方法是属于某个对象的方法,当这个对象创建时,在对象的内存中拥有这个方法的专用代码段。(2)引用静态方法时,可以使用对象名做前缀,也可以使用类名做前缀。第49页/共72页50static 修饰符 3-2(3)stat

    26、ic方法只能访问static数据成员,不能访问非static数据成员,但非static方法可以访问static数据成员。(4)static方法只能访问static方法,不能访问非static方法,但非static方法可以访问static方法。(5)main方法是静态方法。在Java的每个Application程序中,都必须有且只能有一个main方法,它是Application程序运行的入口点。第50页/共72页51例:class F int d1;static int d2;void me()static void me1()static void me2()me1();/合法引用 d1=34

    27、;/错,引用了非static数据成员 me();/错,引用了非static方法 d2=45;第51页/共72页52final 修饰符2-1 final不能修改变量不能修改变量子类不能重写方法子类不能重写方法第52页/共72页53final修饰的最终方法修饰的最终方法:用final修饰符修饰的方法称为最终方法,如果类的某个方法被final修饰符所限定,则该类的子类就不能覆盖父类的方法,即不能再重新定义与此方法同名的自己的方法,而仅能使用从父类继承来的方法。可见,使用final修饰方法,就是为了给方法“上锁”,防止任何继承类修改此方法,保证了程序的安全性和正确性。final 修饰符2-2第53页/

    28、共72页54 native修饰的本地方法修饰的本地方法:修饰符native修饰的方法称为本地方法,此方法使用的目的是为了将其他语言(例如C、C、FORTRAN、汇编等)嵌入到Java语言中。这样Java可以充分利用已经存在的其他语言的程序功能模块,避免重复编程。native 修饰符第54页/共72页55abstract 修饰符 2-1q由abstract修饰的方法叫抽象方法;由abstract修饰的类叫抽象类q抽象方法必须声明在抽象类中q抽象方法语法:abstract 返回值类型 方法名(形式参数列表);q声明抽象类语法:abstract class q抽象方法不具有任何实现代码第55页/共7

    29、2页56abstract 修饰符 2-2 abstract抽象类不能被实例化构造方法 和 static 方法不能是抽象的父类的抽象方法往往在子类中实现 第56页/共72页57课堂练习2.P83 例3.14第57页/共72页58构造方法q每当创建类的对象时就调用的方法q与类同名,但没有返回类型qJava 为对象分配内存,初始化实例变量并调用构造方法q两种构造方法q参数化构造方法q隐式构造方法第58页/共72页59参数化构造方法的示例class Sdate int month;int day;int year;Sdate(int m,int d,int y)month=m;day=d;year=y

    30、;System.out.println(日期是 +m+/+d+/+y+.);public static void main(String args)Sdate S1,S2;S1=new Sdate(5,27,2009);S2=new Sdate(8,8,2008);参数化构造方法第59页/共72页60隐式构造方法的示例class Sdate int month=5;int day=27;int year=2009;public static void main(String args)Sdate S1;S1=new Sdate();隐式构造方法第60页/共72页61q1.定义年、月、日三个变量

    31、;q2.定义一个构造方法,给三个变量赋初值;q3.定义main方法,输出今天的日期。构造方法练习第61页/共72页62在一个方法的定义过程中又调用自身的方法称为递归方法。在一个方法的定义过程中又调用自身的方法称为递归方法。例如:计算例如:计算N!的定义如下!的定义如下 1 (当N=0 时)N!=N*(N-1)!(当N0时)递归方法第62页/共72页63图3.5 求4!的递归过程 4!4*3!3*2!2*1!1*0!递归方法示例第63页/共72页64 成员方法的递归引用就是指在一个方法中直接或间接引用自身的情况。例如例如:int f1(int n)int p;p=f1(n-1)return p;

    32、递归方法示例第64页/共72页65int f1(int n)int f2(int m)int p;int s;p=f2(n-1);s=f1(m+2);return p;return s;递归方法示例间接调用第65页/共72页66public class C3_7 static int fac(int n)int fa;if(n=0)fa=1;else fa=n*fac(n-1);/递归引用自身 return fa;public static void main (Stringargs)int m=4;int f1=fac(m);/引用fac()方法 System.out.println(4!=

    33、+f1);【示例程序C3_7.java】编程计算4!的值。第66页/共72页67图3.6 计算4!的成员方法fac递归引用关系 第67页/共72页68包q 包允许将类组合成较小的单元(类似文件夹),使其易于找到和使用相应的类文件q 有助于避免命名冲突。在使用许多类时,类和方法的名称很难决定。有时需要使用与其他类相同的名称。包基本上隐藏了类并避免了名称上的冲突q 包允许在更广的范围内保护类、数据和方法,可以在包内定义类,而在包外的代码不能访问该类“包将类名空间划分为更加容易管理的块,包既是命名机制也是可见度控制机制”第68页/共72页69创建包package mypackage;public c

    34、lass Calculate public double volume(double height,double width,double depth)声明包第69页/共72页70导入包import mypackage.Calculate;public class PackageDemo public static void main(String args)Calculate calc=new Calculate();导入包第70页/共72页71总结 q对象由状态和行为组成 q类是具有相同属性和行为的一组对象的集合 q封装是隐藏对象实现细节的过程,以便不让用户看到q类的变量和方法可被该类的实例访问q圆点符号用于访问对象的成员q构造函数在创建对象时初始化对象第71页/共72页72感谢您的欣赏!感谢您的欣赏!第72页/共72页

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:JAVA面向对象编程基础课件.pptx
    链接地址:https://www.163wenku.com/p-4376758.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库