java教程3java面向对象编程.ppt
《java教程3java面向对象编程.ppt》由会员分享,可在线阅读,更多相关《java教程3java面向对象编程.ppt(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3 3章章JavaJava面向对象编程面向对象编程Sunny Liu本课教学内容w定义类w创建对象w成员数据和方法w给方法传参数w构造函数w访问说明符本课教学内容w修饰符w重载w包w继承的概念w在Java中实现继承本课教学内容w接口w方法覆盖w多态性w使用super问题陈述 w顾客介绍过程中的Customer类有如下的属性和行为:w创建一个顾客类Customer。该类存储顾客的个人信息:顾客ID号、顾客名、电话、邮编。为顾客类编写一个方法,该方法能显示顾客的个人信息。Customer CustomerIdCustomerNameCustomerPhoneString CustomerPos
2、tcode displayDetails()定义类w语法 class/body of class其中,class 是创建类所使用的关键字,是类的名称,包含属性和方法定义类w类的命名规则:不能为不能为 Java 中的关键字。中的关键字。不能包含空格或点号不能包含空格或点号“.”。可以以下划线可以以下划线“_”、字母或、字母或“$”符号开头。符号开头。class Box/成员数据/方法创建对象w创建一个对象分两步进行创建一个对象分两步进行:声明对象的引用变量或名称。声明对象的引用变量或名称。创建对象的一个实例。创建对象的一个实例。w语法语法 myboxnull创建对象w例子例子Box mybox;
3、在使用对象之前必须给它们分配内存。由new操作符来完成。mybox=new Box();Boxmybox成员数据w定义一个成员数据的语法为:定义一个成员数据的语法为:w例子例子public class Box private double length;private double width;private double depth;方法w语法:语法:(参数列表)/语句w例子例子 public double volume()return width*height*depth;返回类型返回类型方法名方法名参数列表参数列表访问说明符访问说明符方法首方法首部声明部声明方法体方法体使用成员数据和方法
4、w使用成员数据使用成员数据成员数据能用在不同的类中,通过创建类的对象然成员数据能用在不同的类中,通过创建类的对象然后用点后用点”.”.”引用对象的成员数据。引用对象的成员数据。w调用方法调用方法调用方法,必须是方法名后跟括弧和分号。调用方法,必须是方法名后跟括弧和分号。如果两方法在同一个类里面,可以直接使用该方法如果两方法在同一个类里面,可以直接使用该方法的名字进行调用。类的一个方法能调用相同类里的的名字进行调用。类的一个方法能调用相同类里的另一个方法。另一个方法。如果两方法不在同一个类中,一个方法通过创建类如果两方法不在同一个类中,一个方法通过创建类的对象然后用的对象然后用”.”操作符指向那
5、方法,从而调用操作符指向那方法,从而调用不同类里的方法。不同类里的方法。示例:使用成员数据和方法class Box double width;double height;double depth;double volume()return width*height*depth;public class BoxDemo public static void main(String args)Box mybox=new Box();double vol;/给盒子的实例变量赋值mybox.width=10;mybox.height=20;mybox.depth=15;/返回盒子的体积 vol=myb
6、ox.volume();System.out.println(Volume is +vol);圆点操作符实例分析1说明类2说明类的变量3说明类的方法4初始化变量5编写代码显示测试值6编写main()方法的代码7调用方法8编译运行程序任务单任务单实例分析w步骤步骤1:说明类:说明类 public class Customer实例分析w步骤步骤2:定义类的变量:定义类的变量 public class Customer public String CustomerId;public String CustomerName;public String CustomerPhone;public Stri
7、ng CustomerPostcode;实例分析w步骤步骤3:说明类中的方法:说明类中的方法 public class Customer public String CustomerId;public String CustomerName;public String CustomerPhone;public String CustomerPostcode;public void displayDetails()/写入显示顾客的信息的代码写入显示顾客的信息的代码实例分析w步骤步骤4:初始化变量:初始化变量 public class Customer public String Customer
8、Id;public String CustomerName;public String CustomerPhone;public String CustomerPostcode;public Customer()CustomerId=ALFKI;CustomerName=Maria Anders;CustomerPhone=(171)555-2222;CustomerPostcode=12209;public void displayDetails()/写入显示顾客的信息的代码实例分析w步骤步骤5:编写代码显示测试值:编写代码显示测试值 public class Customer public
9、 String CustomerId;public String CustomerName;public String CustomerPhone;public String CustomerPostcode;public Customer()CustomerId=ALFKI;CustomerName=Maria Anders;CustomerPhone=(171)555-2222;CustomerPostcode=12209;public void displayDetails()System.out.println(“Id of an Customer is+CustomerId);Sys
10、tem.out.println(“Name of an Customer is+CustomerName);System.out.println(“Phone of an Customer is+CustomerPhone);System.out.println(“Postcode of an Customer is+CustomerPostcode);实例分析w步骤6:编写main()方法w步骤7:调用方法w步骤8:编译运行程序public class Customer public String CustomerId;public String CustomerName;public St
11、ring CustomerPhone;public String CustomerPostcode;public Customer()CustomerId=ALFKI;CustomerName=Maria Anders;CustomerPhone=(171)555-2222;CustomerPostcode=12209;public void displayDetails()System.out.println(“Id of an Customer is+CustomerId);System.out.println(“Name of an Customer is+CustomerName);S
12、ystem.out.println(“Phone of an Customer is+CustomerPhone);System.out.println(“Postcode of an Customer is+CustomerPostcode);public static void main(String args )Customer customerObject=new Customer();customerObject.displayDetails();稍等一下w编写CustomerCollection类,该类保存并显示三个顾客的信息。w以下是提供给你的Customer类的代码模板。cla
13、ss Customer public String CustomerId;public String CustomerName;public String CustomerPhone;public String CustomerPostcode;public void displayDetails()/显示顾客的信息的代码System.out.println(CustomerId);System.out.println(CustomerName);System.out.println(CustomerPhone);System.out.println(CustomerPostcode);给方法
14、传参数w传值调用传值调用w引用调用引用调用传值调用 calling()int percent=10;System.out.println(“Before:percent=”+percent);called(percent);System.out.println(“After:percent=”+percentt);called(int x)x=3*x;System.out.println(“End of method:x=”+x);1030值被拷贝值增至3倍percent=x=引用调用 calling()Person harry=new Person();called(harry);calle
15、d(Person x)x.raiseSalary(200);拷贝引用薪金增至3倍harry=x =Person构造函数w声明构造函数的语法规则w默认构造函数构造函数的语法规则w一个新对象初始化的最终步骤是去调用对象的构造函数。w构造函数必须满足以下条件:方法名必须与类名称完全相匹配;方法名必须与类名称完全相匹配;不要声明返回类型;不要声明返回类型;不能被不能被static、final、synchronized、abstract、native修饰。修饰。默认构造函数w默认构造方法是没有参数的构造函数,你可以显式定义类的默认构造函数。w当一个类没有包含构造函数时,Java将自动提供一个默认构造函数
16、。该构造函数没有参数,用public 修饰,而且方法体为空。格式如下:public classname()w只要类中显式定义了一个或多个构造函数,而且所有显式定义的构造函数都带参数,那么将失去默认构造函数。示例:构造函数/第一个构造函数,无参数,默认给出长宽高Box()width=20;height=30;depth=15;/第二个构造函数,给出长宽高的参数Box(double w,double h,double d)width=w;height=h;depth=d;/第三个构造函数,给出另一个Box作参数Box(Box r)width=r.getWidth();height=r.getHei
17、ght();depth=r.getDepth();Box boxes=new Box3;boxes0=new Box();boxes1=new Box(12,20,10);boxes2=new Box(boxes0);访问说明符w信息隐藏是OOP最重要的功能之一,也是使用访问说明符的原因w信息隐藏的原因包括:对任何实现细节所作的更改不会影响使用该类的代码对任何实现细节所作的更改不会影响使用该类的代码防止用户意外删除数据防止用户意外删除数据此类易于使用此类易于使用 访问修饰符访问修饰符访问说明符访问说明符访问说明符访问说明符privateprotectedpublic默认public访问说明符w
18、所有的类除了内部类(在其它类里的类)都能有public访问说明符。w你能从任何Java程序中的任何对象里使用共有类、成员变量和方法。w例子:public class PublicClass public int publicVariable;public void publicMethod().public class Applicant public String applicantID;public String applicantName;public String applicantAddress;public String applicantPosition;public void
19、displayDetails()System.out.println(“I am a Applicant”);示例:public访问说明符public class otherClass public static void main(String args)Applicant applicant;applicant=new Applicant();applicant.displayDetails();protected 访问说明符w在类中声明为protected的变量、方法和内部类能被其子类所访问。w你定义了一个protected成员,那么这个成员可以在以下情况下被访问:类本身类本身相同包中的
20、其它类相同包中的其它类子类(可以在相同包中或不同包中)子类(可以在相同包中或不同包中)package HR;public class Applicant protected String applicantID;protected String applicantName;protected String applicantAddress;protected String applicantPosition;protected void displayDetails()System.out.println(“I am a Applicant”);示例:protected访问说明符package
21、 Other;import HR.*;public class testDifferentPackage public static void main(String args)Applicant applicant;applicant=new Applicant();applicant.displayDetails();Why wrong?private 访问说明符w只有相同类的对象才能访问私有变量或方法。w只能规定变量、方法和内部类是私有的。w例子private class Applicant /some codes hereWhy wrong?class Applicant privat
22、e String applicantID;private String applicantName;private String applicantAddress;private String applicantPosition;private void displayDetails()System.out.println(“I am a Applicant”);示例:private访问说明符public class testPrivateClass public static void main(String args)Applicant applicant;applicant=new Ap
23、plicant();applicant.displayDetails();Why wrong?package访问说明符w如果我们没有规定访问说明符,那就是friendly(友元)或(package)的。wfriendly不是关键字。w拥有友元访问符的类、变量或方法对包里所有的类来说都是可以访问的。示例:package访问说明符class Xclass Yclass ZPackage APackage B方法accessMe()已在类X中声明。下列表格告诉你从类Y和Z中访问方法accessMe()的可能性。访问说明符类Y类Zprotected accessMe()可访问,Y是子类可访问,Z是子类
24、(即使它在另一包中)accessMe()可访问,在同一包中不可访问,不在同一包中访问说明符访问说明符同一个类同包 不同包,子类不同包,非子类private protected public default 修饰符wstaticwfinalwabstract wnativewtransientwsynchronizedwvolatilestatic修饰符w类(static)变量w类(static)方法w静态初始化程序static(静态域)w用static修饰的域是仅属于类的静态域。w静态域是类中每个对象共享的域。w它们是类的域,不属于任何一个类的具体对象。w静态域是一个公共的存储单元,任何一个类
25、的对象访问它时,取到的都是相同的数值。public class Count private int serialNumber;private static int counter;public Count()counter+;serialNumber=counter;System.out.println(My serialNumber is +serialNumber);.static(静态域)public static void main(String args)System.out.println(At first,counter=+counter);Count count1=new Co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 教程 面向 对象 编程
限制150内