第3章-面向对象程序设计基础-答案.docx

上传人:李司机 文档编号:5527582 上传时间:2023-07-18 格式:DOCX 页数:8 大小:28.64KB
返回 下载 相关 举报
第3章-面向对象程序设计基础-答案.docx_第1页
第1页 / 共8页
第3章-面向对象程序设计基础-答案.docx_第2页
第2页 / 共8页
第3章-面向对象程序设计基础-答案.docx_第3页
第3页 / 共8页
第3章-面向对象程序设计基础-答案.docx_第4页
第4页 / 共8页
第3章-面向对象程序设计基础-答案.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《第3章-面向对象程序设计基础-答案.docx》由会员分享,可在线阅读,更多相关《第3章-面向对象程序设计基础-答案.docx(8页珍藏版)》请在三一办公上搜索。

1、第3章面向对象程序设计基础1什么是JaVa程序使用的类?什么是类库?解答:JaVa程序的基本单位是类。对象是对事物的抽象,而类是对对象的抽象和归纳,找出事物的共性,把具有共同性质的事物归结为一类。累是具有相同属性和方法的一组对象的集合,类是在对象之上的抽象,对象是类的实例化,类定义一种对象能够拥有的数据和能完成的操作。一旦建立类后,就可用它来建立许多你需要的对象。JaVa的类库是系统提供的已实现的标准类的集合,是JaVa编程的API,它可以匡助开辟者方便、快捷的开辟JaVa程序。2如何定义方法?在面向对象程序设计中方法有什么作用?解答:方法的定义由两部份组成:方法声明和方法体。方法声明的基本格

2、式如下:返回类型方法名(形式参数)(方法体内容)方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为实现方法行为的JaVa语句。在面向对象程序设计中,方法所起的作用是完成类和对象的属性操作。31简述构造方法的功能和特点。下面的程序片段是某学生为StUdent类编写的构造方法,请指出其中的错误。voidStudent(intno1Stringname)(studentNo=no;studentName=name;returnno;解答构造方法是一个特殊的方法,主要用于初始化新创建的对象。构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,构造方法不返

3、回任何数据类型,也不返回VOid数据类型,即不能在构造方法前加voido上面的代码出错处:(1)构造方法StUdent前不能力口VOid.(2)不能用return语句。4定义一个表示学生的StUdent类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写JaVa程序创建StUdent类的对象及测试其方法的功能。解答:classstudentprivateStringid;privateStringname;privateStringsex;privateintage;publicStringgetld()returnid;publicStringgetN

4、ame()returnname;publicStringgetSex()returnsex;publicintgetAge()returnage;voidsetAge(intage)this.age=age;)publicclassTestStudentpublicstaticvoidmain(Stringargs)studentStu=newStUdent(202202210220,许国鹏男,22);System.out.println(studentinfo:+n学号:,+stu.getld()+n姓名+stu.getName()+n性别:stu.getSex()+n年龄:+stu.get

5、Age();stu.setAge(23);SyStemQUt.println(修改后的年龄为:+stu.getAge();)【5】扩充、修改程序。为第4题的StUdem类定义构造函数初始化所有的域,增加一个方法PUbliCStringPrintlnfo()把student类对象的所有域信息组合形成一个字符串,并在主类中创建学生对象及测试各方法的功能。解答卜privateStringsex;privateintage;student(Stringid,Stringname,Stringsex,intage)this.id=id;this.name=name;this.sex=sex;this.a

6、ge=age;)publicStringgetld()returnid;publicStringgetName()returnname;publicStringgetSex()returnsex;publicintgetAge()returnage;voidsetAge(intage)this.age=age;publicStringprintlnfo()Strings=studentinfo:,+n学号:,+id+n姓名+name+n性别:+sexn年龄”+age;System.out.println(s);returns;)publicclassTestStudentpublicstati

7、cvoidmain(Stringargs)studentStu=newStUdent(202202210220”,“许国鹏,男”,22);stu.printlnfo();stu.setAge(23);stu.printlnfo()6什么是修饰符?修饰符的种类有哪些?它们各有什么作用?解答:修饰符是用于限定类对象使用的权限,从而实现类中成员的信息隐藏。访问修饰符合用于类成员,而不是方法内部的局部变量。JaVa常见的访问修饰符有4种:privateXdefaultsprotected和PUbIiCO(1) private只能被类本身访问,其他类无法访问。(2) default属于默认的访问状态,可

