您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > java语言程序设计第2章.
1第二章类与对象的基本概念JAVA语言程序设计JAVA语言程序设计08信息管理2目录2.1面向对象的程序设计方法概述2.2类与对象2.3对象初始化和回收2.4应用举例2.5UML简介2.6本章小节JAVA语言程序设计08信息管理32.1面向对象的程序设计方法概述面向对象的程序设计四大重要特征抽象封装继承多态JAVA语言程序设计08信息管理4对象万物皆对象。两大构成要素:属性(数据)、行为(方法)类–将属性及行为相同或相似的对象抽象为类–对象是类的实例面向对象程序设计方法概述2.1面向对象的程序设计方法概述(续)JAVA语言程序设计08信息管理5例:–钟表数据(属性)–intHour;intMinute;intSecond;方法(行为)–SetTime();ShowTime();面向对象程序设计方法概述JAVA语言程序设计08信息管理6例:–人数据(属性)–char*name;char*gender;intage;intid;方法(行为)–生物行为Eat(),Step(),…–社会行为Work(),Study(),…面向对象程序设计方法概述JAVA语言程序设计08信息管理72.2.1类的声明声明形式[public][abstract|final]class类名称[extends父类名称][implements接口名称列表]{成员变量(属性);成员方法(行为);}类与对象JAVA语言程序设计08信息管理8关键字–Class表明其后声明的是一个类。–extends如果所声明的类是从某一父类派生而来,那么,父类的名字应写在extends之后–implements如果所声明的类要实现某些接口,那么,接口的名字应写在implements之后2.2.1类的声明(续)类与对象JAVA语言程序设计08信息管理9修饰符–可以有多个,用来限定类的使用方式–public表明此类为公有类–abstract指明此类为抽象类–final指明此类为终结类类声明体–变量成员声明及初始化可以有多个–方法声明及方法体可以有多个2.2.1类的声明(续)类与对象JAVA语言程序设计08信息管理10钟表类publicclassClock{//成员变量(属性)inthour;intminute;intsecond;//成员方法(行为)publicvoidsetTime(intnewH,intnewM,intnewS){hour=newH;minute=newM;second=news;}publicvoidshowTime(){System.out.println(hour+:+minute+:+second);}}2.2.1类的声明(续)——例2_1类与对象JAVA语言程序设计08信息管理11变量和对象–变量除了存储基本数据类型的数据,还能存储对象的引用,用来存储对象引用的变量称为引用变量–类的对象也称为类的实例2.2.2对象的声明与引用类与对象JAVA语言程序设计08信息管理12对象的声明–格式类名变量名:Clockaclock;–声明一对象时并没有开辟内存空间2.2.2对象的声明与引用(续)类与对象JAVA语言程序设计08信息管理13对象的创建–生成实例的格式:new类名()例如:aclock=newClock()其作用是:在内存中为此对象分配内存空间–对象可以被赋以空值例如:aclock=null;2.2.2对象的声明与引用(续)类与对象JAVA语言程序设计08信息管理142.2.3数据成员(成员变量)成员变量–分为实例变量和类变量类与对象JAVA语言程序设计08信息管理15–声明格式[public|protected|private][static][final][transient][volatile]变量数据类型变量名1[=变量初值],变量名2[=变量初值],…;–格式说明public、protected、private为访问控制符static指明这是一个静态成员变量final指明变量的值不能被修改transient指明变量是临时状态volatile指明变量是一个共享变量2.2.3数据成员(续)类与对象JAVA语言程序设计08信息管理16实例变量–没有static修饰的变量称为实例变量–用来存储对象需要的属性信息,不同对象属性值可能会不同–可通过下面的表达式访问对象属性的值对象名.实例变量名2.2.3数据成员(续)——实例变量类与对象JAVA语言程序设计08信息管理17声明一个表示圆的类,保存在文件Circle.java中。然后编写测试类,保存在文件ShapeTester.java中,并与Circle.java放在相同的目录下publicclassCircle{intradius;}publicclassShapeTester{publicstaticvoidmain(Stringargs[]){Circlex;x=newCircle();System.out.println(x);System.out.println(radius=+x.radius);}}2.2.3数据成员(续)——例2_2类与对象JAVA语言程序设计08信息管理18编译后运行结果如下:Circle@26b249radius=0解释–@之后的数值为x所指的对象的存储地址–x的值及对象的状态如图2.2.3数据成员(续)——例2_2运行结果类与对象JAVA语言程序设计08信息管理19将两个文件合并为ShapeTester.java。注意:一个文件中只能有一个public类,该类中可以包含main函数,且文件名与该类名相同。classCircle{intradius;}publicclassShapeTester{publicstaticvoidmain(Stringargs[]){Circlex;x=newCircle();System.out.println(x);System.out.println(radius=+x.radius);}}JAVA语言程序设计08信息管理20声明一个表示矩形的类,保存在Rectangle.java中;编写测试类,保存在ShapeTester.java中,二文件保存在相同的目录下publicclassRectangle{doublewidth=10.128;doubleheight=5.734;}publicclassShapeTester{publicstaticvoidmain(Stringargs[]){Circlex;Rectangley;x=newCircle();y=newRectangle();System.out.println(x++y);}}2.2.3数据成员(续)——例2_3类与对象JAVA语言程序设计08信息管理21编译后运行结果如下:Circle@82f0dbRectangle@92d342解释–Circle及Rectangle类对象的状态如图2.2.3数据成员(续)——例2_3运行结果类与对象JAVA语言程序设计08信息管理22对ShapeTester类进行修改,使两个实例具有不同的实例变量值publicclassShapeTester{publicstaticvoidmain(Stringargs[]){Circlex;Rectangley,z;x=newCircle();y=newRectangle();z=newRectangle();x.radius=50;z.width=68.94;z.height=47.54;System.out.println(x.radius++y.width++z.width);}}2.2.3数据成员(续)——例2_3修改类与对象JAVA语言程序设计08信息管理23编译后运行结果如下:5010.12868.94解释–Circle及Rectangle类对象的状态如图2.2.3数据成员(续)——修改后运行结果类与对象JAVA语言程序设计08信息管理24地址簿程序–一个人的地址通常包括以下信息:姓名,省份,城市,街道,门牌号,邮政编码–采用过程化的程序设计方法,使用简单变量存储,则存储两个人地址的代码如下2.2.3数据成员(续)——例2_4类与对象JAVA语言程序设计08信息管理25publicstaticvoidmain(Stringargs[]){Stringname1,name2;intgateNumber1,gateNumber2;StringstreetName1,streetName2;Stringcity1,city2;Stringprovince1,province2;StringpostalCode1,postalCode2;name1=ZhangLi;gateNumber1=15;streetName1=TsinghuaEastRoad;city1=Beijing;province1=“Beijing;postalCode1=100084;name2=LiHong;gateNumber2=2;streetName2=BeiNong;city2=Beijing;province2=Beijing;postalCode2=102206;//...dosomethinginteresting}2.2.3数据成员(续)——例2_4类与对象JAVA语言程序设计08信息管理26–采用面向对象的程序设计方法,则需要首先声明Address类如下publicclassAddress{Stringname;intgateNumber;StringstreetName;Stringcity;Stringprovince;StringpostalCode;//方法成员略}2.2.3数据成员(续)——例2_4类与对象JAVA语言程序设计08信息管理27–主方法改写如下publicstaticvoidmain(Stringargs[]){Addressaddress1=newAddress(),address2=newAddress();address1.name=“ZhangLi;address1.streetNumber=15;address1.streetName=“TsinghuaEastRoad;address1.city=“Beijing;address1.province=“Beijing;address1.postalCode=“100084;address2.name=“LiHong;address2.streetNumber=2;address2.streetName=“BeiNong;address2.city=“Beijing;address2.province=“Beijing;address2.postalCode=“102206;//...dosomethinginteresting}2.2.3数据成员(续)——例2_4类与对象JAVA语言程序设计08信息管理28类变量–也称为静态变量,声明时需加static修饰符–不管类的对象有多少,类变量只存在一份。被所有对象共享。–引用格式类名|对象名.类变量名2.2.3数据成员(续)——类变量类与对象JAVA语言程序设计08信息管理29对于一个圆类的所有对象,计算圆的面积时,都需用到π的值,可在Circle类的声明中增加一个类属性PIpublicclassCircle{staticdoublePI=3.14159265;intradius;}当我们生成Circle类的对象时,在每一个对象中并没有存储PI的值,PI的值存储在类中2.2.3数据成员(续)——例2_5类与对象JAVA语言程序设计08信息管理30–对类变量进行测试publicclassClassVariableTester{publicstaticvoidmain(Stringargs[]){Circlex=newCircle();System
本文标题:java语言程序设计第2章.
链接地址:https://www.777doc.com/doc-3379813 .html