版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目3 面向对象编程基础项目3 面向对象编程基础主要内容3.1 任务描述3.2 类和对象3.3 继承和多态3.4 接口和包3.5 Java异常处理3.6 任务实施主要内容3.1 任务描述能力要求理解面向对象编程的基本思想掌握类、对象的基本概念,类与对象之间的关系能用Java语言编写一个类能实现对象的生成及对对象的成员方法和成员变量的调用能力要求理解面向对象编程的基本思想Java课件-项目3-面向对象编程基础Java课件-项目3-面向对象编程基础面向对象程序设计概述对象对象的行为(behavior)可以对对象实施的操作,或对象所具有的功能。对象的属性(attribute)对象的外观、性质、属性等
2、。类封装性继承性多态性面向对象程序设计概述对象面向对象技术的基本概念和特征对象、类和实体对象类实例化抽象计算机世界实体抽象数据类型现实世界抽象映射计算机逻辑的实现面向对象技术的基本概念和特征对象、类和实体对象类实例化抽象计类与对象的概念对象与类对象:现实世界中某个具体的物理实体在计算机逻辑中的映射和体现,其基本组成:对象标识状态(对象的静态属性)行为(对象的操作)(张三,男,吃饭)类:一种抽象的数据类型,是同种对象的集合与抽象。是Java程序的基本组成要素,描述了一类对象的状态和行为,其基本成分包括:成员变量成员方法(人,性别,吃饭的过程)请大家分析“学生”“孙旭川”类与对象的概念对象与类类与
3、对象的另一实例对象是类的实例类与对象的另一实例对象是类的实例类的定义class 类名称 数据类型 属性名; .; 返回值类型 方法名称(参数1, 参数2, .) 程序语句; .; return 表达式; Java中定义类的通用格式:类的定义class 类名称Java中定义类的通用格式:Java中定义类的通用格式:class Student int stuNum; String stuName; char stuSex; int stuAge; void enrol() System.out.println(“学生”+stuName+” 已注册入学”);void selectCourse()Sy
4、stem.out.println(“学生”+stuName+”已选课”);String getStuInfo()return “”学号:”+stuNum+”t 姓名:”+stuName+”t 性别:”+stuSex+”t 年龄:”+stuAge;成员变量(对象属性)成员方法(对象的行为或操作)Java中定义类的通用格式:class Student成员类的成员变量与成员方法成员变量1.命名约定遵循Java标识符的基本规则遵循命名惯例2.默认值未赋值的成员变量将被系统赋予默认值成员方法基本结构type methodName(parameter-list) /方法体 方法返回类型参数列表,可选方法名
5、类的成员变量与成员方法成员变量方法返回类型参数列表,可选方法对象及对象的使用对象对象是一个动态概念,具有产生、使用和消亡的生命周期通过new操作符创建对象对象属性的使用:对象名.属性;对象方法的使用:对象名. 方法名();当对象不再使用时,将由系统的垃圾回收机制进行回收。对象及对象的使用对象方法的使用分析下面程序段的输出:public class Func public static double getArea(double l,double w) return l*w; public static void main(String args)double area=getArea(5.0,
6、8.0);System.out.println(“第1个矩形的面积为:”+area);System.out.println(“第1个矩形的面积为:”+getArea(10.0,12.0);getArea(8.0,12.0);调试运行例35,观察输出值。方法的使用分析下面程序段的输出:方法参数中的值传递与引用传递分析下面程序段的输出:class Demopublic void increase(int x)x=x+5;class DemoTestpublic static void main(String args)Demo d=new Demo();int x=20;d.increase(x)
7、;System.out.println(x=+x);调试运行例37,观察输出值当参数为对象时传递的是引用当参数为基本数据类型时传递的是值本身方法参数中的值传递与引用传递分析下面程序段的输出:当参数为对构造方法构造方法是一种特殊的方法,其语法格式如下类名称() 程序语句;语法说明:构造方法的名称必须与类名一致。它没有返回值。由于构造方法主要是给其它类调用的,因此构造方法的访问权限一般都为public。构造方法构造方法是一种特殊的方法,其语法格式如下构造方法及其重载构造方法所完成的主要工作是帮助新创建的对象赋初值(也称构造函数)。class 类名称 访问权限类名称(类型1 参数1,类型2 参数2,
8、) 程序语句; . / 构造方法没有返回值 在使用构造方法的时候需要注意:它与类具有相同的名称。它没有返回值。由于构造方法主要是给其它类调用的,因此构造方法的访问权限一般都为public。构造方法及其重载构造方法所完成的主要工作是帮助新创建的对象赋构造方法及其重载在执行javac编译java程序的时候,如果在程序中没有明确声明一构造方法的话,系统会自动为我们的类加入一个无参的且什么都不做的构造方法。public Circle()在Java里,不仅普通方法可以重载,构造方法也可以重载。只要构造方法的参数个数不同,或是类型不同,便可定义多个名称相同的构造方法。注意在Java中,只要申明了一个构造方
9、法(无论有没有参数),则默认的构造方法就不会被生成。因此我们还需要在类中申明一个无参数的构造方法。构造方法及其重载在执行javac编译java程序的时候,如果3.3 继承和多态 继承和多态是面向对象程序设计的两个重要的概念。一、继承 继承是由一种现有的类创建新类的机制。先创建一个共有属性的一般类,根据一般类再创建具有共有属性的新类,新类继承了一般类的属性和行为,并根据需要增加它自己的属性和行为。 由继承得到的类称为子类,被继承的类称为父类,也称为基类或超类。3.3 继承和多态 继承和多态是面向对象程序设计类的层次结构类继承的语法形式Java继承的可以采用以下的语法格式:class 父类 / 定
10、义父类 class 子类 extends 父类 / 用extends关键字实现类的继承例如:class Student extends People / 声明学生类Student为人员类People的子类类的层次结构类继承的语法形式二、多态 所谓多态,是指一个程序中同名的不同方法共存的情况。在面向对象的程序中,多态的情况有多种,可以通过子类对父类方法的覆盖实现多态,也可以利用重载在同一个类中定义多个同名的不同方法来实现多态。 1、方法覆盖 2、方法重载 3、抽象方法和抽象类二、多态 所谓多态,是指一个程序中同名的不同方法共存方法的覆盖1、方法的覆盖 如果子类中的某个方法与其父类具有相同的名称和
11、参数(个数和类型都相同),则称该子类重构了该方法(overriding),重构也称为覆盖。这样父类定义的方法在子类就“看不见”了,当子类的这一方法被调用的时候,将直接使用子类定的方法。方法的覆盖1、方法的覆盖方法覆盖有关方法重构的规定子类重构父类方法时,子类方法的返回值类型应当与被重构的方法的类型相同;子类不能重构父类的final 和private 方法;子类不能用实例方法重构父类的static 方法。子类的static 方法可重构父类的static方法,但不能重构父类的实例方法;子类方法重构父类方法时,子类方法的访问权限修饰符不能严于父类方法的访问修饰符;子类若要引用父类中被重构的方法,应使
12、用“super.方法名”的方式;方法覆盖有关方法重构的规定方法重载2、方法重载 如果在同一个类中定义了多个同名的方法,它们或有不同的形参个数或有不同的形参类型,则称该方法为被重载(Overloading)。在调用时,Java 将根据实参个数或实参类型选择匹配的方法。 成员方法的重载 构造方法的重载方法重载2、方法重载多态方法的动态调用类Dog和类Cat都继承了Anima。Animal有一bark方法。多态方法的动态调用多态Animal.java1 public class Animal 2 public void bark() 3 Dog.java1 public class Dog exte
13、nds Animal2 public void bark() 3 System.out.println(汪汪);4 5 多态Animal.java多态Cat.java1 public class Cat extends Animal2 public void bark() 3 System.out.println(喵喵);4 TestAnimal.java1 public class TestAnimal 2 public static void main (String args)3 4 Animal animal = new Dog();5 animal.bark();6 animal =
14、 new Cat();7 animal.bark();8 9 多态Cat.java多态输出结果 汪汪喵喵 在Anima.java中的第2行,定义了一个空的bark函数。Dog和Cat都是从Anima中派生出来的。在Dog.java和Cat.java中的第3行分别覆盖了bark函数。然后在TestAnimal.java中进行测试,我们在TestAnimal的第4行定义了一个Animal类型的对象,首先我们赋给它一个Dog类型的对象,然后调用其bark进行测试。然后在第6行又赋给它一个Cat类型的对象,并调用bark进行测试。从输出的结果可以看到,在不同的时候animal对象调用bark所产生的结
15、果是不同的。多态输出结果 多态输出结果 汪汪喵喵在Anima.java中的第2行,定义了一个空的bark函数。Dog和Cat都是从Anima中派生出来的。在Dog.java和Cat.java中的第3行分别覆盖了bark函数。然后在TestAnimal.java中进行测试,我们在TestAnimal的第4行定义了一个Animal类型的对象,首先我们赋给它一个Dog类型的对象,然后调用其bark进行测试。然后在第6行又赋给它一个Cat类型的对象,并调用bark进行测试。从输出的结果可以看到,在不同的时候animal对象调用bark所产生的结果是不同的。多态输出结果 抽象类和抽象方法3、抽象类和抽象
16、方法在Java自上而下的类的继承结构层次中,位于上层的类应是更加具有通用性和更加的抽象,有时由于对象高级抽象的需要,我们需要类只是申明方法的首部,而不需要说明其方法的主体,其主体部分由子类来完成。在Java中,使用abstract关键字可以实现这个功能。需要注意的是,由于抽象类的抽象性,因此其不能创建任何的对象,抽象类只是用来被其子类继承。抽象类和抽象方法3、抽象类和抽象方法抽象类和抽象方法抽象类的定义规则:抽象类和抽象方法必须由abstract关键字来修饰。抽象类不能实例化,也就是不能用new关键字去产生对象。抽象的方法主需要申明,不需要具体的实现。含抽象方法的类必须申明为抽象类,抽象类的子
17、类必须覆盖实现父类的所有抽象方法后才能被实例化,否则这个子类还是抽象类。抽象类中除了抽象方法外,也可包含具体的数据和具体的方法。抽象类和抽象方法抽象类的定义规则:抽象类和抽象方法抽象类的定义格式如下:abstract class 类名称 /定义抽象类 申明数据成员; 访问权限 返回值数据类型 方法名称 (参数.) /普通的方法 . 访问权限 abstract 返回值数据类型 方法名称 (参数.); /抽象方法例如:把Animal类申明为abstract,然后把bark申明为抽象的方法。 public abstract class Animal public abstract void bark
18、(); 抽象类和抽象方法抽象类的定义格式如下:3.4 接口和包一、接口 与C+不同的是,Java不支持多重继承。接口中可以实现“多重继承”,且一个类可以实现多个接口,这些机制使接口提供了比多重继承更简单、更灵活、更强大的功能。1、接口的定义 接口在语法上与抽象类非常相似,它定义了一些抽象方法和常量,形成一个属性集合。该属性集合通常对应于某一组功能。3.4 接口和包一、接口接口的定义2、定义接口的一般语法格式如下:public interface 接口名 extends 父接口名列表 public static final 数据类型 常量标识符=常量值; public abstract 返回值类
19、型 方法名(参数); 说明: 在接口中只提供方法的定义但不提供其具体实现,接口提供了方法原型的封装机制。接口的定义2、定义接口的一般语法格式如下:接口的实现3、接口的实现 接口定义的仅仅是实现某一特定功能的对外接口和规范,并没有真正实现这个功能。这个功能的真正实现是在“继承”这个接口的各个类中完成的,要在这些类中具体定义接口中各抽象方法的方法体。 定义好一个接口之后,一个或多个类可以实现这个接口。接口的实现3、接口的实现要实现一个接口必须在类的定义中包含一个implements子句。包含implements关键字的一般语法格式如下:修饰符 class extends 父类名 implement
20、s接口明列表 /类体说明: 一个类也可以实现多个接口。如果一个类要实现多个接口,那么接口之间要用逗号隔开。要实现一个接口必须在类的定义中包含一个implements子二、Java中的包 为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。Java程序编译的类被放在包内,要访问类就要给出类所属的包名,来指明类是在哪一个包中,以便能够找到该类。二、Java中的包 为了更好地组织类,Java提供1、包的定义 可以使用package语句指明源文件中的类属于哪个具体的包。其一般的语法格式为: package包名; 例如:packag
21、e jyvtc;1、包的定义2包的使用 包是类的集合,将类组织成包是为了更好地利用包中的类。同一个包中的类相互访问不用指定包名;如果要引用其他包中的公共类,则需要指出包名。因此在程序中首先需要用import语句将该类所在的包导入。导入包的一般语法格式如下: import 包名;2包的使用3、包的访问权限 包除了提供类和接口的机制外,还提供了包一级的访问控制机制。包一级的访问控制机制包含两个方面,一是对于包中类和接口的访问控制,二是对于类成员的访问控制。 Java语言中的访问权限有public、protected、默认的包访问权限和private。 4种访问控制符的权限见表3-1所示。3、包的访
22、问权限访问控制符同一类同一包不同包中的子类不同包中的非子类private是否否否无访问控制符是是否否protected是是是否public是是是是表3-1 访问控制符的权限表3-1 访问控制符的权限Java中的API 所谓应用程序接口API(Application Program Interface)实际上就是一些已经写定义好的、可供用户直接调用的类库。Java API也是采用包的形式组织起来的,功能相关的类和接口放在同一个包中,程序设计人员可以方便地查找与使用。 最常用的是Java核心包和Java扩展包。Java中的API 所谓应用程序接口API(App3.5 Java异常处理1、 异常的基
23、本概念 异常(Exception)指的是程序执行过程中出现的非正常情况。在Java程序的执行过程中,任何中断正常程序流程的情况都是错误或异常。异常经常出现在以下情况:打开的文件不存在除数为零数组下标越界网络连接突然中断内存空间不够3.5 Java异常处理1、 异常的基本概念2、异常处理机制 在Java语言中,所有的异常都是用类来表示的。当程序发生异常时,会生成某个异常类对象,异常对象一旦产生,系统中就一定有相应的机制来处理,确保用户程序在执行期间不会死机、死循环或其他对操作系统的损害,从而保证了整个程序运行的安全性。2、异常处理机制3、Java中的异常类 Java中的每个异常都是Throwab
24、le类及其子类的实例对象。Throwable类是Java.lang包中一个专门用来处理异常的类,它有两个标准的子类:Error和Exception类,即错误和异常子类。3、Java中的异常类异常类的层次Java 的异常类是处理运行错误的特殊类,每一个异常类都对应一种特定的运行错误。所有的Java 异常类都是系统类库中的Exception 类的子类。其类的层次结构如图所示。Throwable 类是类库java.1ang 包中的一个类,它派生了两个子类:Exception和Error。其中Error 类由系统保留,而Exception类则供应用程序使用。异常类的层次Java 的异常类是处理运行错误
25、的特殊类,每一个异常类的层次Error类例如,动态链接错误、虚拟机错误等,由Java虚拟机生成并抛弃。通常,Java 程序不对这类异常进行处理。在Java 编程语言中,错误(Error)类定义被认为是不能恢复的严重错误。在大多数情况下,当遇到这样的错误时,建议让程序中断。Exception类一般性程序故障,一般由用户代码或类库生成并抛出,Java 程序需要对它们进行处理。同其他的类一样,Exception 类有自己的方法和属性Exception类构造方法有两个public Exception();public Exception(String s);异常类的层次Error类4、异常的处理 (1)异常的捕获与处理 Java语言提供了try-catch-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子设备交易合同案例
- 悔过自责重建信任
- 珍爱和平和谐相处
- 香蕉采购合同示例
- 版企业借款合同模式
- 地毯招标废标原因文件
- 建筑施工土方填筑招标
- 户外垃圾桶设计招标
- 电子招投标操作技巧
- 大楼租赁合同书
- 小学四年级上册道德与法治期末测试卷(完整版)
- 2024年长沙电力职业技术学院单招职业技能测试题库附答案
- ICP备案网站建设方案书
- 中外文化比较专题智慧树知到期末考试答案2024年
- 装修设计招标评标办法
- 初中英语翻译专题训练100题含答案
- 基于机器学习的查询优化
- 2024届浙江省义乌市稠州中学数学八年级下册期末学业质量监测试题含解析
- 葡萄酒鉴赏智慧树知到期末考试答案2024年
- 防化兵知识课件
- GB/T 29319-2024光伏发电系统接入配电网技术规定
评论
0/150
提交评论