-
Ch4
类和对象练习题之方法
一
简答题
1
、
如果在一个返回值的方法中,不写
return
语句 会发生什么错误?在返回值类型为
void
的方法中可以有
return
语句 吗?下面的方法中的
return
语句是否会导致语法错误?
public static void xMethod(double x,double y){
n(x+y);
return x+y;}
(1)
没有返回值
(2)
不可以
(3)
会
2
、
什么是值传递?给出下面程序运行的结果
,
分别给出调用
max
之前 、刚进入
max
方法、
max
方法刚要返回之前以及
max
方法返回之后堆栈的内容。
public class Test{
public statci void main(String[] args){
int max=0;
max(1,2,max);
n(max);
}
public static void max(int value1,int value2,int max){
if(value1>value2)
max=value1;
else
max=value2;
}
}
(1)
值传递是指在调用函数时 将实际参数复制一份传递到函数中,
这样在函数中如果对参
数进行修改,将不会影响到实际参数 。
(2)
空,
max=0,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);
S
n(“count is”+);
n(“times
is”+times);
}
public static void increment(Count c,int times){
++;
times++;
}
}
public
class Count{
public int count;
public Count(int c){
count=c;
}
public Count(){
count=1;
}
}
(1)
基本类型是值传递
(2)
引用类型是引用传递。
(3)
值传递不会改变原来的值,引用传递会改变原来的值。
(4)
count is101
times is0
4
、
假设
TestClass
类的定义如下
public class TestClass{
int i;
static String s;
void method1(){
}
static void method2(){
}
t
是
TestClass
的一个实例,下列哪些语句是正确的?
n(t.i);
T
n(t.s);
T
1();
T
2();
T
n(TestClass.i);
F
n(TestClass.i);
F
1();
T
2();
T
5
、
能否从静态 方法中调用实例方法或引用一个实例变量?能否从实例方法中调用静态方
法或引用一个静态变量?下面代 码错误在哪里?
public class Test{
public static void main(String[] args){
method1();
}
public void method1(){
method2();
}
Public static void method2(){
n(“what is radius”+ius());
}
Circle c=new Circle();
}
(1)
可以
(2)
不可以
(3)Method 1
必需为
static
,
c
必需为
static
, 无
Circle
类
6
、
在下面代码中,
Circle
类中的
radius
是私有的,而
myCircle
是
Circle
类的一个对象,
下面
强调的代码会导致什么问题吗?解释为什 么?
public class
Circle{
privat double
radius=1.0;
public double
getArea(){
return
radius*radius*;
}
public static void
main(String[] args){
Circle myCircle=
new
Circle();
n(“
Radius is
”+);
}
}
myCircle
不能访问
radius
7
、
描述
this
关键字的作用,下面代码有什么错误?
public class Test{
private int p;
public Test(){
n(“Test’s no
-
rgs constructor invoked”
);
this(0);
}
public Test(int p){
p=p;
}
public void setP(int p){
p=p;
}
}
(1)
表示当前对象
(2)
构造函数必须在第一行,不能在输出函数下面
8
、
运行下面的程序输出结果是什么?
class A{
public A(){
n(“A’s no
-
arg constructor is invoked”);
}
}
class B extends A{
}
public
class C{
public static void main(String[] args){
B b=new B();
}
}
(1)
Radius is1.0
下面的程序在编译时会出现什么问题?
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();
}
}
A
中没有无参构造函数,是
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){
n(“A’s constructor is invoked”);
}
}
class B{
public B(){
Syste
n(“B’s constructor is invoked”);
}
}
(1)
B’s constructor is invoked
A’s constructor is invoked
(2)
不会
10
、
下面代码中
A
类和
B
类在同一个包中,如果问号分别被空白代替、
p rivate
代替、
protected
代替,
B
类能编译吗?
package p1;
package p1;
public classBextends A{
public class A{
?
int i;
public void m1(String[] args){
?
void m(){
n(i);
.......................
m();
}
}
}
}
-
-
-
-
-
-
-
-
本文更新与1970-01-01 08:00,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/553229.html
-
上一篇:没有了
下一篇:没有了