public class Something {void doSomething () {private String s = "";int l = s.length();}}有错吗?

题目

public class Something {

void doSomething () {

private String s = "";

int l = s.length();

}

}

有错吗?

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面这个程序的结果是includeclass A{private:int a;public:void seta();int geta(

下面这个程序的结果是 #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.程序有错


正确答案:D
解析:在类A中有geta()函数,在类B中也有geta()函数,类C继承了类A和类B,这样就产生了二义性,所以程序会出错。

第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行


正确答案:D
解析:private继承不能调用Display_b函数,public继承可以调用基类中非private成员。注意:类的继承方式public,proctected和private的区别。

第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…}


正确答案:B
解析: 选项A的错误就是重写的访问权限比被重写的方法的权限低,而B属于重载,选项 C的错误在于比被重写的方法抛弃了更多种类的异常。选项D中,当只传递两个变量的值时,系统不知道到底调用哪一个方法,因为b为常量,可以不指定,所以只有选项B符合题意。

第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


正确答案:D
解析:本题考查考生阅读程序的能力。JavaApplication都是以main()方法作为入口,首先执行的是print(99,“Intfirst”),根据构造方法的参数类型选择调用方法,这里调用的是print(inti,Strings)方法,因此输出的是int:99,String:Intfirst。

第6题:

下面这个程序的结果是 include class A { private: int a; public: void seta( ) ;

下面这个程序的结果是

#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.程序有错


正确答案:D
解析:在类A中有geta( ) 函数,在类B中也有geta( ) 函数,类C继承了类A和类B,这样就产生了二义性,所以程序会出错。

第7题:

下面这个程序的结果是includeclass A{private:int a;public:void seta( );int geta

下面这个程序的结果是 #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.程序有错


正确答案:D
解析:在类A中有geta()函数,在类B中也有geta()函数,类C继承了类A和类B,这样就产生了二义性,所以程序会出错。

第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


正确答案:D
解析:本题考查考生阅读程序的能力。JavaApplication都是以main()方法作为入口,首先执行的是print(99,"Int first"),根据构造方法的参数类型选择调用方法,这里调用的是print(int i,String s)方法,因此输出的是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;

}


正确答案:size++; Outer.this.size++: Inner k=new Inner();
size++; Outer.this.size++: Inner k=new Inner(); 解析:本题主要考查内部类的概念,super,this关键字的用法。解答本题的关键是熟练掌握super, this关键字的用法。在本题中size++;语句是访问局部变量size,Outer.this.size++;语句的功能是访问外部类的成员变量size,InnerK=new Inner();语句的功能是生成内部类Inner的对象K。

第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 并没有改变。

更多相关问题