Ch4类和对象练习题之简答题.docx

上传人:大米 文档编号:548489742 上传时间:2023-09-30 格式:DOCX 页数:13 大小:18.91KB
返回 下载 相关 举报
Ch4类和对象练习题之简答题.docx_第1页
第1页 / 共13页
Ch4类和对象练习题之简答题.docx_第2页
第2页 / 共13页
Ch4类和对象练习题之简答题.docx_第3页
第3页 / 共13页
Ch4类和对象练习题之简答题.docx_第4页
第4页 / 共13页
Ch4类和对象练习题之简答题.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《Ch4类和对象练习题之简答题.docx》由会员分享,可在线阅读,更多相关《Ch4类和对象练习题之简答题.docx(13页珍藏版)》请在金锄头文库上搜索。

1、Ch4类和对象练习题之方法一 简答题1、 如果在一个返回值的方法中,不写return语句会发生什么错误?在返回值类型为void的方法中可以有return语句吗?下面的方法中的return语句是否会导致语法错误?public static void xMethod(double x,double y)System.out.println(x+y);return x+y;如果在一个返回值的方法中,不写return语句会发生无效的数据操作错误。在返回值类型为void的方法中可以有return语句。会导致语法错误。2、 什么是值传递?给出下面程序运行的结果,分别给出调用max之前、刚进入max方法、m

2、ax方法刚要返回之前以及max方法返回之后堆栈的内容。public class Testpublic statci void main(String args)int max=0;max(1,2,max);System.out.println(max);public static void max(int value1,int value2,int max)if(value1value2)max=value1;elsemax=value2;值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。结果是0.调用max之前是0,刚进入max方法是

3、2,max方法刚要返回之前是2,max返回之后是0.3、 描述传递基本类型参数和传递引用类型参数的区别,给出下面程序的输出。public class Test public static void main(String args)Count myCount=new Count();int times=0;for(int i=0;i100;i+)increment(myCount,times);System.out.println(“count is”+myCount.count);System.out.println(“times is”+times);public static void

4、increment(Count c,int times)c.count+;times+;public class Count public int count; public Count(int c) count=c;public Count()count=1;基本类型是值传递,引用类型是引用传递.值传递不改变原来的值,引用传递会改变原来的值结果是count is101 times is04、 假设TestClass类的定义如下publi class TestClass int i; static String s; void method1() static void method2()t是

5、TestClass的一个实例,下列哪些语句是正确的?System.out.println(t.i);对System.out.println(t.s);对t.method1();对t.method2();对System.out.println(TestClass.i);错System.out.println(TestClass.s);对TestClass.method1();错TestClass.method2();对正确的是System.out.println(t.i);System.out.println(t.s);t.method1();t.method2();System.out.pri

6、ntln(TestClass.s);TestClass.method2();5、 能否从静态方法中调用实例方法或引用一个实例变量?能否从实例方法中调用静态方法或引用一个静态变量?下面代码错误在哪里?public class Test public static void main(String args)method1();public void method1()method2();Public static void method2()System.out.println(“what is radius”+c.getRadius();Circle c=new Circle();不能从静态方

7、法中调用实例方法或引用一个实例变量,能从实例方法中调用静态方法或引用一个静态变量。错在静态主函数方法不能访问非静态方法method1()。6、 在下面代码中,Circle类中的radius是私有的,而myCircle是Circle类的一个对象,下面强调的代码会导致什么问题吗?解释为什么?public class Circleprivat double radius=1.0;public double getArea()return radius*radius*Math.PI;public static void main(String args)Circle myCircle=new Circ

8、le();System.out.println(“Radius is”+myCircle.radius);Circle类的所以对象里radius都是1.0,因为在Circle类中radius是私有的。7、 描述this关键字的作用,下面代码有什么错误?public class Testprivate int p;public Test()System.out.println(“Tests no-rgs constructor invoked”);this(0);public Test(int p)p=p;public void setP(int p)p=p;This是java中使用的一个有特定

9、意义的引用,它指向当前对象自身。this(0)是错误的,this是一个指向当前对象自身的引用,不是方法。8、 运行下面的程序输出结果是什么?class Apublic A()System.out.println(“As no-arg constructor is invoked”);class B extends Apublic class C public static void main(String args) B b=new B();As no-arg constructor is invoked下面的程序在编译时会出现什么问题?class Apublic A(int x)class

10、B extends Apublic B()public class C public static void main(String args) B b=new B();父类当中是有参构造函数,而子类是无参,出错9、 给出下面程序的输出结果,当调用new A(3)时,会调用Object的无参构造方法吗? public class Testpublic static void main(String args) A a=new A(3); class A extends B public A(int t)System.out.println(“As constructor is invoked”

11、);class B public B()System.out.println(“Bs constructor is invoked”); Bs constructor is invoked As constructor is invoked会10、 下面代码中A类和B类在同一个包中,如果问号分别被空白代替、private代替、protected代替,B类能编译吗?package p1;public classBextends Apublic void m1(String args)System.out.println(i);m();package p1;public class A ? int

12、 i; ? void m().被空白代替B能编译被private代替B不能编译被protected代替B能编译11、 下面代码中A类和B类不在同一个包中,如果问号分别被空白代替、private代替、protected代替,B类能编译吗?package p2;public classBextends Apublic void m1(String args)System.out.println(i);m();package p1;public class A ? int i; ? void m().被空白代替B不能编译被private代替B不能编译被protected代替B不能编译12、 为什么下

13、面四行代码可以编译,但会导致运行时错误?(1) Number numberRef=new Integer(0);(2) Double doubleRef=(Double)numberRef;(3) Number numberArray=new Integer2;(4) numberArray=new Double(1.5);(1)(2)因为Integer和Double不是基本数据类型。强制转换只能转换包含继承关系的类或基本类型数据。(3)(4)因为整数数组里不能放入非整数13、 下面抽象类和接口的定义中,哪些是合法的?class A abstract void unfinished() (1) public class abstract A abstract void unfinished();(2)class A abstract void unfinished();(3) abstract class A protected void unfinished();(4)abstract class A abstract void unfinished();(5)abstract class A protected int unfinished();(6)interface A void print() ;(7)abstrace interface A ext

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号