java《面向对象程序设计》作业_第1页
java《面向对象程序设计》作业_第2页
java《面向对象程序设计》作业_第3页
java《面向对象程序设计》作业_第4页
java《面向对象程序设计》作业_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课后作业第一章Java语言基础知识1. 程序设计语言发展的历程答案:机器语言、汇编语言、高级语言、面向对象的语言2. 面向对象语言的基本特征答案:抽象和封装、继承性、多态性3. Java语言的特点答案:java语言是一种卓越的程序设计语言,它具有以下特点。 1.面向对象 2.简单性 3.可移植性 4.稳定性和安全性 5.高性能 6.分布性4. 为什么Java语言是跨平台的?答案:因为Java程序的最终实现需要经过编译和解释两个步骤,Java语言的编译器生成可执行的字节码,这种代码是由Java虚拟机生成的,它与任何硬件平台无关。当生成字节码后,再使用Java解释器来执行字节码,这也就意味着只要有

2、安装Java解释器的机器Java程序都可以运行,所以它是跨平台的面向对象的程序设计语言。5. Java2的SDK是什么?答:Java2的SDK指Software Development Kit 软件开发工具集6. Java开发工具中的javac.exe和java.exe的功能是什么?答案:Javac.exe是Java编译器,用来将java程序编译成字节码。 Java.exe是Java解释器,执行已经转换成Bytecode的java应用程序。7. Java集成开发环境有哪些?答案:Java集成开发环境主要有:Eclipse、netBeans、Jcreator LE、Borland Jbuilde

3、r、Microsoft Visual J+、IBM : Visual Age for Java、Sun ONE Studio8. Java程序编译执行的过程答案:Java语言源程序的变异过程主要进行两件工作:1. 通过编译程序检查Java源程序中是否有语法错误,如果发现错误,便报告已发现的错误,修改后再编译,直到未发现错误时才生成字节码文件。2.通过编译来引入Java类库中已编好的模块,为了方便编程,Java类库中有若干个包,每个包中有若干个模块,每个模块是一个具有某种功能的类,它们都是字节码形式的程序 。9. Application有哪些特点?如何运行Application程序?答案:1.J

4、ava Application程序结构上的特点a. 程序名必须与主类名相同。b. Java程序师区分大小写字母的。c. Java程序中的所有方法都是属于某个类的,没有不属于某个类的方法。2.Java程序在书写上的特点 a.使用的变量名、对象名、方法名等标示符要有意义,尽量做到“见名知义”。b.使用空行来分隔不相关的语句。c.合理进行缩进和对齐,使得程序显得层次分明。d.一条语句写一行,长语句可以续行。e.适当在程序中写一些注释信息,有利于程序的可读性。 Java Application程序与其他高级语言编写的程序一样,都需要经过编辑、编译、运行等几个步骤。a.编辑Java源程序b.编译Java

