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

上传人:daj****de2 文档编号:163219384 上传时间:2022-10-20 格式:DOCX 页数:8 大小:20.28KB
收藏 版权申诉 举报 下载
第3章 面向对象程序设计基础 答案_第1页
第1页 / 共8页
第3章 面向对象程序设计基础 答案_第2页
第2页 / 共8页
第3章 面向对象程序设计基础 答案_第3页
第3页 / 共8页
资源描述:

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

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

2、方法声明和方法体。方法声明的基本格式如下: 返回类型 方法名(形式参数)/方法体内容方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为 实现方法行为的 Java 语句。在面向对象程序设计中,方法所起的作用是完成类和对象的属性操作。【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法, 请指出其中的错误。void Student(int no,String name)studentNo=no;studentName=name;return no; 解答:构造方法是一个特殊的方法,主要用于初始化新创建的对象。构造方法的方法名要 求与类名相同

3、,用户不能直接调用,只能通过new运算符调用,构造方法不返回任何数据 类型,也不返回void数据类型,即不能在构造方法前加void。上面的代码出错处:(1)构造方法student前不能加void.不能用return语句。【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有 获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方 法的功能。解答: class studentprivate String id;private String name;private String sex;private int age;publ

4、ic String getId()return id; public String getName() return name; public String getSex() return sex; public int getAge() return age; void setAge(int age) this.age = age; public class TestStudent public static void main(String args) student stu = new student(201101010220, 许国鹏 , 男 ,22); System.out.prin

