public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
有错吗?
第1题:
下面这个程序的结果是 #include<iostream.h> class A { private: int a; public: void seta();int geta();}; void A∷seta() {a=1;} int A∷geta() {return a;} class B { pnvate: int a; publiC: void sera();int geta();}; void B∷seta() {a = 2;} int B∷geta() {return a;} class C:public A,public B { private: int b; public: void display();}; void C∷display() { int b=geta(); cout<<b;} void main() { C c; c.seta(); c.display();}
A.1
B.2
C.随机输出1或2
D.程序有错
第2题:
下面程序的执行结果为 ‘ #include"iostream" using namespace std; class A { int a; public: void Sera(int x){a=x;} void Display_a(){cout<<a<<endl;} }; class B { int b; public: void Setb(int x){ b=x;} void Dispaly_b() {cout<<b<<endl;} }; class C:public A,private B { private: int c; public: void Setc(int x,int y,int z) { c=z;Sera(x);Serb(y);} void Display_c(){cout<<c<<endl;} }; ① void main() ② { ③ C cc; ④ cc.Seta(1); ⑤ cc.Display_a(); ⑥ cc.Setc(2,2,3); ⑦ cc.Dispaly_b(); ⑧ cc.Display_c(); }
A.输出为2 2 3
B.有错误在第5行
C.输出为1 2 3
D.有错误在第7行
第3题:
下列选项中的 方法可以正确地加入类Child中,且父类的方法不会被覆盖。 public class Parent{ public int addValue(int a,int b){ int s; s=a+b; return s; } } class Child extends Parent{ }
A.int addValue(int a,int b){∥do something…}
B.public void addValue( ){∥do something…}
C.public int addValue(int a,int b)throws MyException{∥do something…}
D.public float addValue(int a,int b,float b=1.0){∥do something…}
第4题:
abstract class Something {
private abstract String doSomething ();
}
这好像没什么错吧?
错。abstract 的methods 不能以private 修饰。abstract 的methods 就是让子类implement(实
现)具体细节的,怎么可以用private 把abstract
method 封锁起来呢? (同理,abstract method 前不能加final)。
第5题:
下列程序段运行的结果为 public class Test{ static void print(String s,int i){ System.out.println("String:"+s+",int:"+i); } static void print(int i, String s){ System.out.println("int:"+i+",String:"+s); } public static void main(String [] args){ print(99,"Int first"); } }
A.String:Stringfirst,int:11
B.int:11,String:Int first
C.String:String first,int:99
D.int:99,String:int first
第6题:
下面这个程序的结果是
#include<iostream.h>
class A
{
private:
int a;
public:
void seta( ) ;int geta( ) ;};
void A: :seta( )
{ a=1;}
int A: :geta( )
{ retum a;}
class B
{ private:
int a;
public:
void seta( ) ;int geta( ) ;};
void B: :seta( )
{a=2;}
int B: :geta( )
{return a;}
class C: public A,public B
{ private:
int b;
public:
void display( ) ;};
void C: :display( )
{ int b=geta( ) ;
cout < < b;}
void main( )
{ C c;
c. seta( ) ;
c. display( ) ;}
A.1
B.2
C.随机输出1或2
D.程序有错
第7题:
下面这个程序的结果是 #include<iostream.h> class A { private: int a; public: void seta( );int geta( );}; void A::seta( ) { a = 1;} int A::geta( ) {return a;} class
A.1
B.2
C.随机输出1或2
D.程序有错
第8题:
下列程序段运行的结果为 public class Test{ static void print(String s,int i){ System.out.println("String:"+s+",int:"+i); } static void print(int i,String s){ System.out.println("int:"+i+",String:"+s); } public static void main(String[]args){ print(99,"Int first"); } }
A.String:String first,int:11
B.int:11,String:Int first
C.String:String first,int99
D.int:99,String:Int first
第9题:
请在每条横线处填写一个语句,使程序的功能完整,且输出结果为91 1。
注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。
源程序文件代码清单如下:
public class Outer
{
public static void main (String args[]
{
Outer i = new Outer();
i,taskInner();
}
public class Inner
{
private int size;
public void doSomething(int size)
{
_____________//访问局部变量
this. size++; //访问内部类的成员变量
_____________//访问外部类的成员变量
System.out.println(size+" "+this.size+" "+Outer.this.size);
}
}
public void taskInner()
{
___________
k.doSomething(8);
}
private static int size;
}
第10题:
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
和上面的很相似,都是关于final 的问题,这有错吗?
正确。在addOne method 中,参数o 被修饰成final。如果在addOne method 里我们修
改了o 的reference
(比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o 的member vairable
(成员变量),而o 的reference 并没有改变。