5、源程序c.运行Java的字节码文件10. 编写Application程序,计算并输出sin10x+ctgx在x=3.5的值。答案:public class lianxi public static void main(String args) int y; float x=(float) 3.5; y=(int)(Math.pow(Math.sin(x), 10)+1/Math.tan(x); /*注意数据类型,用int强制转换*/ System.out.println(y=+y); 11. 编写Application程序,将数组a=20,10,50,40,30,70,60,80,90,100

6、按逆序输出。答案:public class lianxi public static void main(String args) int IntArray=20,10,50,40,30,70,60,80,90,100; int i; for(i=9;i=0;i-) System.out.println(IntArray+i+=+IntArrayi); 第二章类与对象的基本概念1. 结构化程序设计的特征答案:结构化语言的显著特征是代码和数据的分离,通常由若干个程序模块组成,每个程序模块都可以是子程序或函数,数据和功能分离,代码难于维护和复用2. 面向对象程序设计的特征答案:面向对象的程序设计方

7、法更符合人们认识客观世界的思维习惯,降低了问题难度和分解问题大的复杂性;提高了程序代码的重用性,简化了编程的过程;可以以较小的代价和较高的效率获得满意的效果。3. 抽象、封装、继承、多态的概念答案:抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。 封装是指将描述某种实体的数据和基于这些数据的操作集合到一起,形成一个封装体。 继承是面向对象方法中的重要特性,继承反映了两个类之间的一种关系。 多态是指在程序中出现的“重名”现象,在面向对象的程序设计中,为提高程序的抽象程度和简洁程度,而出现“重名”现象。4. 类和对象的概念答案:类是一种自定义的数据类型,通常又称为类类型。是同

8、种对象的集合,对现实世界种的实体的高度抽象。 对象就是对客观世界中的实体的映射。5. 如何定义类答案:定义类的格式 class extends implements6. 数据成员的可选修饰符有哪些?实例变量和类变量有何区别?答案:public、protected、private、static、final、transientvolatile7. 方法成员的可选修饰符有哪些?实例方法和类方法有何区别?答案:public、protected、private、static、final、abstract、native、synchronized8. 构造方法的作用和特点、this关键字的作用。答案:构造方

9、法是一种特殊的方法,其功能是对创建的对象初始化。 特点:方法名同类名、无返回类型、构造方法是在创建对象时,系统自动调用为所创建的对象进行初始化的方法。9. 如何创建对象和调用成员答案:首先,说明对象。 其次,使用运算符new给说明的对象分配内存单元。 最后,为对象初始化。10. 如何创建软件包答案:创建包使用package语句,该语句应该是Java程序文件的首条语句。使用该语句指明该文件中定义的类所在的包。11. Java如何实现内存回收答案:当一个对象在程序中不再被使用时,就成为一个无用对象, Java运行时系统通过垃圾收集器周期性地释放无用对象所使用的内存,Java运行时系统会在对对象进行

10、自动垃圾回收前,自动调用对象的finalize()方法12、定义Student 类 属性id:long 类型 , 表示学号name :String 对象 , 表示一个人的姓名sex:char 类型 , 表示性别 方法public void setId(long id): 设置学号public long getId(): 返回学号public String getName(): 返回姓名public void setName(String name):设置姓名public char getSex(): 返回性别public void setSex(char sex):设置性别答案:package

11、 example;public class Student private long Id;/学号private String Name;/姓名private char Sex; /性别public long getId() return Id;public void setId(long id) Id = id;public String getName() return Name;public void setName(String name) Name = name;public char getSex() return Sex;public void setSex(char sex)

12、Sex = sex;13、创建Application程序类TestStudent完成如下测试功能:(1)用以下信息生成一个 Student 对象 aGirl学号:姓名:李丽性别:女(2)调用aGirl的get方法输出aGirl的信息,格式如下:学号: 姓名:李丽 性别:女答案:package example;import example.student;public class TestStudent public static void main(String args) student aGirl=new student();aGirl.setId();aGirl.setName(李丽);

13、aGirl.setSex(女);System.out.print(学号:+aGirl.getId()+ );System.out.print(姓名:+aGirl.getName()+ );System.out.println(性别:+aGirl.getSex();第三章类的方法1、Java中选择结构和循环结构的实现2、Java的异常的处理机制答案:1.抛出(throw)异常在方法的运行过程中,如果发生了异常,则该方法生成一个代表该异常的对象并把它交给运行时系统,运行时系统便寻找相应的代码来处理这一异常。2.捕获(catch)异常运行时系统在方法的调用栈中查找,从生成异常的方法开始进行回溯,直到

14、找到包含相应异常处理的方法为止。3、方法的重载答案:方法重载是指功能相同的多个方法使用同一个方法名。4、编写Application程序类ArrayApp,实现如下输出:答案:package example;import java.text.DecimalFormat;import java.text.NumberFormat;public class ArrayApp /* * param * param args */public static void main(String args) final int ArrayX =0,10,20,30,40,50,60,70,80,90;int

15、i;double rad = 0; /弧度变量final DecimalFormat nf = new DecimalFormat(0.00);System.out.println(X+ +sin(x)+ +cos(x);for(i=0;i=9;i+)rad=ArrayXi*Math.PI/180; System.out.println(ArrayXi+ +(NumberFormat) nf).format(Math.sin(rad)+ +(NumberFormat) nf).format(Math.cos(rad);5、在项目中添加一个shape包的Rectangle类,其中包括:两个私有属

16、性即宽:width和高:height(double型)。一个静态最终公有属性:name,String类型,取值为”矩形类”.在Rectangle类中添加一个无参构造函数和一个带两个参数的构造函数(给两个属性赋初值)。public Rectangle()public Rectangle(double width,double height)在Rectangle类中添加所有属性的get和set方法在Rectangle类中添加两个方法计算矩形的周长和面积。public double perimeter()/计算周长public double area() /计算面积6、在项目中添加Applicati

17、on程序类RectangleTester类,在程序中实现如下功能:(1)利用无参构造函数创建对象r1,用set方法设置r1的宽和高分别为10.2,2.3,然后调用r1的perimeter()输出该矩形的周长。格式如下:第一个矩形周长:25.0(2)利用有参构造函数创建宽为12.3,高为32.1的矩形对象r2, 然后调用r2的area() 输出该矩形的周长。格式如下:第二个矩形面积:394.004 答案:package shape;public class Rectangle private static double width; private static double height; p

18、rivate static String name; public Rectangle() public Rectangle(double width,double height) Rectangle.width=width; Rectangle.height=height; R=矩形类; public double perimeter()return (width+height)*2;public static double area()return width*height;public double getWidth() return width;public

19、void setWidth(double width) Rectangle.width = width;public double getHeight() return height;public void setHeight(double height) Rectangle.height = height;public static String getName() return name;public static void setName(String name) R = name;package shape;public class RectangleTest

20、er /* * param args */public static void main(String args) Rectangle r1=new Rectangle();r1.setWidth(10.2);r1.setHeight(2.3); System.out.println(第一个矩形周长:+r1.perimeter(); System.out.println(); new Rectangle(12.3,32.1); System.out.println(Rectangle.area(); 第四章类的重用1、 类的继承、基类和派生类、子类和父类概念答案:类的继承:一种由已有的类创建新

21、类的机制。基类:也称超类(superclass)是被直接或间接继承的类。派生类:也称子类 (subclass)继承其他类而得到的类父类:是所有子类的公共属性及方法的集合。子类:则是父类的特殊化。2、 属性的隐藏、方法覆盖答案:子类中声明了与父类中相同的成员变量名,则从父类继承的变量将被隐藏。如果子类不需使用从父类继承来的方法的功能,则可以声明自己的同名方法,称为方法覆盖。3、 继承时的构造方法答案:a) 子类不能从父类继承构造方法b) 好的程序设计方法是在子类的构造方法中调用某一个父类构造方法,调用语句必须出现在子类构造方法的第一行,可使用super关键字c) 如子类构造方法的声明中没有明确调

22、用父类构造方法,则系统在执行子类的构造方法时会自动调用父类的默认构造方法(即无参的构造方法)4、 Object类和常用方法答案:Java程序中所有类的直接或间接父类,类库中所有类的父类,处在类层次最高点。5、 终结类、终结属性与终结方法的概念和特点6、 抽象类、抽象方法的概念和特点7、 类的组合、组合与继承的比较8、 语言包(java.lang)的应用: 数据包裹类(Integer类)、字符串类、StringBuffer类9、 实用包(java.util) 的应用:Date 类和Calendar类10、 文本包(java.text)的应用:SimpleDateFormat类11、 创建Stud

23、ent类,属性包括学号,姓名,英语成绩,数学成绩,方法testScore方法(计算测评成绩,测评成绩二门课平均分)答案:public class student private int No;private String Name;private float EnglishScore;private float MathsScore;private float CPScore;student(int n,String na,float e,float m )No = n;Name = na;EnglishScore = e;MathsScore = m;public float testSco

24、re()CPScore = (EnglishScore*MathsScore)/2;return CPScore;public static void main(String args) student s1 = new student(01,zhangsan,80,90);s1.testScore();12、 创建StudentXW(学习委员)类为Student类的子类,在StudentXW类中重写testScore方法(计算测评成绩,测评成绩二门课平均分3)答案:package shape;public class StudentXW extends Studentpublic float

25、 testScore()Score=(EnScore+MaScore)/2+3;return Score;13、 创建测试类Ex4_1,生成一个Student对象(学生信息:,张三,76,84),一个StudentXW对象(学生信息:,李四,86,84)、分别计算并输出他们的评测评成绩。答案:package shape;public class TestStudent /* * param args */public static void main(String args) / TODO Auto-generated method stubStudent aboy=new Student()

26、;aboy.Id=;aboy.Name=张三;aboy.EnScore=76;aboy.MaScore=84;System.out.println(姓名:+aboy.Name+ +测评成绩:+aboy.testScore();StudentXW aboy2=new StudentXW();aboy2.Id=;aboy2.Name=李四;aboy2.EnScore=86;aboy2.MaScore=84;System.out.println(姓名:+aboy2.Name+ +测评成绩:+aboy2.testScore();14、 创建Application程序类ArrayApp,实现如下输出:1

27、5、修改上述程序,改用DecimalFormat类控制输出格式(参看第2章课件第120张幻灯片),使输出如下:答案:package example;import java.text.DecimalFormat;import java.text.NumberFormat;public class ArrayApp /* * param * param args */public static void main(String args) final int ArrayX =0,10,20,30,40,50,60,70,80,90;int i;double rad = 0; /弧度变量final

28、DecimalFormat nf = new DecimalFormat(0.000);System.out.println(X+ +sin(x)+ +cos(x);for(i=0;i0) result=result*i; i=i-1; System.out.println(The factorial of +num+ is +result); System.out.println(new thread ends); 思考:上述两个程序实现线程有何不同?第九章图形用户界面1、 Swing与AWT包2、 Swing顶层容器、中间层容器、原子容器的概念Swing提供三个顶层容器的类 JFrame

29、实现单个主窗口 JDialog 实现一个二级窗口(对话框) JApplet 在浏览器窗口中实中实现一个applet显示区域3、 布局管理器答案:布局设计是用来安排一个容器中若干个组件的相对位置。容器中组件的布局是由布局管理器来负责的。每个容器都有一个默认的布局管理器,用户可用特定的方法来改变容器的布局管理器。 通常有如下5种布局管理器:(1) FlowLayout(顺序布局)(2) BorderLayout(边界布局)(3) CardLayout(卡片布局)(4) GridLayout(网格布局)(5) GirdBagLayout(复杂网格布局)4、 实现事件处理的方法答案:事件源:图形用户界

30、面上可能发生事件的每个构件(组件)称为事件源事件对象:指封装了有关事件的若干信息的事件类的对象。事件监听者:某种监听者类的对像。5、 Applet小应用程序的特点,如何运行?答案:Applet与Application不同,相比有如下3个特点1. Applet的主类必须是类库中已定义的Applet类的子类。2Applet不是完整独立的程序,而是一个已经构建好的框架程序中的一个模块。3.Applet可以直接利用浏览器或者AppletViewer所提供的图形用户界面来显示运行结果。Applet的工作原理1.编辑好Applet,存放于.Java的文件中。2. 编译Applet生成字节码文件(.clas

31、s),通常使用javac命令。3. 将字节码文件嵌入到HTML文件,该文件被保存在一个WWW服务器上。4. 某个浏览器向服务器请求下载嵌入Applet的HTML文件时,将该文件下载到客户端。5. 使用浏览器解释HTML文件中的各种标记,再利用其自身拥有的Java解释器直接执行字节码文件,并将结果输出显示在图形界面上。6、 Applet的生命周期及主要方法?每个方法何时执行?答案:Applet类的主要方法如下 Init()方法:用来完成初始化操作。 Star()方法:该方法是启动浏览器将Applet主线程运行。 Paint()方法:用来输出显示的,即将结果输出显示在Applet界面上,可显示文本

32、、图形和其他界面元素。 Stop()方法:该方法是在暂停执行Applet前执行的一种方法。 Destroy()方法:该方法是用来终止Applet的执行,执行该方法将会释放Applet占有的一切资源,关闭连接之类的操作。 7、 创建Lx9_1应用程序,用swing包创建窗体,并在窗体中创建如下用户界面,并实现简单计算器功能。答案:package example;import java.awt.Color;import java.awt.Dimension;import java.awt.EventQueue;import java.awt.event.ActionEvent;import jav

33、a.awt.event.ActionListener;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JRadioButton;import javax.swing.JTextField;public class cal extends JFrame/* * */private static final long serial

34、VersionUID = 1L;private ButtonGroup buttonGroup_1 = new ButtonGroup();private JTextField result;private JTextField textField_1;private JTextField textField;private JFrame frame;/* * Launch the application * param args */public static void main(String args) EventQueue.invokeLater(new Runnable() publi

35、c void run() try cal window = new cal();window.frame.setVisible(true); catch (Exception e) e.printStackTrace(););/* * Create the application */public cal() createContents();/* * Initialize the contents of the frame */private void createContents() frame = new JFrame();frame.getContentPane().setBackgr

36、ound(Color.LIGHT_GRAY);frame.getContentPane().setLayout(null);frame.setTitle(计算器);frame.setBounds(100, 100, 429, 375);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JLabel label = new JLabel();label.setBounds(101, 43, 68, 50);label.setPreferredSize(new Dimension(2, 50);label.setText(第一个数

37、:);frame.getContentPane().add(label);final JLabel label_1 = new JLabel();label_1.setText(第二个数:);label_1.setBounds(101, 99, 68, 38);frame.getContentPane().add(label_1);textField = new JTextField();textField.setBounds(175, 57, 104, 22);frame.getContentPane().add(textField);textField_1 = new JTextField();textField_1.setBounds(175, 107, 104, 22);frame.getContentPane().add(textField_1);final JLabel label_2 = new JLabel();label_2.setText(运算);label_2.setBounds(101, 166,

温馨提示

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

评论

0/150

提交评论