201603考试批次《JAVA语言程序设计》结课作业学生姓名学习中心学号专业年级层次北京语言大学网络教育学院《JAVA语言程序设计》结课作业注意:本学期所布置的结课作业,请同学一律按照以下要求执行:1)结课作业提交起止时间:2016年1月25日—3月21日。(届时平台自动关闭,逾期不予接收。)2)结课作业课程均需通过“离线作业”栏目提交电子版,学院不收取纸介的结课作业,以纸介回寄的作业一律视为无效;3)截止日期前可多次提交,平台只保留最后一次提交的文档,阅卷时以最后一次提交的结课作业为准,截止日期过后将关闭平台,逾期不交或科目提交错误者,按0分处理;4)提交文档要求:提交的文档格式为doc、rar,大小10M以内;5)必须严格按照每门课程的答题要求完成作业,没有按照学院要求来做的结课作业,将酌情扣分。一.论述题(本大题共5小题,请任选其中两道题作答,每小题25分,总分50分)1.JAVA的基本数据类型数字型、布尔型和字符型三种,请详细说明这三种基本类型包括的子类型及其长度、最小值和最大值。答:六种数字类型(四个整数型:byte、short、int、long两个浮点型float、double)(1)数字型byte:长度:1个字节最小值:-128最大值:127。Short:长度:2个字节最小值:-32768最大值:32767。int:长度:4个字节最小值:-2147483648最大值:2147483647。Long:长度:8个字节最小值:-9223372036854775808最大值:9223372036854775807。float:长度:4个字节最小值:1.4E-45最大值:3.4028235E38。double长度:8个字节最小值:4.9E-324最大值:1.7976931348623157E308。(2)boolean表示逻辑值长度:1个字节有true和false两个值,分别表示真和假。(3)char长度:2个字节最小值:0最大值:65535。2.构造方法(Constructor)是一种特殊的方法。Java中的每个类都有构造方法,用来初始化该类的一个新的对象。请简述构造方法的特点。至少说出6个特点。(1)构造方法的方法名必须与类名相同。(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。(4)构造方法不能由编程人员调用,而要系统调用。(5)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。(6)构造方法可以重载,以参数的个数,类型,或排列顺序区分。3.论述JAVA语言中的继承、单继承和多继承的定义。答:继承实际上是存在于面向对象程序设计中的两个类之间的一种关系,是面向对象程序设计方法的一个重要手段,通过继承可以更有效地组织程序结构,明确类间的关系,充分利用已有的类来完成更复杂、更深入的开发。单继承是指任何一个类都只有一个单一的父类,其结构可以用单纯的树状结构来表示;而多继承是指一个类可以有一个以上的父类,它的静态的数据属性和操作从所有这些父类中继承,其结构应以复杂的网状结构来表示。4.JAVA语言中的对象创建的方法和数据成员的创建方法。答:对象创建的方法:1.用new语句创建对象,这是最常用的创建对象的方式。2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。3.调用对象的clone()方法。4.运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法.java类中的主要组成部分就是数据成员和方法成员。而数据成员的声明必须指定其数据类型,方法成员的声明也必须指定其返回值类型,如果方法有形式参数,也必须指定其参数类型。5.根据类成员的访问控制权限,填写下表,可以访问的填写yes,不可以访问的填写no。类型Private无修饰ProtectedPublic同一类YesYesYesYes同一包中的子类NoYesYesYes同一包中的非子类NoYesYesYes不同包中的子类NoNoYesYes不同包中的非子类NoNoNoYes二.编程题(本大题共5小题,请任选其中两道题作答,每小题25分,总分50分)1.建立两个JList,双击其中任何一个中的某一项,此项就会跑到另外一个JList中。2.练习使用对话框。包括一个JLable和两个JButton,按任何一个JButton都会产生一个对话框,按确定后将输入内容在JLable中显示出来。3.设计一个长方形类,成员变量包括长和宽。类中有计算面积和周长的方法,并有相应的set方法和get方法设置和获得长和宽。编写测试类测试是否达到预定功能。要求使用自定义的包。4.编写一个绘制圆形的程序,当鼠标在绘制区域中单击时,该正方形的左上角顶点应准确的跟随鼠标光标移动,重绘该圆形。答:importjava.awt.Graphics;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.JFrame;publicclassMyJFrameextendsJFrameimplementsMouseListener{intx=50;inty=50;5.编写一个程序,该程序绘制一个5×9的网络,使用drawLine方法。/NetWork类importjava.awt.Graphics;importjavax.swing.JFrame;publicclassNetWorkextendsJFrame{publicNetWork(){//设置窗体大小this.setSize(130,130);//设置窗体大小不可改变this.setResizable(false);//设置默认关闭方式,关闭窗体的同时结束程序this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//将窗体显示出来this.setVisible(true);}//横纵格之间都间隔10像素,起点在(20,40)publicvoidpaint(Graphicsg){//绘制横向线for(inti=0;i=5;i++){g.drawLine(20,40+i*10,110,40+i*10);}//绘制纵向线for(inti=0;i=9;i++){g.drawLine(20+i*10,40,20+i*10,90);}}}//test9_1类publicclasstest9_1{publicstaticvoidmain(String[]args){newNetWork();}}