第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/5/28 22:32:31 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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方法、

max方法刚要返回之前以及max方法返回之后堆栈的内容。 public class Test{

public 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(value1>value2) max=value1; else

max=value2; } }

值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

结果是0.调用max之前是0,刚进入max方法是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;i<100;i++)

increment(myCount,times);

System.out.println(“count is”+myCount.count); System.out.println(“times is”+times); }

public static void 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 is0

4、 假设TestClass类的定义如下

publi class TestClass{

int i;

static String s; void method1(){ }

static void method2(){

}

t是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.println(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(); }

不能从静态方法中调用实例方法或引用一个实例变量,能从实例方法中调用静态方法或引用一个静态变量。错在静态主函数方法不能访问非静态方法method1()。

6、 在下面代码中,Circle类中的radius是私有的,而myCircle是Circle类的一个对象,下面

强调的代码会导致什么问题吗?解释为什么?

public class Circle{ privat double radius=1.0; public double getArea(){ return radius*radius*Math.PI; }

public static void main(String[] args){ Circle myCircle=new Circle();

System.out.println(“Radius is”+myCircle.radius); } }

Circle类的所以对象里radius都是1.0,因为在Circle类中radius是私有的。 7、 描述this关键字的作用,下面代码有什么错误?

public class Test{ private int p; public Test(){

System.out.println(“Test’s no-rgs constructor invoked”); this(0); }

public Test(int p){ p=p; }

public void setP(int p){ p=p; } }

This是java中使用的一个有特定意义的引用,它指向当前对象自身。 this(0)是错误的,this是一个指向当前对象自身的引用,不是方法。 8、 运行下面的程序输出结果是什么?

class A{

public A(){

System.out.println(“A’s no-arg constructor is invoked”); }

}

class B extends A{ }

public class C{

public static void main(String[] args){ B b=new B(); } }

A’s no-arg constructor is invoked

下面的程序在编译时会出现什么问题?

class A{

public A(int x){ } }

class B extends A{ public B(){ }

}

public class C{

public static void main(String[] args){ B b=new B(); } }

父类当中是有参构造函数,而子类是无参,出错

9、 给出下面程序的输出结果,当调用new A(3)时,会调用Object的无参构造方法吗?

public class Test{

public static void main(String[] args){ A a=new A(3);

} }

class A extends B{ public A(int t){

System.out.println(“A’s constructor is invoked”); } }

class B{

public B(){

System.out.println(“B’s constructor is invoked”); } }

B’s constructor is invoked A’s constructor is invoked 会 10、

下面代码中A类和B类在同一个包中,如果问号分别被空白代替、private代替、

protected代替,B类能编译吗?

package p1; public class A{ ? int i; ? void m(){ ....................... } package p1; public classBextends A{ public void m1(String[] args){ System.out.println(i); m(); }

搜索更多关于: Ch4类和对象练习题之简答题 的文档
Ch4类和对象练习题之简答题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1qsqy4jj6h4yj374r8rt_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top