10.写一个类,该类有一个方法public int f(int a,int b),该方法返回a和b的最大公约数。然后再编写一个该类的子类,要求子类重写方法f,而且重写的方法将返回a和b的最小公倍数;要求在重写的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将乘积(a*b)/m返回;要求在应用的程序的主类中分别使用父类和子类创建对象,并分别调用方法f计算两个正整数的最大公约数和最小公倍数。
class A { public int f(int a, int b) { if (b < a) { int temp = 0; temp = a; a = b; b = temp; } int r = b % a; while (r != 0) { b = a; a = r; r = b % a; } return a; } } class B extends A { public int f(int a, int b) { int division = super.f(a, b); return (a * b) / division; } } public class Xiti9 { public static void main(String args[]) { A a = new A(); B b = new B(); System.out.println(\最大公约数 :\ System.out.println(\最小公倍数 :\ } }
第6章内部类与异常类练习题
一、填空题
1、Throwable类有两个子类,分别是Error和Exception.
2、所有异常的根类是Throwable类,throw关键字的作用是引发异常。 3、try关键字负责定义处理异常的程序,再来由catch关键字来捕获异常。 4、补足代码;调用两个函数,要求用匿名内部类
interface Inter {
void show(int a,int b); void func(); }
class Demo {
public static void main(String[] args) { Inter in=new Inter(){
Void show(int a,int b){} Void func(){}}; in.show(4,5); in.func(); } }
5.、下面程序的输出结果是:BCD
class Demo {
public static void func() throws Exception { try{
throw new Exception(); }
finally{
System.out.println(\); } }
public static void main(String[] args){ try{
func();
System.out.println(\); }
catch(Exception e){
System.out.println(\); }
System.out.println(\); } }
6.在java中所有的异常类都继承自java.lang.Throwable类,它有两个直接子类,一个是Error类,另一个是Exception类。
7、Java语言中,可以用throw语句和throws语句抛出异常,其中throws语句的作用是用来改变程序的执行流程,使程序跳到相应的异常处理语句中执行。throw语句把异常向上移交给调用这个方法的方法来处理。
8.下述代码执行后的结果是ACD class X {
public static void main(String [] args) { try {
badMethod();
System.out.print(\); }
catch (Exception ex) { System.out.print(\); }
finally {
System.out.print(\); }
System.out.print(\); }
public static void badMethod() {} }
单选题:
1、下面选项中,C不能用在throw语句中? A. Error B. RuntimeException
C. Object D. Throwable E. Exception
第9章String类练习题答案
一、填空
1、程序执行后的显示结果是abcdefabcDEF。
public class Question {
public static void main (String args[]) { String s1 = \;
String s2 = \;
String s3 = s1.concat(s2.toUpperCase()); System.out.println(s1+s2+s3); } } 2.
String s1 = \; String s2 = \; System.out.print(\\ + (( s1== s2)? \ : \) + \s2\); 这个代码段显示的结果是s1 != s2?
3.下面程序段输出结果的第一行是rtrme,第二行是r。 String s=\; String s2=s.substring(7);
String s3=s2.replace('m','u'); System.out.println(s2);
System.out.println(s3.charAt(2));
System.out.println(s3.toUpperCase()); 第三行输出结果为 RTRUE。
4.第5行的时候foo的值是baseball String foo = \; foo.substring(0,3);
foo.concat(\);//是返回 foo + \但foo本身的值并不必变, foo+=\;//改成foo = foo.concat(\结果就是baseketball了System.out.println(foo);
5、如下这段代码执行后,字符串s的值是hellothere String s=\;
s.concat(\);
s.toUpperCase(); s+=\;
System.out.println(s);
6.下面这段程序执行后,屏幕上显示的是:true。 public class Exam{
public static void main(String[] args){ char char1[]={'t','e','s','t'};
char char2[]={'t','e','s','t','1'}; String s1=new String(char1);
String s2=new String(char2,0,4);//提取字符数组char2[],从索引 0开始,提取个数为4个。
System.out.println(s1.equals(s2));//s1与s2中的实体(即内容)是