5、tln(student info: + n 学号: +stu.getId()+ n 姓名+ stu.getName()+n 性别:+stu.getSex()+ n 年龄:+stu.getAge(); stu.setAge(23);System.out.println(修改后的年龄为:+stu.getAge();【5】扩充、修改程序。为第4题的student类定义构造函数初始化所有的域,增加一个方 法public String printInfo()把student类对象的所有域信息组合形成一个字符串,并在主类中 创建学生对象及测试各方法的功能。解答: private String sex;pr

6、ivate int age;student(String id , String name, String sex, int age) this.id = id;this.name = name;this.sex = sex;this.age=age;public String getId()return id; public String getName() return name; public String getSex() return sex; public int getAge() return age; void setAge(int age)this.age = age; pu

7、blic String printInfo() String s= student info: + n 学号:+id+ n 姓名+name+n 性别:+sex+ n 年龄 +age;System.out.println(s);return s;public class TestStudent public static void main(String args) student stu = new student(201101010220, 许国鹏 , 男 ,22);stu.printInfo();stu.setAge(23);stu.printInfo()【6】什么是修饰符?修饰符的种类有

8、哪些?它们各有什么作用? 解答:修饰符是用于限定类对象使用的权限,从而实现类中成员的信息隐藏。访问修饰 符适用于类成员,而不是方法内部的局部变量。Java常见的访问修饰符有4种:private、 default、protected、和 public。(1)private 只能被类本身访问,其他类无法访问。(2)default 属于默认的访问状态,可以被类本身和同一个包中的类访问。(3)protected 可以被类本身、它的子类(包括同一个包以及不同包中的子类)访问。(4)public 可以被所有的类访问。【7】什么是抽象类?为什么要引入抽象类的概念?解答: 抽象类是用来描述人们在对问题领域进行

9、分析、设计中得出的抽象概念,是对一 系列看上去不同,但是本质上相同的具体概念的抽象。抽象类不具备实际功能,是专门设计 用来让子类继承的类,把这些具有共同特征的方法抽象出来,由子类负责这些抽象方法的实 现细节,而父类仅提供此方法的名称和声明、没有方法的主体。【8】什么是抽象方法?如何定义、使用抽象方法?解答: 用 abstract 关键字修饰的方法称为抽象方法。抽象方法定义时,需在方法名前加上 关键字abstract,抽象方法只有方法声明,没有代码实现的空方法。故必须通过其子类来重 写父类中定义的每一个抽象方法。【9】包的作用是什么?如何在程序中引入已定义的类?使用已定义的用户类、系统类有哪 些

10、主要方式?解答: 包的作用是将类和接口封装在一起,方便类和接口的管理和调用。要引用包中已定义的类,必须用关键字import来导入这些类所在的包。import语句的一般形式如下: import 包名.类名 其中类名可以用通配符“*”代替。使用已定义的用户类、系统类主要有3种方式:直接调用、继承和创建已定义的用户类、 系统类的对象。无论采用哪种方式,使用已定义的用户类、系统类的前提是用户类、系统类 应该是用户程序可见的类,为此用户程序需要用 import 语句引入他所用到的用户类、系统 类或用户类、系统类所在的包。【10】什么是继承?如何定义继承关系?解答:同类事物具体有共同性,在同类事物中,每个

11、事物又具有其特殊性。运用抽象原 则舍弃对象的特殊性,抽取其共同性,得到一个适用于一批对象的类,这便是基类(父类), 派生类的对象拥有其基类的全部或部分属性与方法,称作派生类对基类的继承。派生类继承基类,必须使用关键字extends来声明。例如派生类B继承基类A,派生类B 定义的一般形式如下:class B extends A【11】什么是多态,如何实现多态?解答:多态指一个程序中同名的不同方法共存的情况。这些方法同名的原因是他们的 最终功能和目的都相同,但是由于在完成同一功能时,可能遇到不同的具体情况,所以需要 定义含不同的具体内容的方法,来代表多种具体实现形式。多态通常是一个消息在不同的类

12、中用不同的方法实现的。多态的实现是由消息的接收者确定一个消息应如何解释,而不是由消息的发送者确定, 消息的发送者只需要指导另外的实例可以执行一种特定操作即可。Java中提供两种多态机 制:方法重载与方法重写。【12】解释 this 和 super 的意义和作用。解答: this 指的是引用当前对象或类名称,当一个类的实例变量名与一个方法中参数名相 同时,则参数就隐藏了实例变量名,此时可通过使用关键字this来访问它;super用来引用 当前对象的父类,通过super来访问父类被子类隐藏的成员变量、成员方法以及父类的构造 方法。由于子类不继承父类的构造方法,可使用super来调用父类的构造方法,

13、且super必 须是子类构造方法的第一条语句。【13】什么是接口?为什么要定义接口?接口和类有什么异同?解答: 接口是用来调节各类之间的相互关系的一种结构,接口是抽象类的一种,只包含 常量和方法的定义,而没有变量和具体方法的实现,且其方法都是抽象方法。接口定义的格式如下;publicinterface 接口名 extends 父接口名列表 / 接口体extends 字句有类声明的 extends 子句基本相同,不同的是一个接口可有多个父接口,用 逗号隔开,而一个类只能有一个父类。Java中的类只能实现单重继承,这虽然可以简化编程, 但毕竟没有完全实现面向对象的功能。定义接口的主要作用,就是帮助

14、Java实现类间多重 继承的结构。接口有以下好处:(1) 接口可以被多个类所实现,这些类可以不相关,从而具有相同的行为。(2) 通过接口可以了解对象的行为,而无需了解对象所对应的结构。 【14】将一个抽象类改写成接口,并实现这个接口。解答:程序代码段如下:/抽象类的应用示例abstract class 动物 public abstract void cry(); class 人 extends 动物 public void cry() System.out.println(” 你好 ”);class Test public static void main(String args) 动物 re

15、n;ren=new 人();ren.cry();/将抽象类改写成接口,并实现这个接口interface 动物 public void cry(); class 人 implements 动物public void cry() System.out.println(” 你好 ”);class Test public static void main(String args) 动物 ren;ren=new 人();ren.cry();【15】编写一个程序实现包的功能。解答:设当前运行目录的子目录testbag下有MyBag.class类,其源程序如下: package test.bag; publ

16、ic class MyBagpublic void print() System.out.println(” 包的功能测试);(2) /在当前目录的TestBag.java中,要使用子目录testbag下有MyBag.class类中的print() /方法,其源程序如下:import test.bag.MyBag;public class TestBag public static void main(String args) MyBag mb=new MyBag();mb.print();【16】填空:(1) 如果类A继承了类B,则类A被称为类,类B被称为类。解答:子父(2) 继承使成为可能

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

18、序。import java.io.*;class CCircle /内部类final double PI=3.14; /最终变量double x,y;double radiu;double area() /方法return PI*Math.pow(radiu,2);CCircle(double r) /构造方法radiu=r;public class MyTest_9 /主方法 public static void main(String args)CCircle Cir1=new CCircle(3.5);System.out.println(Area=+Cir1.area();矩形面积:c

19、lass Juxingdouble x,y;/矩形长和宽 double area() return x*y;Juxing(double x,double y) this.x=x;this.y=y;public class XX2public static void main(String args)Juxing jx=new Juxing(2.0,6.0); System.out.println(“area=”+jx.area();三角形面积:class Sanjiaodouble a,b;/三角形底边与高double area()return (a*b)/2.0;Sanjiao(double

20、 x,double y)a=x;b=y;public class XX3public static void main(String args) Sanjiao sj=new Sanjiao(5.0,1.0);System.out.println(“area=”+sj.area();(2)仿照下面的程序编写一个求人均浪费多少饭菜的程序 class CBook /非公共类String BookName; float price; int words;CBook(String b,float p,int w) /构造 BookName=b;price=p;words=w; float price_

21、per_word() return price/words;public class MyTest_10 /主方法 public static void main(String args)float t=0.0f;CBook bookl=new CBook(Java 教程,26.3f,5000); 单精度常数要加 f t=book1.price_per_word();System.out.println(” 每个字值+t+元”);(3) 仿照下面的程序编写一个平面矢量合成的计算程序(具体条件和算法自行设定)。/复数类class CComplex /非公共类/成员变量:实部和虚部double m

22、_dRealPart,m_dImaginPart;/构造方法完成初始化CComplex(double r,double i)m_dRealPart=r;m_dImaginPart=i;/返回实部的方法double getRealPart()return m_dRealPart;/把送过来的复数与自身相加,返回复数和CComplex complexAdd(CComplex c) return new CComplex(m_dRealPart+c.m_dRealPart,m_dImaginPart+c.m_dImaginPart);/输出复数的实部和虚部String complexOut()return (m_dRealPart+m_dImaginPart+i);public class MyTest_l2 /主方法public static void main(String args)/定义两个复数对象CComplex coml=new CComplex(2.0,5.0);CComplex com2=new CComplex(l.0,l.0);/复数 l 加上复数 2,更新复数 lcoml=plexAdd(com2);/输出复数 lSystem.out.println(plexOut();(4) 编写一个电话号码查询程序。要求界面为字符显示的菜单。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!