002 面向对象编程.ppt
专业教程理论讲解部分Ver3.1概述:方法重载 对象的生成 对象的使用重点:难点:方法重载方法重载生成对象第002课深入Java编程 3.1 类方法重载的概念方法重载即指多个方法可以享有相同的名字。但是这些方法的参数列表必须不同,或者是参数个数不同,或者是参数类型不同。3 方法重载第002课深入Java编程 例如:要打印不同类型的数据,int,float,String,不需要定义不同名的方法:printInt(int);printFloat(float);printString(String)。利用方法重载,只需要定义一个方法名 println(),接收不同的参数:3.2 类方法的重载3 方法重载第002课深入Java编程 什么是方法的重载?在同一个类中至少有两个方法用同一个名字,但有不同的参数。类类void println(int int_num)void println(double double_num)void println(nit nit_ um,float float_um)1231.23123,1.233.2 类方法的重载第002课深入Java编程 3 方法重载利用方法重载,计算边长分别为整型数和双精度数的正方形的面积。例子:3.2 类方法的重载第002课深入Java编程 3 方法重载import java.io.*;public class MathodOverloadApplicationpublic static void main(String args)MathodOverloadApplication obj=new MathodOverloadApplication();System.out.println(The square of integer 10 is+obj.square(10);System.out.println(The square of integer 10.25 is+obj.square(10.25);3.2 类方法的重载第002课深入Java编程 3 方法重载 int square(int x)return x*x;double square(double y)return y*y;3.2 类方法的重载第002课深入Java编程 3 方法重载相同的方法名不同的参数列表void print(booleanb)void print(charc)void print(inti)void print(longl)void print(Strings)3.3 重载的特点:第002课深入Java编程 3 方法重载创建类的对象,即实例化对象。对象是创建的具体实例。创建对象步骤:说明新建对象所属的类名;说明新建对象的名字;用new为新建对象开辟内存空间如:已知有一个类:4 对象4.1 创建对象步骤第002课深入Java编程 class class PhoneCard long cardNumber;private int password;double balance;String connectNumber;boolean connected;boolean performConnection(long cn,int pw)4 对象4.1 创建对象步骤第002课深入Java编程 double getBalance()void performDial()4 对象4.1 创建对象步骤第002课深入Java编程 如先创建PhoneCard类的一个对象mycard:先声明,后创建PhoneCard mycard;mycard=new PhoneCard();声明的同时创建对象PhoneCard mycard=new PhoneCard();4 对象4.2 创建对象第002课深入Java编程 要访问或调用一个对象的变量或方法,需要用算符“.”连接这个对象与其变量和方法。如:System.out.println(mycard.cardNumber);只能通过这个对象变量来访问其变量和方法。4.3使用对象4 对象第002课深入Java编程 说明:说明:new是“为新建对象开辟内存空间”的运算符;它以类为模板,开辟空间并实例化一个对象,返回对该对象的一个引用(即该对象所在的内存地址)。被声明的对象,称为对象变量。4.4使用对象4 对象第002课深入Java编程 构造函数是类的一种特殊方法。构造函数的特殊性体现在:构造函数是与类同名的方法;没返回值,也不能写void;主要作用是完成新建对象的初始化工作;一般不能显式地直接调用,而是用new来调用;创建一个类的新对象的同时,系统自动调用该类的构造函数,为新建对象的初始化。5构造函数(构造方法)5.1构造函数的特点功能:在创建对象的同时,完成新建对象的初始化工作。第002课深入Java编程 例如,可以为PhoneCard类定义如下的构造函数,5.2 构造函数的举例5构造函数(构造方法)第002课深入Java编程 PhoneCard(long cn,int pw,double b,String s)cardNumber=cn;password=pw;balance=b;connectNumber=s;connected=false;创建一个类的对象用如下格式:类名 变量名 =new 类的构造函数;所以我们可以得到PhoneCard类的对象:PhoneCard myCard=new PhoneCard(12*1234,50.0,“300”);5.2 构造函数的举例5构造函数(构造方法)第002课深入Java编程 构造函数还可以完成赋值以外的其他复杂操作 5.2 构造函数的举例5构造函数(构造方法)第002课深入Java编程 PhoneCard(long cn,int pw,double b,String s)cardNumber=cn;password=pw;if(b 0)balance=b;else System.exit(1);connectNumber=s;connected=false;一般情况下,类都有一个至多个构造函数,如果在定义类对象时没有定义任何构造函数,称为默认构造函数。默认构造函数不带参数,并且方法体为空。如果上面的PhoneCard类没有定义构造函数,则系统产生的默认构造函数如下:PhoneCard()5.3 默认构造函数5构造函数(构造方法)第002课深入Java编程 一个类的实例化,就是去调用一个叫做构造函数的方法。构造函数的两个规则:方法名称必须与类名称完全相匹配 对于方法,不要声明返回类型 5.4 构造函数特点5 构造函数(构造方法)第002课深入Java编程 constructor(构造函数),在一个类中和类同名的方法叫构造函数.系统在产生对象时会自动执行.class Point int x,y;Point()x=0;y=0;Point(int new_x,int new_y)x=new_x,y=new_y;class UsePoint Point point_A=new Point();Point point_B=new Point(5,7);5.4 构造函数特点5 构造函数(构造方法)第002课深入Java编程 构造函数应包含哪些内容?构造函数多半定义一些初值或内存配置工作。一个类可以有多个构造函数(重载),根据参数的不同决定执行哪一个。如果程序中没有定义构造函数,则创造实例时使用的是缺省函数,它是一个无内容的空函数.5.4 构造函数特点5 构造函数(构造方法)第002课深入Java编程 构造函数的调用次序:构造函数以派生的次序调用。先调用父类,再调用子类的.如下:ConstractOrder.java5 构造函数(构造方法)第002课深入Java编程 class CCC extends BBB CCC()System.out.println(Inside Cs constructor.);class ConstractOrder public static void main(String args)CCC c=new CCC();class AAA AAA()System.out.println(InsideAs constructor.);class BBB extends AAA BBB()System.out.println(Inside Bs constructor.);5.5构造函数的调用次序5 构造函数(构造方法)第002课深入Java编程 打印结果:Inside As constructorInside Bs constructorInside Cs constructor在Java编程语言中使用new运算符生成一个对象:例如:Hello obj=new Hello();5.6 对象的生成5 构造函数(构造方法)第002课深入Java编程 为对象开辟空间;对对象的成员变量进行缺省的初始化;调用构造方法;5.7 对象的生成过程5 构造函数(构造方法)第002课深入Java编程 小结:类的概念?如何取得一个类的对象?构造函数的用处第002课深入Java编程 1如何生成一个类的对象?2构造函数的调用次序是?小测验第002课深入Java编程 写一个车类,该类中有showType(),重写改方法,显示不同类型的车。课后作业:第002课深入Java编程