8、以被类本身和同一个包中的类访问。(3) protected可以被类本身、它的子类(包括同一个包以及不同包中的子类)访问。(4) public可以被所有的类访问。7什么是抽象类?为什么要引入抽象类的概念?解答:抽象类是用来描述人们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。抽象类不具备实际功能,是专门设计用来让子类继承的类,把这些具有共同特征的方法抽象出来,由子类负责这些抽象方法的实现细节,而父类仅提供此方法的名称和声明、没有方法的主体。8什么是抽象方法?如何定义、使用抽象方法?解答:用abstract关键字修饰的方法称为抽象方法。抽象方法定

9、义时,需在方法名前加之关键字abstract,抽象方法惟独方法声明,没有代码实现的空方法。故必须通过其子类来重写父类中定义的每一个抽象方法。9包的作用是什么?如何在程序中引入己定义的类?使用已定义的用户类、系统类有哪些主要方式?解答:包的作用是将类和接口封装在一起,方便类和接口的管理和调用。要引用包中已定义的类,必须用关键字import来导入这些类所在的包。import语句的普通形式如下:import包名.类名其中类名可以用通配符代替。使用已定义的用户类、系统类主要有3种方式:直接调用、继承和创建己定义的用户类、系统类的对象。无论采用哪种方式,使用已定义的用户类、系统类的前提是用户类、系统类应

10、该是用户程序可见的类,为此用户程序需要用import语句引入他所用到的用户类、系统类或者用户类、系统类所在的包。10什么是继承?如何定义继承关系?解答:同类事物具体有共同性,在同类事物中,每一个事物又具有其特殊性。运用抽象原则舍弃对象的特殊性,抽取其共同性,得到一个合用于一批对象的类,这便是基类(父类),派生类的对象拥有其基类的全部或者部份属性与方法,称作派生类对基类的继承。派生类继承基类,必须使用关键字extends来声明。例如派生类B继承基类A,派生类B定义的一般形式如下:classBextendsA.)【11】什么是多态,如何实现多态?解答:多态指一个程序中同名的不同方法共存的情况。这些

11、方法同名的原因是他们的最终功能和目的都相同,但是由于在完成同一功能时,可能遇到不同的具体情况,所以需要定义含不同的具体内容的方法,来代表多种具体实现形式。多态通常是一个消息在不同的类中用不同的方法实现的。多态的实现是由消息的接收者确定一个消息应如何解释,而不是由消息的发送者确定,消息的发送者只需要指导此外的实例可以执行一种特定操作即可。JaVa中提供两种多态机制:方法重载与方法重写。12解释this和SUPer的意义和作用。解答:this指的是引用当前对象或者类名称,当一个类的实例变量名与一个方法中参数名相同时,则参数就隐藏了实例变量名,此时可通过使用关键字this来访问它;SUPer用来引用

12、当前对象的父类,通过SLlPer来访问父类被子类隐藏的成员变量、成员方法以及父类的构造方法。由于子类不继承父类的构造方法,word专业资料可复制编辑-欢迎下载可使用SuPer来调用父类的构造方法,且SIJPer必须是子类构造方法的第一条语句。13什么是接口?为什么要定义接口?接口和类有什么异同?解答:接口是用来调节各类之间的相互关系的一种结构,接口是抽象类的一种,只包含常量和方法的定义,而没有变量和具体方法的实现,且其方法都是抽象方法。接口定义的格式如下;publicinterface接口名extends父接口名列表接口体extends字句有类声明的extends子句基本相同,不同的是一个接口

13、可有多个父接口,用逗号隔开,而一个类只能有一个父类。JaVa中的类只能实现单重继承,这虽然可以简化编程,但毕竟没有彻底实现面向对象的功能。定义接口的主要作用,就是匡助JaVa实现类间多重继承的结构。接口有以下好处:(1)接口可以被多个类所实现,这些类可以不相关,从而具有相同的行为。(2)通过接口可以了解对象的行为,而无需了解对象所对应的结构。14将一个抽象类改写成接口,并实现这个接口。解答:程序代码段如下:抽象类的应用示例abstractclass动物publicabstractvoidcry();class人extends动物publicvoidcry()SyStemQUtPrintln(你

14、好”);ClassTestpublicstaticvoidmain(Stringargs11)动物ren;ren=new人();ren.cry();)将抽象类改写成接口,并实现这个接口interface动物publicvoidcry();class人implements动物publicvoidcry()SyStemQUt.println(你好);ClassTestpublicstaticvoidmain(Stringargs)动物ren;ren=new();ren.cry();)15编写一个程序实现包的功能。解答:(1)设当前运行目录的子目录testbag下有MyBag.class类,其源程序

