java作业第二次
- 格式:docx
- 大小:214.41 KB
- 文档页数:18
2023年春江苏开放大学JAV A程序设计形考二作业试题列表单选题题型:单选题客观题分值3分难度:简单得分:31已知有下面类的说明:public class X5_1_1 extends x{private float f =10.6f;int i=16;static int si=10;public static void main(String[] args) {X5_1_1 x=new X5_1_1();}}在main()方法中,下面哪条语句的用法是正确的?()Ax.fBthis.siCX5_1_1.iDX5_1_1.f正确答案:A题型:单选题客观题分值3分难度:简单得分:32下面关于接口的说法中不正确的是()。
A接口中所有的方法都是抽象的B接口中所有的方法都是public访问权限C子接口继承父接口所用的关键字是implements D接口是Java中的特殊类,包含常量和抽象方法正确答案:C老师点评:题型:单选题客观题分值3分难度:简单得分:3 3区分类中重载方法的依据是()A形参列表的类型和顺序B不同的形参名称C返回值的类型不同D访问权限不同正确答案:A题型:单选题客观题分值3分难度:简单得分:3 4Java语言类间的继承关系是()A单继承B多重继承C不能继承D不一定正确答案:A题型:单选题客观题分值3分难度:简单得分:3 5Java语言接口间的继承关系是()。
A单继承B多重继承C不能继承D不能继承正确答案:B老师点评:题型:单选题客观题分值3分难度:简单得分:3 6下列程序的运行结果是()。
public class X5_1_2 extends x{int ab(){static int aa=10;aa++;System.out.println(aa);}public static void main(String[] args) {X5_1_2 x=new X5_1_2();x.ab();}}A10B11C编译错误D运行成功,但不输出正确答案:C题型:单选题客观题分值3分难度:简单得分:3 7一个类实现接口的情况是()。
2012年9月份考试J a v a程序设计第二次作业.d o c2012年9月份考试Java程序设计第二次作业一、单项选择题(本大题共50分,共 20 小题,每小题 2.5 分)1. package语句的作用是()A. 引入一个包B. 创建一个包C. 既能引入一个包,又能创建一个包D. 以上皆不对2. 关于下列程序结果正确的是()public class MyClass{static int i;public static void main(String argv[]){System.out.println(i);}}A. Error Variable i may not have been initializedB. NullC. 1D. 03. 下列说法不正确的是()A. java语言里的线程是没有优先级的B. String类在ng包中C. java语言支持类的序列化D. 能序列化的类必须实现java.io.Serializable接口4. 给定类Demo定义如下下列描述中正确的是()A. 新生成Demo对象时coumt的值为0B. 新生成Demo对象时coumt的值未定义C. Base类的对象中可以直接对count变量进行访问修改.D. 以上均不对5. FileNotFoundException属于以下哪种类型的异常()A. IOExceptionB. RuntimeExceptionC. AWTExceptionD. ArithmeticException6. 下列哪个选项不会出现编译错误()A. float f = 1.3;B. char c = "a";C. byte b = 257;D. int i = 10;7. 类Vector中()方法可以实现增加新成员的功能A. addElement()B. insert()C. append()D. addItem()8. 下面哪些赋值语句是错误的()A. float f = 11.1;B. double d = 5.3E12;C. char c =’\r’;D. Boolean b=true;9. 下式中给字符串数组正确赋值的语句是()A. String temp [] = new String {"j" "a" "z"};B. String temp [] = { "j " " b" "c"};C. String temp = {"a", "b", "c"};D. String temp [] = {"a", "b", "c"};10. 下列哪个选项不能使当前线程停止执行()A. 一个异常被抛出B. 线程执行了sleep()调用C. 高优先级的线程处于可运行状态D. 当前线程产生了一个新线程11. 编译并运行下列程序的正确结果是()public class EqualsTest{public static void main(String args[]){Object A=new Long(7);Long L=new Long(7);if(A.equals(L)) System.out.println("Equal");else System.out.println("Not Equal");}}A. "Equal".B. "Not Equal"C. .编译错误D. 以上均不对.12. 关于下列程序 public class Q { public static void main(String argv[]){ int anar[]= new int[]{1,2,3}; System.out.println(anar[1]); } } 以下结论正确的是()A. 发生编译错误B. 1C. 2D. 数组长度未指定13. 如果定义一个线程类,它继承自Thread,则我们必须重写其中的()方法A. runB. startC. yieldD. stop14. 有如下程序段x的取值在什么范围内时,将打印出字符串"second"? A. x > 0 B. x > -4 C. x <= -4 D. x <= 0 & & x > -415. 下列赋值操作正确的是()A. char ch = “a”;B. char ch = ‘\’ ‘;C. char ch = ‘cafe’;D. char ch = “cafe”;16. 一个文件名为first的Java源文件,编译后得到的类文件为()A. first.javaB. first.classC. first.cD. 上述均不对17. 为有效实现对某方法体中共享对象的同步,应采用()关键字对该方法进行修饰A. synchronizedB. abstractC. finalD. tatic18. 如果程序段如下:{{int i=1;System.out.println(i);}System.out.println(i);}则下面哪句话是正确的:( )A. 不能通过编译B. 能正确运行C. 能正确编译D. 输出结果为119. 当某区域被毁坏或需要清除时,AWT会自动调用下列哪个方法()A. paint()B. repaint()C. update()D. destoy()20. 下面哪一个AWT组件可以有菜单栏MenuBar( )A. javawt.FrameB. javawt.WindowC. javawt.AppletD. javawt.Panel二、判断题(本大题共50分,共 20 小题,每小题 2.5 分)1. Java语言支持类的序列化.()2. 子类要调用父类的方法,必须使用super关键字.()3. for 语句中的循环体不能是空的.()4. 一个接口中只需进行方法的声明,而不提供具体的实现.()5. Java的编译环境和运行环境必须在同一台机器上6. 组件必须放置在一定的容器中才能显示.()7. 程序中抛出异常时(throw …),只能抛出自己定义的异常对象。
达内corejava第二次考试试题类型:单选题试题1已知变量a和obj的定义如下:Object[] a1 = { "a", "b", "c" };Object obj = a1;则下面语句运行时会抛出异常的是( )。
CA.Object[] a2 = (Object[])obj;B.String str1 = (String)((Object[])obj)[1]C.String[] a3 = (String[])objD.String str2 = (String)a1[2]试题2已知类Foo的定义如下:public class Foo {int value;Foo(int value) {this.value = value;}}运行下面程序段:Foo[] a1 = { new Foo(1), new Foo(2), new Foo(3) }; Foo[] a2 = new Foo[a1.length];System.arraycopy(a1, 0, a2, 0, a1.length);System.out.println((a1 == a2) + "," + (a1[1] == a2[1]));控制台输出的结果是( )。
AA.false,trueB.false,falseC.true,trueD.true,false试题3已知类Foo的定义如下:public class Foo {int value;Foo(int value) {this.value = value;}public boolean equals(Object obj) {if (obj instanceof Foo) {Foo foo = (Foo) obj;return value == foo.value;} else {return false;}}运行下面程序段:ArrayList list = new ArrayList();HashSet set = new HashSet();list.add(new Foo(1));set.add(new Foo(1));System.out.println(list.contains(new Foo(1)) + "," + set.contains(new Foo(1)));控制台输出的结果是( )。
2014-2015学年第一学期实验报告课程名称:Java SE 平台技术实验名称:JA VA编程(基础练习)姓名:学号:成绩:指导教师:日期:目录一、实验目的 (3)二、实验内容 (3)2.1 构建一个继承类。
(3)2.2 抽象类和接口的使用 (3)2.3 图像类编程和事件驱动程序。
(3)三、实验环境 (3)四、实验结果 (3)4.1构建继承类 (3)4.2抽象类和接口的使用 (3)4.3 事件驱动程序 (3)五、附录 (4)5.2 设计方案 (4)5.1构建继承类 (4)5.2抽象类和接口的使用 (4)5.3 事件驱动程序 (4)5.2 设计方案 (4)5.1构建继承类 (4)5.2抽象类和接口的使用 (4)5.3 事件驱动程序 (4)5.3 算法 (4)5.3.1 三角形继承类 (4)5.3.2 抽象类与接口 (5)5.3.3 画出小车 (5)5.4. 设计图 (6)5.4.1 三角形类UML设计图 (6)5.4.2.1 Colorable接口UML设计图 (7)5.4.2.2 CompareTo与Clone接口UML设计图 (8)5.4.3 小车UML设计图 (9)5.5 仿真结果 (9)5.5.1构建继承类 (9)5.5.2抽象类和接口的使用 (9)5.5.3 事件驱动程序 (10)5.6 调试心得 (10)5.6.1 错误分析 (10)5.6.2 心得与收获 (10)一、实验目的通过使用JA V A语言进行基本程序的开发,掌握JA V A通用IDE,练习类的封装使用、JA V A基本类库的使用、利用UML进行简单建模。
二、实验内容2.1 构建一个继承类。
2.2 抽象类和接口的使用2.3 图像类编程和事件驱动程序。
三、实验环境Eclipse、Win 8.1四、实验结果4.1构建继承类输出了三角形的三边长,面积,周长。
4.2抽象类和接口的使用4.2.1执行Colorable接口,输出了一条how to color的信息4.2.2执行Comparable 和Cloneable接口,输出了创建的五边形和克隆五边形的周长和面机的信息。
一、(1)题目设计一个Stock的类,这个类包括:一个名为symbol的字符串数据域表示股票代码一个名为name的字符串数据域表示股票名字一个名为previousClosingPrice的double型数据域,它存储的是前一日的股票值一个名为currentPrice的double型数据域,它存储的是当时的股票值。
创建一支有特定代码和名字的股票的构造方法。
一个名为getChangePercent()的方法返回从previousClosingPrice变化到currentPrice的百分比。
实现这个类,编写一个测试程序,创建一个Stock对象,它的股票代码是ORCL股票名字为Oracle Corporation,前一日收盘价是。
设置新的当前值为,然后显示市值变化的百分比。
(2)UML图(3)代码package class Stock {private String symbol="";private String name;private double previousClosingPrice;private double currentPrice;public Stock() {symbol="";name="";previousClosingPrice=;currentPrice=;}public Stock(String newsymble, String newname) { symbol=newsymble;name=newname;}public String getsymbol(){return symbol;}public String getname(){return name;}public double getChangPercent() {return currentPrice/previousClosingPrice;}}package class test1 {public static void main(String[] args){Stock s1=new Stock();Stock s=new Stock("ORCL","Oracle Corporation");"The symbol is:"+());"The name is:"+());"The ChangPercent is:"+());}}(4)运行结果The symbol is: ORCLThe name is: Oracle CorporationThe ChangPercent is:二、(1)题目设计一个名为Fan的类表示风扇。
java语言程序设计第2次形考
试卷总分:100
客观题
判断题(共20题,共40分)
开始说明:
结束说明:
1.(2分)
使用方法length( )可以获得字符串或数组的长度。
√
×
2.(2分)
Final类中的属性和方法都必须被final修饰符修饰。
√
×
3.(2分)
Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。
√
×
4.(2分)
用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。
√
×
5.(2分)
一个类如果实现了某个接口,那么它必须重载该接口中的所有方法。
√
×
6.(2分)
有的类定义时可以不定义构造函数,所以构造函数不是必需的。
√
×
7.(2分)
接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
JAVA第二次测试题汇总面向对象程序设计第二次测试题一、定义一个抽象的"Role"类,有姓名,年龄,性别等成员变量1.要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有),再通过GetXXX()和SetXXX()方法对各变量进行读写。
具有一个抽象的play()方法,该方法不返回任何值,同时至少定义两个构造方法。
Role 类中要体现出this的几种用法。
2.从Role类派生出一个"Employee"类,该类具有Role类的所有成员(构造方法除外),并扩展salary成员变量,同时增加一个静态成员变量“职工编号(ID)”。
同样要有至少两个构造方法,要体现出this和super的几种用法,还要求覆盖play()方法,并提供一个finalsing()方法。
3."Manager"类继承"Employee"类,有一个final成员变量"vehicle"4.在main()方法中制造Manager和Employee对象并测试这些对象的方法二、品尝饮料1、建立一个Java抽象类Drink,应当:a、声明一个抽象方法taste(),该方法负责输出饮料的味道;b、声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶),如:c、声明静态方法getDrink(intdrinkType),根据传入的参数创建不同的饮料对象,并返回该对象,建议使用switch语句。
该方法要求声明DrinkNotFoundException,当没有相对应的饮料类型时,抛出该异常。
2、建立Drink的具体子类:a、分别建立Drink的子类:Coffee(代表咖啡),Beer(代表啤酒),Milk(代表牛奶);b、实现taste()方法,要求在控制台打印各自的味道特征。
3、建立异常类DrinkNotFoundException继承Exceptionb、在Drink的方法getDrink(intdrinkType)中声明引发DrinkNotFoundException异常,当传入的参数没有相对应的饮料类型时,抛出异常。
第⼆次作业1.编写“⼈”类及其测试类。
1.1 “⼈”类:package extend;public class A_Preson {private String name;private char sex;private int age;private String id;public String getName(){return name;}public char getSex(){return sex;}public int getAge(){return age;}public String getId(){return id;}public A_Preson(String name,char sex,int age,String id){System.out.println("姓名为:"+name+"\t性别为:"+sex+"\t\t年龄为:"+age+"\t⾝份证号码为:"+id);}}1.2 测试类:package extend;public class A_TestPreson {public static void main(String[] args) {new A_Preson("张三",'男',18,"430101010101010101");new A_Preson("李四",'⼥',18,"123456789009876543");}}结果截图:2.编写“⼿机”类及其测试类。
2.1 “⼿机”类:package extend;import java.util.Scanner;public class B_Phone {Scanner input = new Scanner(System.in);private String brand;private String model;public String getBrand(){brand = input.nextLine();return brand;}public void setBrand(String brand){this.brand = brand;}public String getModel(){model = input.nextLine();return model;}public void setModel(String model){this.model = model;}public B_Phone(){}public B_Phone(String brand,String model){System.out.println("⼿机的品牌:"+brand+"\t该⼿机型号为:"+model);}}2.2 测试类:package extend;public class B_TestPhone {public static void main(String[] args) {B_Phone a = new B_Phone();System.out.println("⼿机的品牌:"+a.getBrand()+"\t该⼿机型号为:"+a.getModel());B_Phone b = new B_Phone();System.out.println("⼿机的品牌:"+b.getBrand()+"\t该⼿机型号为:"+b.getModel());B_Phone c = new B_Phone();System.out.println("⼿机的品牌:"+c.getBrand()+"\t该⼿机型号为:"+c.getModel());}}结果截图:3.编写“书籍”类及其测试类。
CS001 CH 04Formate:1.Assignment为必作题目,Making a difference为选作题目,选作题可以不交2.每个题目创建一个单独的文件夹,以CH04_01、CH04_02等命名,只交.java文件3.所有题目打包成一个压缩包文件,以“学号_assignment2(当前作业次数)”命名压缩包4.将作业上传到ftp://10.20.0.121/Assignment:1.回文是一段数字或文本,无论顺读还是倒读都是一样的。
例如以下这些五位数的整数都是回文:12321,55555,45354。
请编写一个读入五位整数并判定其是否为回文的程序2.编程打印九九乘法表:* 1 2 3 4 5 6 7 8 9——————————————————————————————————1 12345678 92 2 4 6 8 10 12 14 16 183 3 6 9 12 15 18 21 24 274 4 8 12 16 20 24 28 32 365 5 10 15 20 25 30 35 40 456 6 12 18 24 30 36 42 48 547 7 14 21 28 35 42 49 56 638 8 16 24 32 40 48 56 64 729 9 18 27 36 45 54 63 72 813.编写程序,先读入一个整数值n,计算并打印n!【提示】输入过大的整数值会导致溢出,可限制用户输入数值的范围4.编程实现:已知两个正整数,求这两个数的最大公约数(Greatest Common Divisor) Making a Difference5.编写一个程序,用while循环从1数到300 000 000,每次加1,每当计数器达到100 000 000的倍数时,就在屏幕上打印该数字,测量循环300 000 000 次消耗的时间。
第二次作业
1、新建“学生”类,并由“学生类”派生出“小学生”、
“中学生”、“大学生”、“研究生”四个类,其中“大学
生”类再派生出“一年级学生”、二年级学生”、“三
年级学生”、“四年级学生”四个子类,“研究生”类再
派生出“硕士生’’和“博土生’’两个子类。
2、
①编写鸭子类。
鸭子嘎嘎叫,吃东西并且四处飞。
鸭子有名
称、体重和最好的朋友(也是鸭子)。
添加get\set方法。
并画出UML图。
②编写DUCK的子类-ProgrammerDuck,它包含鸭子喜欢的
编程语言、get\set方法以及额evanglize()方法,该方法打印表明鸭子最喜欢的编程语言是JA V A。
③编写主方法,依次调用上述方法。
题5.2 允许用户输入多个年份,通过一个适当的警戒值终止程序,需验证每个输入的整数年必须大于1582.import javax.swing.JOptionPane;public class LeapYear {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubint again=0;String yearstr,result;int year;final int A=1582;outer:do{yearstr=JOptionPane.showInputDialog("Enter an integer:");year=Integer.parseInt(yearstr);if(year>=A){if(year%4==0&&year%100==0||year%400==0){result="The year is"+" a leap year";JOptionPane.showMessageDialog(null, result);}else{result="The year is"+" not a leap year";JOptionPane.showMessageDialog(null, result);}}else{JOptionPane.showMessageDialog(null,"Enter again:");continue outer;}again=JOptionPane.showConfirmDialog(null, "DoAnother?");}while(again==JOptionPane.YES_OPTION);}}题5.3:读取一个整数,打印2到该整数之间的所有偶数的和,若小于2,则打印一条错误的信息。
1. 读入一个TXT文本(仅有英文单词序列组成),统计各个单词出现的次数,并以适当的图形形式表示结果。
【最大选题人数:5】(不一定用下面的图形)2. 编写程序,先在指定目录(可以由自己输入的或由main函数的参数指定)创建名为temp 的子目录,在temp目录下创建两个文件:temp1.txt、temp2.txt,然后列表显示指定目录:重命名temp1.txt为temp.txt,然后列表显示temp目录;删除文件temp2.txt,然后列表显示temp目录。
【最大选题人数:5】(要求有异常处理)3. 编写程序,创建如下一个添加组件的窗口,在下面的输入框输入用户名、电话后,按显示按钮,在上面的文本框中显示相应的信息,并在按钮的左部给出提示信息。
【最大选题人数:5】4. 编程实现GUI界面,包括文本域、文本框、按钮等相关功能,实现模拟登陆验证功能。
【最大选题人数:5】5. 利用实现Runnable接口的方法实现多线程。
编写Applet(大小140*60),其背景色为蓝色,画一个长方形(其填充色为pink色,各边离Applet的边为10像素)和一个在填充的长方形中左右移动的小球(半径15)。
【最大选题人数:5】6. 利用继承Thread类创建三个线程,线程1输出三个“good morning!”,线程2输出三个“good afternoon!”,线程3输出三个“good night!”,每个线程输出一次后休眠100s。
在main 主线程中创建并启动这三个线程。
【最大选题人数:5】7. 编写程序,在Applet中使用下拉框显示音乐文件的名字,在程序中使用AudioChip类控制播放的音乐文件,使用“播放”、“连续”、“停止”控制按钮选择播放音乐的状态。
【最大选题人数:5】8. 编写应用程序,当鼠标进入窗口时,用一个文本框给出鼠标进入或离开的信息,当鼠标左键按下拖拽时,文本框给出鼠标所在点的坐标。
【最大选题人数:5】9. 编程实现:利用Java网络包中套接字类Socket和服务者套接字类SeverSocket实现如下功能:服务器端的程序等待客户端的输入,然后将客户端的输入回显给客户端,同时在服务器端的控制台输出。
第⼆次Java作业1.编写“⼈”类及其测试类。
1.1 “⼈”类:
类名:Person
属性:姓名、性别、年龄、⾝份证号码
⽅法:在控制台输出各个信息
1.2 测试类
类名:TestPerson
⽅法:main
对象:(张三,男,18,430101010101010101)
(李四,⼥,18,123456789009876543)
属性:⼿机品牌、⼿机型号 ⽅法:在控制台输出⼿机信息2.2 测试类
类名:TestPhone
⽅法:main
对象:(华为,荣耀3C)(联想,A3600D)
(⼩⽶,note)
属性:书名、书号、主编、出版社、出版时间、页数、价格 ⽅法:在控制台输出每本书的信息
3.2 测试类
创建2个对象,并调⽤⽅法
4.编写“圆柱体”类及其测试类。
4.1 “圆柱体”类
属性:圆底半径、⾼,
⽅法1:计算底⾯积
⽅法2:计算体积
⽅法3:打印圆底半径、⾼、底⾯积和体积。
4.2 测试类
创建2个对象,并调⽤⽅法
⼼得体会:对于各类代码的功能的运⽤还不是很熟练,敲打代码的速度并不是很快,还存在着许多问题。
Java第二次月考50题及解析1、【单选题】Calendar类中,用于为指定的日历字段增加或减去指定的时间量的方法是?()。
A.int get(int field)B.void add(int field,int amount)C.void set(int field,int value)D.void set(int year,int month,int date)【正确答案】B【答案解析】本题考查Calendar类中的方法void add(int field,int amount);方法为给定的时间分量的值加上给定的值,若给定的值为负数,则是减去给定的值。
2、【单选题】如果要按照特定顺序保存元素,应当使用的容器是()A.HashMapB.ArrayListC.TreeSetD.数组【正确答案】C【答案解析】本题考查TreeSet保存元素,会以特定的顺序保存元素选项C正确。
3、【单选题】如下变量的定义:String str1 = “haohao”;String str2 = “haohao”;以上代码中创建了()对象A.0B.1C.2D.3【正确答案】B【答案解析】Java为了提高性能,静态字符串(字面量、常量、常量连接)在常量池中创建,并尽量使用同一个对象,重用静态字符串。
对于重复出现的字符串直接量,JVM会首先在常量池中查找,如果存在即返回该对象。
本题中两个变量都指向内容相同的字符串,所以只有1个对象。
选项B正确。
4、【单选题】下列哪个方法可以使线程从运行状态进入阻塞状态()。
A.run()B.yield()C.sleep()D.start()【正确答案】C【答案解析】此题目考查的是线程状态的变化。
处于运行状态的线程,当执行sleep()方法时,会进入阻塞状态。
选项C正确5、【单选题】下列()方法用来定义线程要执行的任务。
A.start()B.run()C.sleep()D.wait()【正确答案】B【答案解析】此题目考查的是每个线程要执行的任务需要在run()方法中定义选项A 用于启动线程选项C用来休眠线程选项D让某个线程处于等待状态选项B正确。
第二次作业0一、01.编写一个课程类Cource,包含:03个成员变量:课程编号(cNumber)、课程名(cName)和学分数(cUnit);01个方法:printCourceInfo:用于输出课程的相关信息;2.编写Cource类的测试程序,创建课程对象:编号为112101,课程名为Java程序设计,学分为3。
要求输出课程的相关信息。
3.将上题创建的Cource的3个成员变量改为私有,并为其添加相应的set和get方法。
要求编写其测试程序。
04.为上题的Cource类添加构造方法,用于初始化课程编号、课程名和学分。
并修改测试程序。
05.为上题的Cource类添加一个静态变量cTotalNum,用于统计创建的课程对象数。
0class 课程{0private int cNumber;0private int cUnit;0private String cName;0private static int cToalNum=0;0课程(){0cToalNum++;0}0void setcNumber(int a){0cNumber=a;0}0public int getcNumber(){0return cNumber;0} 0void setcUnit(int b){0cUnit=b;0}0public int getcUnit(){0return cUnit;0} 0void setcName(String c){0cName=c;0}0public String getcName(){0return cName;0} 0void printCourceInfo(){0System.out.println(cNumber+" "+cUnit+" " +cName);System.out.println(cToalNum);0}0}0class Cource{0public static void main(String args[]){0课程 c1=new 课程();0c1.setcNumber(112101);0c1.setcUnit(3);0c1.setcName("Java程序设计");0c1.printCourceInfo();0}0}0二、01.创建一个Professor类,该类是教师的蓝图,具有:0 5个成员变量:姓名(name)、性别(sex)、年龄(age)、讲授课程(course)和教学效果(result);其中教学效果使用整数表示,1表示“优秀”,2表示“良好”,3表示“一般”,4表示“差”;0构造方法:用于初始化姓名,性别、年龄,讲授课程属性;成员方法:0(1)用于设定和获得成员属性值course的set和get方法;(2)用于设定和获得成员属性值result的set和get方法,对于set方法,要考虑设置不成功的问题,设置成功返回true,反之,返回false。
第二次1.上机运行以下程序,写出程序运行结果。
public class UsePhoneCard{public static void main(String args[]){PhoneCard myCard = new PhoneCard(12345678,1234,50.0,"300");System.out.println(myCard.toString());}}class PhoneCard{long cardNumber;private int password;double balance;String connectNumber;boolean connected;PhoneCard(long cn, int pw, double b,String s){cardNumber = cn;password = pw;if ( b > 0 )balance = b;elseSystem.exit(1);connectNumber = s;connected = false;}boolean performConnection(long cn,int pw){if(cn == cardNumber && pw == password ){connected = true;return true;}else{connected = false;return false;}}double getBalance(){if(connected)return balance;elsereturn -1;}void performDial(){if(connected)balance -= 0.5;}public String toString(){String s = "电话卡接入号码:"+connectNumber+"\n电话卡卡号:"+cardNumber+"\n电话卡密码:"+password+"\n剩余金额:"+balance;if(connected)return (s + "\n电话已接通。
第三章Java面向对象1、为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。
现有两种工具:Car007 和Plane,其中Car007 的速度运算公式为:A*B/C,Plane 的速度运算公式为:A+B+C。
需要编写三类:ComputeTime.java, Plane.java, Car007.java和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。
其运行过程如下,从命令行输入ComputeTime的四个参数,第一个是交通工具的类型,第二、三、四个参数分别时整数A、B、C,举例如下:计算Plane的时间:"java ComputeTime Plane 20 30 40"计算Car007的时间:"java ComputeTime Car007 23 34 45"如果第3种交通工具为Ship, 则只需要编写Ship.java,运行时输入:"java ComputeTime Ship 22 33 44"提示:充分利用接口的概念,接口对象充当参数。
实例化一个对象的另外一种办法:Class.forName(str).newInstance();例如需要实例化一个Plane对象的话,则只要调用Class.forName("Plane").newInstance()便可。
Common d = (Common) Class.forName("ComputeTime."+args[0]).newInstance();//实例化对象是包名加对象名package ComputeTime;public interface Common {double runTimer(double a, double b, double c);}package ComputeTime;public class Car implements Common {@Overridepublic double runTimer(double a, double b, double c) {return (a + b + c);}}package ComputeTime;public class Plane implements Common {@Overridepublic double runTimer(double a, double b, double c) {return (a + b + c);}}package ComputeTime;public class Ship implements Common{@Overridepublic double runTimer(double a, double b, double c) {return (a + b - c);}}package ComputeTime;public class ComputeTime {public static void main(String[] args) {System.out.println("交通工具: " + args[0]);System.out.println(" 参数A: " + args[1]);System.out.println(" 参数B: " + args[2]);System.out.println(" 参数C: " + args[3]);double A = Double.parseDouble(args[1]);double B = Double.parseDouble(args[2]);double C = Double.parseDouble(args[3]);double v, t;try {Common d = (Common) Class.forName("ComputeTime."+args[0]).newInstance();v = d.runTimer(A, B, C);t = 1000 / v;System.out.println("平均速度: " + v + " km/h");System.out.println("运行时间:" + t + " 小时");} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {System.out.println("class not found");}}}2、编写一个学生类Student ,要求:(1) 学生类Student 属性有:id : long型,代表学号name : String类对象,代表姓名age : int型,代表年龄sex : boolen型,代表性别(其中:true表示男,false表示女)phone : String类对象,代表联系电话(2) 学生类Student的方法有:Student(long i , String n , int a , boolean s , Stringp) : 有参构造函数,形参表中的参数分别初始化学号、姓名、年龄、性别和联系电话。
int getAge() ( ) : 获取年龄作为方法的返回值。
boolean getSex( ) ( ) : 获取性别作为方法的返回值。
StringgetPhone ( ) : 获取联系电话作为方法的返回值。
public String toString( ) : 以姓名:联系电话的形式作为方法的返回值。
package student;public class Student {private long id;private String name;private int age;boolean sex;private String phone;public Student(){}public Student(long i , String n , int a , boolean s , String p){id=i;name=n;age=a;sex=s;phone=p;}public long getId(){return id;}public String getName(){return name;}public String getPhone(){return phone;}public int getAge(){return age;}public boolean getSex(){return sex;}public String toString(){return "姓名:"+name+",ID:"+id+",年龄:"+age+",男?"+sex+",Phone:"+phone; }public static void main(String[] args) {Student stu=new Student(18,"张三",19,true,"12456");System.err.println(stu.toString());}}run:姓名:张三,ID:18,年龄:19,男?true,Phone:124563、利用接口编写三角形、矩形的面积和周长的程序。
package homework3_4;public interface Common {public double area();public double length();}package homework3_4;public class Rentangle implements Common{double s1;double s2;public Rentangle(){}public Rentangle(double a,double b){s1=a;s2=b;}@Overridepublic double area() {return s1*s2;}@Overridepublic double length() {return 2*s1+2*s2;}@Overridepublic String toString(){return "面积为:"+this.area()+",周长为:"+this.length();}}package homework3_4;public class Triangle implements Common{private double s1;private double s2;private double s3;public Triangle(){}public Triangle(double a,double b,double c){this.s1=a;this.s2=b;this.s3=c;}@Overridepublic double area() {double p=(s1+s2+s3)/2;return Math.sqrt(p*(p-s1)*(p-s2)*(p-s3));}@Overridepublic double length() {return s1+s2+s3;}@Overridepublic String toString(){return "面积为:"+this.area()+",周长为:"+this.length();}}package homework3_4;public class HomeWork3_4 {public static void main(String[] args) {Rentangle r=new Rentangle(4,6);Triangle t=new Triangle(5,12,13);System.out.println(r.toString());System.out.println(t.toString());}}run:面积为:24.0,周长为:20.0面积为:30.0,周长为:30.04、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。