Java理论作业(5章)
《Java程序设计》第05章在线测试
《Java程序设计》第05章在线测试
A B
C D
A B
C D
A B
C D
A B
C D
A B
C D
D、Frame的默认布局管理器为BorderLayout
2、下列属于Swing构件的是()。
A、JMenu
B、JApplet
C、JOptionPane
D、Panel
3、下面哪些是Java中的容器()。
A、Frame
B、Panel
C、Scrollbar
D、Dialog
4、对JFrame添加构件有()方式。
A、用add方法直接加入到JFrame中。
B、建立一个Jpanel的中间容器,把构件添加到容器中,再把该容器置为JFrame的内容面板,再对其加入构
件。
C、建立一个JDesktopPane之类的中间容器,把构件添加到容器中,再把该容器置为JFrame的内容面板,再
对其加入构件。
D、用getContentPane()方法获得JFrame的内容面板,再对其加入构件。
5、在JAVA语言中,你的按钮要实现下面的功能:当鼠标按下按钮时,显示“鼠标已按下”;当释放按键时,显示“鼠标已释放”。
你必须具体定义接口MouseListener的()方法。
A、mouseClicked
B、mouseEntered
C、mousePressed
D、mouseReleaseed
第三题、判断题(每题1分,5道题共5分)
1、在Swing用户界面的程序设计中,容器不能被添加到其它容器中。
正确错误正确错误正确错误正确错误正确错误。
第5章JavaAPI练习题2
第5章JavaAPI练习题2⼀、填空题1. 通过循环完成查找,直到找不到⼦串为⽌,此时indexOf()⽅法返回值为【】。
2. 可以使⽤【】类的contains()⽅法,判断整串中是否包含⼦串。
3. JAVA中 int类型对应的包装类是【】。
4. 针对字符串的操作,Java提供了两个字符串类,分别是String和【】。
5. System类的【】静态⽅法可以启动垃圾回收器。
⼆、判断题1. 在JDK5.0中,switch语句可以⽀持字符串类型。
()2. StringBuffer类的append()⽅法可以将数组元素和空格连接成字符串。
()3. ceil()、floor()和round()⽅法返回的都是double类型的数。
()4. java.util.Random的nextInt( )⽅法会⽣成⼀个正整数类型的伪随机数。
()5. JAVA中拆箱是指将引⽤数据类型的对象转为基本数据类型。
()三、选择题1. 下⾯哪个选项可以获取Runtime类的实例()A: Runtime r = new Runtime();B: Runtime r = Runtime.getRuntime();C: Runtime r = Runtime.getInstance();D: 以上选项都不能获取Runtime实例2. 下列选项中,可以正确实现String初始化的是()A: String str = "abc";B: String str = 'abc';C: String str = abc;D: String str = 0;3. 若double val = Math.ceil(-11.9);,则val的值是()A: 11.9B: -11.0C: -11.5D: -12.04. 下列关于System类的描述中,错误的是()A: System类是final关键字修饰的类,它不能被其他类所继承B: System类不能被实例化C: System类中定义了许多⽅法,但是没有定义字段D: System类中提供了获取当前系统属性的⽅法5. 下列选项中,对Math.random()⽅法描述正确的是( )A: 返回⼀个不确定的整数B: 返回0或是1C: 返回⼀个随机的double类型数,该数⼤于等于0.0⼩于1.0D: 返回⼀个随机的int类型数,该数⼤于等于0.0⼩于1.0四、简答题1. 在Java中可以通过哪些⽅式对String进⾏初始化?。
《Java程序设计》教材第五章练习题答案
习题一、选择题1. 面向对象程序设计的基本特征是(BCD)。
(多选)A.抽象B.封装C.继承D.多态2.下面关于类的说法正确的是(ACD)。
(多选)A.类是Java 语言中的一种复合数据类型。
B.类中包含数据变量和方法。
C.类是对所有具有一定共性的对象的抽象。
D.Java 语言的类只支持单继承。
上机指导1.设计银行项目中的注册银行用户基本信息的类,包括账户卡号、姓名、身份证号、联系电话、家庭住址。
要求是一个标准Java类(数据私有,提供seter/getter),然后提供一个toString方法打印该银行用户的信息。
答:源代码请参见“CH05_LAB\src\com\inspur\ch05\BankUser.java”2.设计银行项目中的帐户信息,包括帐户卡号、密码、存款,要求如“练习题1”。
答:源代码请参见“CH05_LAB\src\com\inspur\ch05\Account.java”3.设计银行项目中的管理员类,包括用户名和密码。
要求如“练习题1”。
答:源代码请参见“CH05_LAB\src\com\inspur\ch05\Manager.java”4.创建一个Rectangle类。
添加两个属性width、height,分别表示宽度和高度,添加计算矩形的周长和面积的方法。
测试输出一个矩形的周长和面积。
答:源代码请参见“CH05_LAB\src\com\inspur\ch05\Rectangle.java”5.猜数字游戏:一个类A有一个成员变量v,有一个初值100。
定义一个类,对A类的成员变量v进行猜。
如果大了则提示大了,小了则提示小了。
等于则提示猜测成功。
答:源代码请参见“CH05_LAB\src\com\inspur\ch05\Guess.java”6.编写一个Java程序,模拟一个简单的计算器。
定义名为Computer的类,其中两个整型数据成员num1和num1,编写构造方法,赋予num1和num2初始值,再为该类定义加、减、乘、除等公有方法,分别对两个成员变量执行加减乘除的运算。
Java课后题-第5章答案
一.程序设计题1.定义一个汽车类Car,要求如下:1)属性包括:汽车品牌brand(String类型)、颜色color(String类型)和速度speed(double类型),并且所有属性为私有。
2)至少提供一个有参的构造方法(要求品牌和颜色可以初始化为任意值,但速度的初始值必须为0)。
3)为私有属性提供访问器方法。
注意:汽车品牌一旦初始化之后不能修改。
定义测试类CarTest,在其main方法中创建一个品牌为“benz”、颜色为“black”的汽车。
public class Car{private String brand;private String color;private double speed;public Car(String brand,String color){this.brand=brand;this.color=color;}public String getColor(){return color;}public void setColor(String color){this.color=color;}public double getSpeed(){return speed;}public void setSpeed(double speed){this.speed=speed;}public String getBrand(){return brand;}}public class CarTest{public static void main(String[]args){Car c1=new Car("benz","black");}}2.定义一个图书类Book,要求如下:1)属性包括:书名name(String类型)、作者author(String类型),单价price(double类型),数量amount(int类型),并且所有属性为私有。
Java基础第5章编程题答案
第五章编程题1.编写一个程序,实现字符串大小写的转换并倒序输出。
要求如下:(1)使用for循环将字符串“HelloWorld”从最后一个字符开始遍历。
(2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase()方法将其转换为大写字符。
(3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。
【参考答案】public class Chap5e {public static void main(String[] args) {String str="Hell5oWorld";char[] ch=str.toCharArray();StringBuffer s=new StringBuffer();for(int i=ch.length-1;i>=0;i--){if(ch[i]>='A'&&ch[i]<='Z')s.append(String.valueOf(ch[i]).toLowerCase());elseif(ch[i]>='a'&&ch[i]<='z')s.append(String.valueOf(ch[i]).toUpperCase());elses.append(String.valueOf(ch[i]));}System.out.print(s.toString());}}2. 利用Random类来产生5个20`30之间的随机整数并输出。
【参考答案】import java.util.Random;public class Chap5e {public static void main(String[] args) {Random r=new Random();for(int i=0;i<5;i++){System.out.println(r.nextInt(30-20+1)+20);}}}3. 编程. 已知字符串:”this is a test of java”.按要求执行以下操作:(1) 统计该字符串中字母s出现的次数(2) 取出子字符串”test”(3) 将本字符串复制到一个字符数组Char[] str中.(4) 将字符串中每个单词的第一个字母变成大写,输出到控制台。
java习题及答案第5章 习题参考答案
第5章习题解答1.使用抽象和封装有哪些好处?答:抽象是人们解决问题的基本手段,程序设计过程中需要对问题领域进行分析、设计中得出的抽象概念,然后封装成一些类。
封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。
系统的其他部分只有通过包裹在数据外面的被授权的操作来与这个抽象数据类型交流与交互。
也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。
把对象中相同或相似地地方抽象出来,从特殊到一半,从具体到抽象的过程,对象经过抽象得到类,类的实例化成了对象。
也可以高度抽象成接口,让不完全相同,但包含相同点的对象实现此接口,也就是利用多态实现。
把相同点抽象出来,抽象成此类或接口的方法、属性、字段等,封装就是隐藏某个对象的与其基本特性没有很大关系的所有详细信息的过程,就是将需要让其他类知道的暴露出来,不需要让其他类了解的全部隐藏起来,封装可以阻止对不需要信息的访问,我们可以使用访问指定符实现封装,也可以使用方法实现封装,可以将隐藏的信息作为参数或者属性值、字段指传给公共的接口或方法,以实现隐藏起来的信息和公开信息的交互。
封装的目的就是为了实现“高内聚,低耦合”。
高内聚就是类的内部数据操作细节自己完成,不允许外部干涉,就是这个类只完成自己的功能,不需要外部参与;低耦合,就是仅暴露很少的方法给外部使用。
2.构造方法的作用是什么?它与一般的成员方法在使用和定义方面有什么区别?答:构造方法用于生成一个对象实例,并对对象实例中的成员变量初始化。
当用new创建一个类的新的对象时,构造方法立即执行。
构造方法名字必须与类名相同。
3.Overload和Override的区别?答:方法重载(overloading)与方法覆盖(overriding)是实现多态性的基本手段,但两者的机制不同。
java答案第五章
"改变Pi=3.00圆的面积:"+c.area());
}
}
运行结果:
3.在什么情况下,可以对父类对象的引用进行强制类型转换,使其转化成子类对象的引用?
答:一个对象被塑型为父类或接口后,可以再一次被塑型回到它原来所属的类,即转化成原类对象的引用。
4.声明一个接口,此接口至少具有一个方法;在一个方法中声明内部类实现此接口,并返回此接口的引用。
public class Circle implements Shape2D{
double radius;
public Circle(double r){radius=r;}
public double area(){return Pi*radius*radius;}
}
//A类(测试接口中隐含final的area()方法)
this.id=newid;
}
public void setname(String newname){
=newname;
}
public void setscoreOfenglish(float newscoreOfenglish){
this.scoreOfenglish=newscoreOfenglish;
//Student类
public class Student{
String id;
String name;
float scoreOfenglish;
float scoreOfmath;
float scoreOfcomputer;
float scoreOfsum;
//构造方法
public Student(){
java编程作业第五章
第五章作业PP5.1package test;import java.util.Scanner;public class test {public static void main(String[] args){int years;Scanner in =new Scanner(System.in);String y="yes";while(y=="yes"){System.out.println("请输入年份");years=in.nextInt();if((years%4==0&&years%100!=0)||(years%400==0)){System.out.println("闰年");}else{System.out.println("不是闰年");}}}}PP 5.2package test;import java.util.Scanner;public class test {public static void main(String[] args) {// TODO Auto-generated method stubScanner scan=new Scanner(System.in);System.out.println("请输入年份");int array[]=new int[5];int i=0;for( i=0;i<=4;i++) {array[i]=scan.nextInt();}for(i=0;i<=4;i++) {if(array[i]%4==0&&array[i]%100!=0||array[i]%400==0) { System.out.println(+array[i]+"是闰年");}else {System.out.println(+array[i]+"不是闰年");}}}}PP 5.3package test;import java.util.Scanner;public class test {public static void main(String[] args) {Scanner scan=new Scanner(System.in);int odd=0;int even=0;int zero=0;int a;System.out.println("请输入一个数:");a=scan.nextInt();while(a!=0){if(a%10==0) zero++;else if((a%10)%2!=0)odd++;else if((a%10)%2==0)even++;a=a/10;}System.out.println(+even+"个偶数");System.out.println(+zero+"个零");System.out.println(+odd+"个奇数");}}PP5.4package test;import java.util.Scanner;public class Test1 {public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);int number =(int) Math.random()*100+1;int a;int count = 0;do{a = in.nextInt();count++;if(a>number){System.out.println("偏大");}else if(a<number){System.out.println("偏小");}}while (a!=number);System.out.println("恭喜你猜对了,你猜了"+count+"次");}}第六章作业PP6.1import java.util.Scanner;public class oushu {public static void main(String[] args){int a,sum=0;Scanner sc=new Scanner(System.in);System.out.print("请输入一个整数:");a=sc.nextInt();//给a赋值if(a<2)//判断是否满足题目条件{System.out.println("请重新输入数字");a=sc.nextInt();}else{for(int x=2;x<=a;x+=2)//从2开始到a的值之间偶数累加{sum+=x;}}System.out.println("sum值为:"+sum);}}PP6.2import java.util.Scanner;public class zifu {public static void main(String[] args){String s1;Scanner sc=new Scanner(System.in);System.out.print("请输入一个字符串:");s1=sc.nextLine();//获取一个字符串int a=s1.length()-1;//给a赋值为字符串的长度减一,类似数组for(int x=0;x<=a;x++){System.out.println(s1.charAt(x));//隔行输出}}}PP6.3public class chengfabiao {public static void main(String[] args){int count=1;for(int i=1;i<=12;i++)//外循环for(int j=1;j<=i;j++)//内循环{System.out.print(j+"*"+i+"="+j*i+"\t");if(j%count==0)//实现换行{System.out.print("\n");count++;}}}}PP6.4import java.util.Scanner;import java.util.Scanner;public class geci {public static void main(String[] args){int a;Scanner sc=new Scanner(System.in);System.out.print("请输入一个整数(0~100):");a=sc.nextInt();//给a赋值while(a<1||a>100)//判断是否符合条件{System.out.print("请重新输入数字");a=sc.nextInt();for(int x=100;x>=a;x--)//循环输出{System.out.println(x+"bottles of beer on the wall");System.out.println(x+"bottles of beer");System.out.println("If one of those bottles should happen to fall");System.out.println(x-1+"bottles of beer on the wall");System.out.println("");}}PP6.7public class xingxing {public static void main(String[] args){final int MAX=10;for(int row=10;row>0;row--)//外循环,控制输出行数{for(int start=1;start<=row;start++)//内循环,实现每行形状System.out.print("*");System.out.println();}}}2public class xingxing2 {public static void main(String[] args){final int MAX=10;for(int row=10;row>0;row--)//外循环,控制输出行数{for(int start=1;start<=row-1;start++)//控制每行需要输出的空格数量System.out.print(" ");for(int j=10;j>=row;j--)//控制每行需要输出*的个数System.out.print("*");System.out.println();}}}3public class xingxing3 {public static void main(String[] args){final int MAX=10;for(int row=10;row>0;row--)//外循环,实现行数的控制{for(int j=10;j>row;j--)//控制每行需要输出的空格数量System.out.print(" ");for(int start=1;start<=row;start++)//控制每行需要输出*的个数System.out.print("*");System.out.println();}}}4public static void main(String[] args){int nl=5,i,j,k;for(i=0;i<nl;i++)//外循环,控制行数(完成上半部分){for(j=nl-i-1;j>0;j--)//控制每行需要输出的空格数量System.out.print(" ");for(k=i*2;k>=0;k--)//控制每行需要输出*的个数System.out.print("*");System.out.println();}for(i=5;i>0;i--)//下半部分,将上半部颠倒{for(j=nl-i;j>0;j--)System.out.print(" ");for(k=i*2-1;k>0;k--)System.out.print("*");System.out.println();}}}PP6.8public class ASC {public static void main(String[] args){int count=0;for(int x=32;x<=126;x++)//循环从32至126{System.out.print((char)x+"\t");//将int型数字转化为char型count++;if(count%5==0)//判断是否为一行五个System.out.println();}}}PP6.9import java.util.Scanner;public class yuan {public static void main(String[] args){String s1;Scanner sc=new Scanner(System.in);System.out.print("请输入一个字符串:");s1=sc.next();int ca,ce,ci,co,cu,count;ca=ce=ci=co=cu=count=0;int l=s1.length();for(int x=0;x<l;x++){switch(s1.charAt(x)){case'a':ca++;//元音字母a的计数器break;case'e':ce++;//元音字母e的计数器break;case'i':ci++;//元音字母i的计数器break;case'o':co++;//元音字母o的计数器break;case'u':cu++;//元音字母u的计数器break;default:}}count=l-ca-ce-ci-co-cu;//非元音字母的计数器System.out.println("原音字母a的个数为:"+ca);System.out.println("原音字母e的个数为:"+ce);System.out.println("原音字母i的个数为:"+ci);System.out.println("原音字母o的个数为:"+co);System.out.println("原音字母u的个数为:"+cu);System.out.println("非原音字母个数为:"+count);}}课堂作业PP1package test;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class CalendarBook {public static void main(String[] args) throws ParseException {CalendarBook cb = new CalendarBook();cb.printWeekTitle();cb.printCalendar(2018,10);}public void printCalendar(int year, int month) throws ParseException { String monthStr; // 格式化月份,因为要转成yyyyMMdd格式的if (month < 10) {monthStr = "0" + month;} else {monthStr = month + ""; // 数字跟字符串拼接转成字符串格式}String yearMonthStr = year + monthStr;SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");Calendar calendarEnd = Calendar.getInstance();Calendar calendarStart = Calendar.getInstance();// 根据年份和月份得到输入月份有多少天int monthDays = getMonthLastDay(year, month);// 月初的date字符串String dateStartStr = yearMonthStr + "01";// 月末的date字符串String dateEndStr = yearMonthStr + monthDays;Date startDate = sdf.parse(dateStartStr);Date endDate = sdf.parse(dateEndStr);calendarStart.setTime(startDate);calendarEnd.setTime(endDate);// 得到输入月份有多少周int weeks = calendarEnd.get(Calendar.WEEK_OF_MONTH);// 得到当月第一天是星期几,这里周日为第一天,从1开始,周一则为2int dayOfWeek = calendarStart.get(Calendar.DAY_OF_WEEK);int day = 1;// 当月的第一周做特殊处理,单独打印一行for (int i = 1; i <= 7; i++) {if (i >= dayOfWeek) {System.out.print(" " + day + " ");day++;} else {System.out.print(" ");}}System.out.println();// 开始打印从第二周开始的日期for (int week = 1; week < weeks; week++) {for (int i = 1; i <= 7; i++) {if (day > monthDays) {break;}if (day < 10) {System.out.print(" " + day + " ");} else {System.out.print(day + " ");}day++;}System.out.println();}}public int getMonthLastDay(int year, int month) {int monthDay;int[][] day = { { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } };if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {// 闰年monthDay = day[1][month];} else {monthDay = day[0][month];}return monthDay;}public void printWeekTitle() {System.out.println("日" + " " + "一" + " " + "二" + " " + "三"+ " " + "四" + " " + "五" + " " + "六");}}PP2package text;import java.util.Scanner;public class text3 {public static void main(String[] args) {Scanner scan=new Scanner(System.in);int i,j,k;System.out.println("请输入第一条边长\n请输入第二条边长\n请输入第三条边长\n ");i=scan.nextInt();j=scan.nextInt();k=scan.nextInt();if(i+j>k&&i+k>j&&k+j>i){System.out.println("三条边可以构成三角形");}else {System.out.println("三条边不可以构成三角形");}}}PP3package text;import java.util.Scanner;public class text4 {public static void main(String[] args) {Scanner scan=new Scanner(System.in);int n=12;for(int i=1;i<n;i++) {for(int j=1;j<n-i;j++)System.out.print(" ");for(int k=1;k<=i;k++)System.out.print((int)Math.pow(2,(k-1)));for(int m=1;m<=i-1;m++)System.out.print(+(int)Math.pow(2,(i-1))/(int)Math.pow(2,m));System.out.println( );System.out.println( );} }}。
JAVA课后作业第5章
5-1 创建如下类:Circle类(圆形)、Square类(正方形)和Point类(点)。
Point根据(x,y)坐标定位。
Circle除了一个(x,y)坐标点之外,还有半径属性。
正方形除了一个(x,y)坐标点之外,还有边长。
请问:这些类中哪些是超类,哪些是子类?
Point类是超类,Circle类和Square类是子类。
5-2 关键字组合问题。
(1)abstract方法能否是final类型的?不行
(2)abstract方法能否是static类型的?不行
(3)能否定义一个私有静态(private static)方法?不行
5-3 简单说明方法重载与方法覆盖的区别。
方法的重载是指在一个类中,出现多个方法名相同,但参数个数或参数类型不同的方法。
方法覆盖体现了子类补充或者改变父类方法的能力,通过覆盖,可以使一个方法在不同的子类中表现出不同的行为。
5-4 列举出面向对象的三大特性。
封装、继承、多态。
JAVA程序设计习题(1-5章学生作业)
JA V A程序设计练习题(一)一、单选择题1、编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. javaB. classC. htmlD.exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )。
A. 3B. 3. 5C. 4D. 53、如下哪个是Java中的标识符()A、publicB、superC、3numberD、width4、如下哪个是Java中的标识符( )A、fieldnameB、thisC、3numberD、#number5、如下哪个是Java中有效的关键字()A、nameB、helloC、falseD、good6、下面的代码段执行之后count的值是什么( )int count = 1;for (int i = 1; i <= 5; i++) {count += i;}System.out.println(count);A、5B、1C、15D、167、定义一个类,必须使用的关键字是( )A、publicB、classC、interfaceD、static8、定义一个接口必须使用的关键字是()A、publicB、classC、interfaceD、static9、下面程序段执行后b的值是( )。
Integer integ =new Integer(9);boolean b = integ instanceof Object;A) 9 B) true C) 1 D) false10、关于选择结构下列哪个说法正确?()A.if语句和else语句必须成对出现B.if语句可以没有else语句对应C.switch结构中每个case语句中必须用break语句D.switch结构中必须有default语句11、while循环和do…wh ile循环的区别是:()A.没有区别,这两个结构任何情况下效果一样B.while循环比do…while循环执行效率高C.while循环是先循环后判断,所以循环体至少被执行一次D.do…while循环是先循环后判断,所以循环体至少被执行一次12、关于for循环和while循环的说法哪个正确?()A.while循环先判断后执行,for循环先执行后判断。
java第五章习题及答案
1.Internet/Intranet Server(服务器),客户端
2.初始化、启动、停止、退出
3.事件
4.ActionEvent,ActionListener,actionPerformed(ActionEvent e)
5.CheckboxGroup,Checkbox,Choice,List,ItemEvent
result.setText(j.toString(i));
}
catch(ArithmeticException ee){
result.setText("divided by zero");
}
}
}
class clearL implements ActionListener{
public void actionPerformed(ActionEvent e){
TextField result=new TextField(10);
Label la1=new Label("first data:");
Label la2=new Label("second data:");
Label la3=new Label("equal:");
Button plus=new Button("+");
二.选择题:
4.b5.A6.A7.a
二.编程题:
1.
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassExampleextendsAppletimplementsActionListener{
JAVA 练习题第5章对象和类
)。 (A)内部类不能有自己的成员方法和成员变量 (B)内部类可用private或protected修饰符修饰 (C)内部类可以作为其他类的成员,而且可访问 它所在的类的成员 (D)除static内部类外,不能在类内声明static成 员
【解析】内部类也可以有自己的成员方法和变量。
答案为 A
函数。
super
2.类与对象的关系是( )。
答案为 A
(A)类是对象的抽象 (B)对象是类的抽象 (C)对象是类的子类 (D)类是对象的具体实例
3.下面哪一个是Java中不合法的标识符( )。
(A)$persons (C)_myVar
(B)twoNum (D)*pointFra bibliotek答案为 D
答案为 D
4.区分类中重载方法的依据是( A.形参列表的类型和顺序 B.不同的形参名称 C.返回值的类型不同 D.访问权限不同
)。
【解析】形参表的类型和顺序不同时区分重载方法的
唯一标志。
答案为 A
5.子类对象能否直接向其父类赋值?父类对象能否向其子类赋值?
( ) A.能,能 B.能,不能 C.不能,能 D.不能,不能 值给子类对象。
据成员。
答案为 C
4.有一个类B,下面为其构造方法的声明,正确 【解析】构造方法没有类型,且方法名与类名相同。
的是( )。 (A)void B(int x) (B)B(int x) {} (C)b(int x) {} (D)void b(int x) {}
{}
答案为 B
答案为 B
在创建对象时必须( )
A、先声明对象,然后才能使用对象 B、先声明对象,为对象分配内存空间,然后才能 使用对象 C、先声明对象,为对象分配内存空间,对对象初 始化,然后才能使用对象 D、上述说法都对
Java课后习题答案第五章
char c[] = {'O','l','y','m','p','i','c',' ','G','a','m','e','s'};
rever(c);
System.out.println(c);
}
public static void rever(char c[]){char t;
for(int i=0,j=c.length-1;i<j;i++,j--)
import java.io.*;
public class Test
{ public static void main(String[] args)
{ int i,a=0,s=0;
System.out.print("请输入数a:");
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
{
sum+=x[i];
}
System.out.println("平均数:"+sum/10);
}
}
17.利用数组输入6位大学生3门课程的成绩,然后计算
(1)每个大学生的总分;
(2)每门课程的平均分;
import java.io.*;
public class Scores
{
public static void main(String[] args)throws IOException
Java第五章作业
C.ArrayStoreException D.IndexOutOfBoundsException
(4)下列说法正确的是(B)
A.异常是可有可无的 B.异常的好处是防止出错
C.异常可以方便调试程序 D.Java异常和VFP的一样
(2)Java的异常处理方式有什么特点?
它把正常程序和异常处理程序分开处理,从而保证了正常程序设计清楚,具有很强的可读性和可维护性。使异常处理更加方便,时系统更加方便,是系统更强壮。
(3)说出Java中常见的几个异常,它们表示什么意思?在什么情况下会引起这些异常?
ArrayIndexOnOfBoundsException:数组越界异常,即小于或超过数组界限使用。
(1)Java的异常处理主要是指(B)。
A.Error B.Exception C.throw D.throws
(2)Exception是(B)的子类。
A.Exception B.Throwable C.Object D.Error
(3)对数组进行处理时应该用异常处理机制,最常用的异常类是(C)。
(5)什么是异常的抛出?有哪两种异常的抛出方式?
在Java程序运行时如果出现一个可识别的错误,就会生成一个与该错误相对应的异常类的对象,并将其传递个Java运行系统,这个过程称为异常的抛出。有系统自动抛出的异常和语句抛出的异常两种抛出方式。
(6)简单说明throws子句的作用。怎么抛出自定义的异常?
将几个throw语句可能抛出的异常,均集中列入throws中,并用逗号分隔开来。声明抛出异常类名列表,就是的异常对象可以一次向后查找,直到有适合的方法捕获它为止。
java考试题库第五章
5—1 下列关于容器的描述中,错误的是DA.容器是由若干个组建和容器组成的B.容器是对图形界面中界面元素的一种管理C.容器是一种对指定宽和高的矩形范围D.容器都是可以独立的窗口5-2 下列界面元素中,不是容器的是AA。
List B.Frame C.Dialog D.Panel5-3 下列关于实现图形用户界面的描述中,错误的是DA.放在容器中的组件首先要定义,接着要初始化B.放在容器中的多个组件是要进行布局的,默认的布局策略是FlowLayoutC.容器中所有组件都是事件组件,都可以产生事件对象D.事件处理是忧监听者定义的方法来实现的5-4 下列关于组件类的描述中,错误的是AA.组件类中包含了文本组件类(TextComponent)和菜单组件类(MenuComponent)B.标签(Label)和按钮(Button)是组件类(Component)的子类C.面板(Panel)和窗口(Window)是容器类(Container)的子类D.文本框(TextField)和文本区(TextArea)是文本组件类(TextComponent)的子类5-5 在对下列语句的解释中,错误的是Cbut.addActionListener(this);A.but是某种事件对象,如按钮事件对象B.t his表示当前容器C.A ctionListener是动作事件的监听者D.该语句的功能是将but对象注册为this对象的监听者5—6 所有事件类的父类是CA.ActionEvent B.AwtEvent C.KeyEvent D.MouseEvent5-7 所有GUI标准组件类的父类是CA.Buttom B.List C.Component D.Container5-8 下列各种布局管理器中Window类、Dialog类和Frame类的默认布局是CA.FlowLayout B.CardLayout C.BorderLayout D.GridLayout5-9 在下列各种容器中,最简单的无边框的又不能移动和缩放的只能包含在另一种容器中的容器是D A.Window B.Dialog C.Frame D.Panel5—10 下列关于菜单和对话框的描述中,错误的是CA.Frame容器是可以容纳菜单组件的容器B.菜单条中可包含若干个菜单,菜单中又可包含若干菜单项,菜单项中还可包含菜单子项C.对话框与Frame一样都可作为程序的最外层容器D.对话框内不含有菜单条,它由Frame弹出5—1 AWT是抽象窗口工具包的英文缩写。
JAVA前五章练习题
前五章课外习题1: 确定用户输入的数字是否可以被5整除,并输出相应的消息。
如果能被5整除就输出能被5整除,如果不能被5整除就输出不能被5整除(提示: 可用if … else实现和!运算符)2: 编写一个简单的计算器,实现两个整型数的四则运算. 即:输入两个整数和一个操作符(包括+ , - , * , / ),然后根据输入的操作符对这两数实行相应的运算,并输出其结果. (提示:可用switch实现)3:接收三个商品价格,只要有一种商品价格大于50元,或者三种商品价格的综合大于100元,则打折,折扣率为0.15;根据用户的输入,求得该用户应该付款多少元,并且输出相应的折扣价和折扣后应付的价格。
4:从控制台上接收三个数,要求:显示出该数中的最大数和最小数。
5:从控制台上接收一个具体的年份,要求:判断输出该年份是否是闰年。
注意:判断闰年的根据是:该年份能够被4整除,并且不能够被100整除,或者能够被400整除。
则就是闰年。
6: 写一个程序,接受一个整数,用来判断这个数是否能被3,5,7整除(包括能被3整除,不能被5,7整除,能被3,5整除,不能被7整除,能被3,5,7同时整除,能被5整除,不能被3,7整除,能被5,7整除,不能被3整除等情况的判断)并且输出这个数都能被上面哪些情况下整除。
7:写一个程序,输入某年某月某日,判断这一天是整个一年中的第几天(提示:可以用Switch来做,同时需要考虑闰年的情况)8: 从控制台接受输入一件商品的价格和数量,如果商品的数量小于5件,不打折,如果购买数量在5件(包含)到10件(不包含)之间,折扣率为1%,数量在10(包含)到20件(不包含)之间,折扣率为2%;20(包含)到30(不包含)之间,折扣率为4%;大于等于30折扣率为6%;根据用户的输入求得该用户实际应付款多少?9:打印菜谱:根据用户输入一个数(该数表示星期几),如果输入1,则输出“今天是星期一:吃青菜”;如果输入2;”今天是星期二:鸡“;如果输入3:则输出”星期三:鱼“;如果输入4:则输出”星期四:肉;“;如果输入5,则输出”星期五:鸡蛋“;如果输入6,则输出”星期六:豆制品“,如果输入7,则输出”星期日:海鲜“,如果输入其他的数字,则输出”输入错误“10:求出所有的水仙花数。
Java理论作业(5章)
班级:学号: 姓名:第五章 数组与字符串知识点一:Java 的内存分配机制内存分配:栈内存、堆内存。
栈内存:基本数据类型的变量和对象的引用变量。
超出变量的作用域,会自动释放掉为该变量所分配的内存空间。
堆内存:存放由new 运算符创建的对象和数组,在堆中分配的内存,由Java 虚拟机的自动垃圾回收器来管理。
举例:int [ ] x; x=new int[10];第一句:引用变量x ,在栈内存中分配空间第二句:数组初始化,在堆内存中分配空间栈中的变量x 的取值= 数组在堆内存中的首地址,所以栈中的这个变量就成了数组的引用变量。
举例String s1; String s2;s1=“a string ”;s2=s1;引用变量实际上保存的是数组或对象在堆内存中的地址(也称为对象的句柄),所以可以通过使用栈的引用变量来访问堆中的数组或对象。
引用变量相当于是为数组或对象起的一个别名。
引用变量是普通变量,定义时在栈中分配,在程序运行到其作用域之外被释放。
数组或对象:在堆中分配内存,在没有引用变量指向它时,也不会释放,但会变为垃圾,不能再被使用。
在随后一个不确定的时间被垃圾回收器收走(释放)。
null :引用常量,如果某个引用变量值为null ,表示不指向任何对象或数组。
知识点二:一维数组数组:相同数据类型的元素按一定顺序排列的集合,实现对这些数据的统一管理。
声明方式type var[] 或 type[] var ;type 指定数组的类型,可以是基本数据类型,也可以是一个类类型(即类名),如s1 s2 1000110001 栈内存堆内存int a[]; int[] a1; double b[];注意:Java语言中声明数组时不能指定其长度(数组中元素的个数)。
例如:int a[5]; //非法所有的数组下标从零开始A 、动态初始化数组定义与为数组元素分配空间并赋值的操作分开进行使用运算符new来为数组所要存储的数据分配内存,并将它们分配给数组变量int a[];a = new int[3];a[0] = 3;a[1] = 9;a[2] = 8;B、静态初始化在定义数组的同时为数组元素分配空间并赋值int a[] = { 3, 9, 8};MyDate dates[] = {new MyDate(22, 7, 1964),new MyDate(1, 1, 2000),new MyDate(22, 12, 1964)};C、数组元素的默认初始化数组是引用类型,它的元素相当于类的成员变量数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化,比如在下例中,整型数组a中的元素并未显示的初始化,此时所有元素系统默认赋值为0。
Java作业5及答案
一、填空题1.在子类中使用关键字_______做前缀可调用被子类覆盖的父类中的方法。
2.Java中所有类都是_______类的子类。
3.通过_______运算符就能实现对对象成员变量的访问和对象方法的调用。
4.类的构造方法的名称必须与_______名相同。
5.类方法只能处理用关键字_______修饰的对象。
二、选择题1.对象使用时,下面描述错误的是( )A. 通过“.”运算符调用成员变量和方法B. 通过成员变量的访问权限设定限制自身对这些变量方法的调用C. 将一个对象申明为类的成员时,必须在使用前为其分配内存D. 在方法中使用对象作为参数时,采用引用调用2.定义一个名为“MyClass”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:( )A. private class MyClass extends ObjectB. class MyClass extends ObjectC. public class MyClassD. private class MyClass extends Object3.Java中访问限定符不包括( )A. publicB. privateC. defaultD. final4.构造方法何时被调用( )A.类定义时B.创建对象时C.调用对象方法时D.使用对象的变量时5.如果任何包中的子类都能访问超类中的成员,那么应使用哪个限定词( )A.publicB.privateC.protectedD.transient三、程序阅读题1.编译并运行下面的程序,运行结果为( )public class T1{public static void main (String[] args){T1 a=new T1();a.method(8);a.method(1.2f);}void method(float i){System.out.println("float: "+i);}void method(long i){System.out.println("long: "+i);}}(2)定义类A和类B如下:class A{int a=1;double d=2.0;void show( ){System.out.println("Class A: a="+a +"\td="+d);}}class B extends A{float a=3.0f;String d="Java program.";void show( ){super.show( );System.out.println("Class B: a="+a +"\td="+d);}}(1) 若在应用程序的main方法中有以下语句:A a=new A();a.show();则输出的结果如何?(2) 若在应用程序的main方法中定义类B的对象b:A b=new B();b.show();则输出的结果如何?答案:一、1. super 2. Object 3. 圆点 4. 类 5. static二、1.B 2.C 3.D 4.B 5.C三、1.答:编译出错,Mine应声明为abstract类型。
java作业 (5)
由图所示,该程序的运行结果为:hello
第一行:import java.util是java中的常用类
第二行:声明一个名为ArrayDemo的类,其中:
Public表示该类可被其他的类所访问
Class表示ArrayDemo是一个Java的类
第三行:该行定义的main()方法是Java程序执行的起始点,其中:Public表示方法main()可被任何程序访问
static表示main()方法是一个可以直接使用的方法
void表示main()方法执行它所包含的语句后不返回给调用者任何信息
String[] args是一个String数组的声明,用来接收外界传递给main()方法的参数
第四行:初始化a
第五行:将a里面的元素排序归纳
第六行:set是接口,hashset是set的实现类,new是week的具体实现过程
第七行: iterator是迭代器,逐一扫描元素
第八行:通过add()添加字符串hello
第九行:for做循环,扫描string
第十行:输出字符串
第十一行:for循环的结束括号,它和第九行最后的大括号构成一个整体第十二行:main()方法体的结束括号,和第三行最后的大括号构成整体第十三行:ArrayDemo类体的结束括号,和第二行最后的大括号构成一个整体。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
班级: 学号: 姓名:第五章 数组与字符串知识点一:Java 的内存分配机制内存分配:栈内存、堆内存。
栈内存:基本数据类型的变量和对象的引用变量。
超出变量的作用域,会自动释放掉为该变量所分配的内存空间。
堆内存:存放由new 运算符创建的对象和数组,在堆中分配的内存,由Java 虚拟机的自动垃圾回收器来管理。
举例:int [ ] x; x=new int[10];第一句:引用变量x ,在栈内存中分配空间第二句:数组初始化,在堆内存中分配空间栈中的变量x 的取值= 数组在堆内存中的首地址,所以栈中的这个变量就成了数组的引用变量。
举例String s1; String s2;s1=“a string ”;s2=s1;引用变量实际上保存的是数组或对象在堆内存中的地址(也称为对象的句柄),所以可以通过使用栈的引用变量来访问堆中的数组或对象。
引用变量相当于是为数组或对象起的一个别名。
引用变量是普通变量,定义时在栈中分配,在程序运行到其作用域之外被释放。
数组或对象:在堆中分配内存,在没有引用变量指向它时,也不会释放,但会变为垃圾,不能再被使用。
在随后一个不确定的时间被垃圾回收器收走(释放)。
null :引用常量,如果某个引用变量值为null ,表示不指向任何对象或数组。
知识点二:一维数组数组:相同数据类型的元素按一定顺序排列的集合,实现对这些数据的统一管理。
声明方式type var[] 或 type[] var ;type 指定数组的类型,可以是基本数据类型,也可以是一个类类型(即类名),如int a[]; int[] a1; double b[];s1 s2 10001 10001栈内存堆内存注意:Java语言中声明数组时不能指定其长度(数组中元素的个数)。
例如:int a[5]; //非法所有的数组下标从零开始A 、动态初始化数组定义与为数组元素分配空间并赋值的操作分开进行使用运算符new来为数组所要存储的数据分配内存,并将它们分配给数组变量int a[];a = new int[3];a[0] = 3;a[1] = 9;a[2] = 8;B、静态初始化在定义数组的同时为数组元素分配空间并赋值int a[] = { 3, 9, 8};MyDate dates[] = {new MyDate(22, 7, 1964),new MyDate(1, 1, 2000),new MyDate(22, 12, 1964)};C、数组元素的默认初始化数组是引用类型,它的元素相当于类的成员变量数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化,比如在下例中,整型数组a中的元素并未显示的初始化,此时所有元素系统默认赋值为0。
public class Test {public static void main(String argv[]){int a[]= new int[5];System.out.println(a[3]);}}(1)数组元素的引用定义并用运算符new为之分配空间后,才可以引用数组中的每个元素数组元素的引用方式:arrayName[index]index为数组元素下标,可以是整型常量或整型表达式,如a[3] , b[i] , c[6*i]数组元素下标从0开始;长度为n的数组合法下标取值范围:0 ~ n-1每个数组都有一个属性length指明它的长度,例如a.length 指明数组a的长度(元素个数)知识点三:多维数组定义多维数组变量时,将每维数放在各自的方括号中,例:下面语句声明了一个名为twoD的二维数组变量int twoD[][] = new int[4][5];该语句分配一个4行5列数组并把它分配给数组twoD当给多维数组分配内存时,只需指定第一个(即最左边)维数的内存即可,可单独地对余下的维数进行内存分配(2)多维数组举例例如,int twoD[][] = new int[4][];在数组twoD被定义时给它的第一个维数分配内存,对第二维则是手工分配内存int t1[][] = new int [][4]; //非法twoD[0] = new int[5]; twoD[1] = new int[5];twoD[2] = new int[5]; twoD[3] = new int[5];(3)Java中多维数组的特殊情况不必须是规则矩阵形式int[][] tt = new int[4][];tt[0] = new int[2]; tt[1] = new int[4];tt[2] = new int[6]; tt[3] = new int[8];知识点四:字符串String类字符串:字符串是由字符组成的序列,用双引号括起来的一个字符序列构成了字符串Java的字符串常量通常是作为String类的对象存在,有专门的属性来规定它的长度。
String 类的定义和实例的生成(三种方式)String str;str=“this is a string”或者str=new String(“this is a string”);或String str1=new String(“hello”);或String str2=“aaaa”;对字符串的操作,两个字符串str1, str2str1 = str2; 指两个引用指向同一个地址str1.equals(str2); 判断两个字符串内容是否相等String aStr="HelloWorld!";String bStr="HelloWorld!";if(aStr.equals(bStr)) // 取值为真if(aStr==bStr) // 取值为真,练习题:1、若已有数组说明“char s[];”,则创建20个字符的数组的语句是。
2、在Java中定义一个字符串类型的变量str的语句是:,定义一个具有10个元素的整型数组a的语句是:。
3、下列程序的输出结果是。
public class Test{public static void main(String[] args) {int a[]={1,2,3,4};for(int i=a.length-1;i>=0;i--)System.out.print(a[i]+" ");}}4、当声明一个数组int arr[] = new int[5]; 时,这代表这个数组所保存的变量类型是,数组名是,数组的大小为,数组元素下标的使用范围是。
5、下列关于数组的定义形式,哪个是正确的?()A.int[ ]c=new char[10]; B.int[ ][3]=new int[2][ ];C.int[ ]a; a=new int; D.char b[ ]; b=new char[80];6、执行String[] s=new String[10];语句后,哪些结论是正确的?()A.s[0] 为未定义 B.s.length 为10C.s[9] 为 null D.s[10] 为 ""7、给出下面代码,关于该程序以下哪个说法是正确的?()public class Person{static int arr[] = new int[5];public static void main(String a[]){System.out.println(arr[0]); }}A、编译时将产生错误B、编译时正确,运行时将产生错误C、输出零D、输出空8、以下程序的输出结果是。
class StringTest{public static void main(String args[]) {String str1 = "JAVA";String str2 = "JAVA";String str3 = new String("JAVA");boolean result1 = str1.equals(str2);boolean result2 = str2.equals(str3);boolean result3 = str1==str2;boolean result4 = str2==str3;System.out.println(result1+","+result2+","+result3+","+result4);}}9、下列程序段执行后的结果是( )。
String s = new String("abcdefg");for (int i=0; i<s.length(); i+=2){System.out.print(s.charAt(i));}A) aceg B) ACEG C) abcdefg D) abcd10、已知如下定义:String s = "story"; 下面哪个语句不是合法的( )A、s += "books";B、s = s + 100;C、int len = s.length;D、String t = s + “abc”;11、下列数组定义及赋值,错误的是()A. int intArray[]=new int[2];B. int intArray=new int[3];intArray[1]=1;intArray[2]=2;intArray[3]=3;C. float b[]={1.2, 2.1, 3.5, 4.3, 5.6};D. int[][] a =new int[2][];a[0]=new int[4];a[1]=new int[23];12、若String s = "hello"; String t = "hello"; char c[] = {'h','e','l','l','o'} ; 则下列哪些表达式返回true?()A.s.equals(t); B.t.equals(new String("hello"));C.t.equals(c); D.s==t;13、下列关于Java语言的数组描述中,错误的是()。
A.数组的长度通常用length表示 B.数组下标从0开始C.数组元素是按顺序存放在内存的 D.数组在赋初值和赋值时都不判界。