15、如下:Word专业资料可知制编辑欢迎下载packagetest.bag;publicclassMyBag(publicvoidprint()SyStemQiJt.printing包的功能测试”);(2)/在当前目录的TeStBag.java中,要使用子目录testbag下有MyBag.class类中的print()方法,其源程序如下:importtest.bag.MyBag;publicclassTestBagpublicstaticvoidmain(StringargsQ)MyBagmb=newMyBag();mb.print();)【16】填空:(1)如果类A继承了类B,则类A被称为类,类

16、B被称为类。解答:子父(2)继承使成为可能,它节省了开辟时间。解答:代码复用(3)如果一个类包含一个或者多个abstract方法,它就是一个类。解答卜抽象(4)一个子类普通比其超类封装的功能要。解答:强(5)标记成的类的成员不能由该类的方法访问。解答:static(6)Java用关键字指明继承关系。解答:extendsthis代表了的引用。解答:当前对象(8)super表示的是当前对象的对象。解答:父类(9)抽象类的修饰符是。解答:abstract(10)接口中定义的数据成员是-解答:常量(11)接口中没有什么方法,所有成员方法都是方法。解答:实例空17编程题(1)仿照下面的程序编写求矩形、三

17、角形面积的程序。importjava.io.*;classCCircle内部类finaldoublePl=3.14;最终变量doublex,y;doubleradiu;doublearea()方法returnPI*Math.pow(radiu,2);CCircle(doubler)构造方法radiu=r;)publicclassMyTest_9主方法publicstaticvoidmain(Stringargs)CCircIeCir1=newCCircle(3.5);System.out.println(Area=,+Cir1.area();)矩形面积:classJuxingdoublex,y

18、;矩形长和宽doubleareaOreturnx*y;)Juxing(doublex,doubley)this,x=x;this,y=y;)publicclassXX2publicstaticvoidmain(Stringargs)Juxingjx=newJuxing(2.O,6.O);System,out.println(area=+jx.area();)三角形面积:classSanjiaodoublea,b;三角形底边与高doublearea()return(a*b)2.O;)Sanjiao(doublex,doubley)a=x;b=y;)publicclassXX3publicstat

19、icvoidmain(Stringargs)Sanjiaosj=ncwSanjiao(5.O,1.0);System,out.println(area=+sj.area();)(2)仿照下面的程序编写一个求人均浪费多少饭菜的程序。classCBook非公共类StringBookName;floatprice;intwords;CBook(Stringb,floatp,intw)构造BookName=b;price=p;words=w;floatprice_per_word()returnprice/words;)publicclassMyTest_10主方法publicstaticvoidma

20、in(Stringargs)floatt=0.0f;CBookbook1=newCBook(Java教程,26.3f,5000);单精度常数要加ft=book1.price_per_word();SyStemQUt.println(每一个字值+t+元);)(3)仿照下面的程序编写一个平面矢量合成的计算程序(具体条件和算法自行设定)。复数类classCComplex非公共类成员变量:实部和虚部doublem_dRealPart,m_dlmaginPart;构造方法完成初始化CComplex(doubler,doublei)m_dRealPart=r;m_dlmaginPart=i;返回实部的方法

21、doublegetRealPart()retrm_dRealPart;把送过来的复数与自身相加,返回复数和CCompIexcompleAdd(CComplexc)returnnewCComplex(m_dRealPart+c.m_dRealPart,m_dlmaginPart+c.m_dlmaginPart);)输出复数的实部和虚部Stringcomplext()return(m-dRealPart+,+m-dlmaginPart+,i);)publicclassMyTest_12主方法word专业资料-可复制编辑-欢迎下载publicstaticvoidmain(Stringargs11)定义两个复数对象CCompIexm1=newCComplex(2.0,5.0);CCompIexm2=newCComple(1.0,1.0);/复数1加之复数2,更新复数1com1=pleAdd(m2);输出复数1System.out.println(pleOut();)(4)编写一个电话号码查询程序。要求界面为字符显示的菜单。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号