JAVA基础-第3章类与对象-练习题-200910

合集下载

Java语言程序设计3-2-java第三章(类与对象)

Java语言程序设计3-2-java第三章(类与对象)
} } class OneRoot{
double a,b; public OneRoot(double a,double b) {
this.a=a; this.b=b; } void Print() {
第3章 类与对象 System.out.println("两个相等实根:"+(-b/(2*a))); }
简单的形式: class 类名{ 类体 }
第3章 类与对象
类体部分定义类的变量和方法。变量描述该类对 象的属性,方法描述对象的行为特征,类似于C语言的 函数。Java语言中没有独立的函数和过程,所有的子 程序都是作为方法定义的。例如,3.2节案例中类 ComplexRoot的方法Print,同样Java语言也没有C语言 中的全局变量。
} public class Equation {
double a,b,c; Equation(double a,double b,double c) {
this.a=a; this.b=b; this.c=c; }
第3章 类与对象
void Solve() { double disc=b*b-4*a*c; if(Math.abs(disc)<1E-6){ OneRoot o=new OneRoot(a,b); o.Print(); } else if(disc>1E-6){ RealRoot r=new RealRoot(a,b,disc); r.Print(); }
第3章 类与对象
Java语言通过类来实现封装,类中定义的属性和 方法分为私有的和公有的,私有属性和方法不能在对 象的外部访问,只能由类内的方法访问。而在对象的 外部,只能访问对象的公有属性和方法,只需要知道 公有属性的数据类型和名字以及公有方法的原型,至 于这些方法是如何实现的对象外部并不需要知道。这 就像人们在使用电视机时只需要通过遥控器来操作即 可,至于电视机内部细节用户则无需知道,这里遥控 器上的按钮实际上就是电视机的外部接口。

java基础练习题带答案.doc

java基础练习题带答案.doc

java基础练习题带答案第1章Java开发入门一、填空题1、Java EE、Java SE、Java ME2、JRE3、javac4、bin5、path> classpath二、选择题1、A BCD、C、D、B、 B三、简答题1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。

2、JRE,它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,10类、GUI控件类、网络类等。

JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。

JDK,它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。

初学者学习和使用Java语言时,首先必须下载和安装JDKo JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRETo四、编程题public class HelloWorld {} public static void main { } System, out. printin;第2章Java编程基础一、填空题1、class2、true 和false3、单行注释、多行注释、文档注释4、基本数据类型、引用数据类型5、1、2、4、86、& && |7、08、9、10、6二、判断题1、错、对、错、对、错三、选择题1、AD、AD、C、ABCD、 C 、A、AC、A、 B 10、A四、程序分析题1、编译不通过。

int值4和b相加时,由于变量b 的类型为byte,取值范围没有int类型大,存不下int 类型的值,因此编译不通过。

2、编译不通过。

这是因为y是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用y = x;语句时已经超过了y变量的作用域,所以编译无法通过。

3、打印结果为:3o4、打印结果为:987五、问答题1、J ava语言的八种基本数据类型有:byte字节型,占一个字节。

java类与对象选择题附加答案解析

java类与对象选择题附加答案解析

Java 类与对象选择题练习附加答案解析1. 以下关于Java类的描述,正确的是:A. 类是对象的实例。

B. 类可以包含属性和方法。

C. 类不能继承其他类。

D. 类只能包含一个方法。

答案: B。

解析:类是对象的蓝图或模板,可以包含属性(成员变量)和方法(成员函数)。

2. 在Java中,要创建一个类的对象,应使用哪个关键字?A. newB. createC. instantiateD. make答案: A。

解析:在Java中,使用`new`关键字来创建类的对象。

3. 在以下关于构造方法的描述中,正确的是:A. 构造方法必须有返回类型。

B. 构造方法的名称必须与类名相同。

C. 构造方法可以是静态的。

D. 构造方法可以重载但不能覆盖。

答案: B。

解析:构造方法的名称必须与类名相同,并且没有返回类型(包括void)。

构造方法可以重载(多个同名但参数不同的方法),但不能覆盖(重写父类方法)。

4. 如果`MyClass`类有一个名为`display`的方法,且`myObject`是`MyClass`类的一个实例,如何调用该方法?A. display();B. MyClass.display();C. myObject.display();D. MyClass::display();答案: C。

解析:通过对象实例`myObject`来调用类的非静态方法`display`。

5. 以下哪个选项是关于`this`关键字的正确描述?A. `this`关键字指向类的超类(父类)。

B. `this`关键字只能在静态方法中使用。

C. `this`关键字引用当前对象的实例。

D. `this`关键字用于创建新的对象。

答案: C。

解析:`this`关键字引用当前对象的实例,可以在类的方法和构造方法中使用来引用当前对象的成员变量或方法。

6. 在Java中,如果类B继承自类A,且类A是基类,则下列哪个选项是正确的?A. 类B是类A的超类。

《类与对象》课后习题(含答案)

《类与对象》课后习题(含答案)

问题一:程序执行结果是
问题二:本程序中,y、z 是 class Test{ public: static int Data; }; int Test::Data=100; //A void main(void) { Test t1,t2; t1.Data=200; t2.Data=300; //B //C
2、写出程序的输出结果。 #include <iostream> #include <cstring> using namespace std; class SomeClass { int One , Two; public: SomeClass(int a = 1, int b = 1) { One = a; Two = b; cout << "Structor" << endl; } SomeClass(SomeClass &obj) { { cout<<NumA<<'\t'<<"is Destructor."<<endl; } }; int main() { MyTestClass Myclass1(5), Myclass2.Print(); return 0; } 程序的运行结果为: Myclass2(Myclass1);
,第二行是
A.show( ); } 15 10 三、程序填空题
B.show( );
1、完成如下的类,在横线中填写合适的内容。 #include <iostream> #include <cstring> using namespace std; enum Esex{mid , man , woman};//枚举请自学 2.7 class Person { int Num; //编号 char Name[12]; //姓名 Esex Sex; //性别 float Weight; //体重 public: Person(int , char * , Esex , float); Person(); ~Person() {} void PrintInfo(); int Workdays(); }; Person::Person( { Num = id; int id ,char *name , Esex s , float w)

java类和对象练习题

java类和对象练习题

1.在如下所示的JAVA代码中,this关键字是指〔B〕.public class Person{private String name;public void setName<String name>{=name;}}<选择一项>〔选择一项〕A> Person类B> Person类自身对象的引用C> setName<>方法的参数nameD> setName<>方法2.以下对于JAVA中构造方法说法正确的是<C>.〔选择一项〕A> 构造方法的名字可以与类名不一致B> 构造方法不能被重载C> 一个类必须包含至少一个构造方法D> 构造方法可以有返回值类型3.以下关于JAVA中的构造方法表述错误的是〔B〕.〔选择一项〕A> 构造方法的名字和类名相同B> 构造方法不能被重载C> 构造方法的作用主要是在创建对象时执行一些初始化操作D> 构造方法没有返回值类型4.以下关于java中的方法重载说法错误的是〔D〕.〔选择一项〕A> 重载的方法其方法名必须相同B> 重载的方法其参数个数或参数类型不同C> 构造方法可以被重载D> 成员方法不可以被重载5.在如下所示的Sample类中,共有〔C〕个构造方法public class Sample{private int x;private Sample<>{x=1;}public void Sample<double f>{this.x=<int>f;}public Sample<String s>{}}〔选择一项〕A> 4B> 3C> 2D> 16.构造方法重载的要素不包括〔B〕〔选择一项〕A> 方法名与类名相同B> 返回值类型不同C> 参数列表不同D> 在同一个类中7.给定如下JAVA代码,编译运行,结果将是<B> public class Sample{public double result<double d1,double d2>{ return d1<d2 ? d1 : d2;}public double result<int d1,double d2>{ return d1<d2 ? d1 : d2;}public double result<int d1,int d2>{ return d1-d2;}private int result<int i>{return i;}public static void main<String [] args>{ Sample s=new Sample<>;System.out.print<s.result<2,3.0>+",">; System.out.print<s.result<4.0,4.5>+",">; System.out.print<s.result<10,9>>;}}〔选择一项〕A> 3.0 , 4.0, 1B> 2.0, 4.0, 1C> 3.0, 4.5, 1D> -1, 4.0, 18.给定如下Java代码,下列〔〕方法可以加入到Sample类中,并且能够编译正确. public class Sample { cpublic int getSomething<int d> {return d;}}〔选择一项〕A> private int getSomething<int i, String s> {}B> public void getSomething<int i> {}C> private int getSomething<int i, String s> { return 20; }D> public double getSomething<> {return "abc"; }9.构成方法重载的要素不包括〔A〕.〔选择一项〕A> 方法名与类名相同B> 参数列表不同C> 在同一类中D> 方法名称相同10.在以下Java程序的方法中,两个方法之间属于方法重载的是〔〕.〔选择二项〕acA> int f1<>{}int f1<int a>{}B> void f1<int a>{}int f1<int a>{}C> void f1<>{}int f1<int a>{}D> int f1<int b>{}int f1<int a>{}11.关于java 中的静态方法,以下说法中正确的是〔AC〕〔选择二项〕A> 静态方法中不能直接调用非静态方法B> 非静态方法不能直接调用静态方法C> 静态方法可以用类名直接调用D> 静态方法里可以使用this12.以下代码输出结果为〔C〕.public class Animal {int age = 9;public Animal<int age> {this.age = age;}public static void main<String[] args> {Animal animal =new Animal<>;System.out.println<animal.age>;}}〔选择一项〕A> 9B> 0C> 编译出错D> null13.编译运行如下java代码,输出结果是〔A〕class Person{String name = "person";public void shout<>{System.out.print<name>;}}class Student extends Person{String name = "student";String school = "school";}public class Test{public static void main<String[] args>{ Person p = new Student<>;p.shout<>;}}〔选择一项〕A> personB> studentC> person studentD> 编译错误14.编译运行如下java代码,输出结果是〔D〕//父类引用不能访问子类特有的属性class Base{public void method<>{System.out.print<"Base method">;}}class Child extends Base{public void methodB<>{System.out.print<"Child methodB">;}}class Sample{public static void main<String[] args>{Base base = new Child<>;base.methodB<>;}}〔选择一项〕A> Base methodB> Child methodBC> Base method Child methodBD> 编译错误15.下列选项中关于java中this关键字的说法错误的是<B>〔选择一项〕A> this关键字是在对象内部指代对象自身的引用B> this关键字可以在类中的任何位置使用C> this只和特定的对象关联,而不是和类关联D> 同一个类的不同对象有不同的this。

第3章 类与对象习题 参考答案

第3章 类与对象习题 参考答案

第3章类与对象习题参考答案一、选择题(共30分,每题1分)二、填空题(共18分,每题1分)1. 不能2. 将对象A复制给对象B3. (1) public (2) 成员函数4. 实例5. 复制(拷贝)6. 类(test )~test()7. 对象类8. 重载返回值参数9.默认(无参)10. ->11. 构造函数12.函数返回类型类名::成员函数名(参数表);13. 常对象14. 对象名15. 析构函数三、改错题(共12分,每题2分)1. void Point(int a)------------Point(int a)cout<<A.Show();----------- A.Show();2. 答案:int i, int j-----------int i, int j=0 //注:只要有一个int类型的数据就行。

分析:调用时,既有一个参数,也有两个参数,且没有重载,所以参数需要带默认值。

3. 答案:swap(&a,&b); ------------swap(a, b);分析函数的形参是变量的引用,调用时的实参应该是地址。

4. #include<iostream.h>class one{ int a1,a2;public:one(int x1=0, int x2=0) //修改1:构造函数的函数体没有{a1=x1;a2=x2;}show() //修改2 定义成员函数{cout<<a1<<endl;cout<<a2<<endl;}};void main(){ one data(2,3);data.show(); //修改3:用对象调用成员函数}5. ABC(int aa)a(aa){} ------------ABC(int aa):a(aa){}分析:构造函数的初始化列表格式错误。

6. 答案:cout<<t1.getmin()<<endl; -----------cout<<t1.GetMin()<<endl;分析:采用默认的访问权限即私有的,在外部无法访问。

JAVA基础-第3章类与对象-练习题-200910

JAVA基础-第3章类与对象-练习题-200910

JAVA基础-第3章类与对象-练习题-200910第3章类与对象一.选择题1.下列不属于面向对象编程的特性是(D)。

A.封装性 B. 继承性 C. 多态性 D. 编译执行2.下列类的声明中不合法的是(C)。

A. class People{…}B. class 植物{…}C. Class A{…}D. public class 共有类{…3.下列方法的声明中不合法的是(C)。

A. float area(){…}B. void area(){…}C. double area(d){…}D. int area(int r){…}4. 下列构造方法(构造器)的调用中正确的是(C)。

A. 按照一般的方法调用B. 由用户直接调用C. 只能通过new自动调用D. 被系统调用5.下列程序运行的结果是(A)。

class Book{int width;int length;}public class A{static void f(Book p){p.width=20;p.length=40;}public static void main(String args[]){ Book b=new Book();b.width=10;b.length=20;f(b);System.out.print(" "+b.width); System.out.print(" "+b.length);}}A. 20 40B. 10 40C. 10 20D. 以上都不对6.下列程序运行的结果是(D)。

public class A{static void f(int y){y=y+10;}public static void main(String args[]){ double x=10;f(x);System.out.println(x);}}A. 10B. 20C. 10.0D. 程序编译错误7.下列程序运行的结果是(C)。

java类和对象练习题

java类和对象练习题

1.在如下所示的JAVA代码中,this关键字是指(B)。

public class Person{private String name;public void setName(String name){=name;}}(选择一项)(选择一项)A) Person类B) Person类自身对象的引用C) setName()方法的参数nameD) setName()方法2.以下对于JAVA中构造方法说法正确的是(C).(选择一项)A) 构造方法的名字可以与类名不一致B) 构造方法不能被重载C) 一个类必须包含至少一个构造方法D) 构造方法可以有返回值类型3.以下关于JAVA中的构造方法表述错误的是(B)。

(选择一项)A) 构造方法的名字和类名相同B) 构造方法不能被重载C) 构造方法的作用主要是在创建对象时执行一些初始化操作D) 构造方法没有返回值类型4.以下关于java中的方法重载说法错误的是(D)。

(选择一项)A) 重载的方法其方法名必须相同B) 重载的方法其参数个数或参数类型不同C) 构造方法可以被重载D) 成员方法不可以被重载5.在如下所示的Sample类中,共有( C)个构造方法public class Sample{private int x;private Sample(){x=1;}public void Sample(double f){this.x=(int)f;}public Sample(String s){}(选择一项)A) 4B) 3C) 2D) 16.构造方法重载的要素不包括(B)(选择一项)A) 方法名与类名相同B) 返回值类型不同C) 参数列表不同D) 在同一个类中7.给定如下JAVA代码,编译运行,结果将是(B)public class Sample{public double result(double d1,double d2){return d1<d2 ? d1 : d2;}public double result(int d1,double d2){return d1<d2 ? d1 : d2;}public double result(int d1,int d2){return d1-d2;}private int result(int i){return i;}public static void main(String [] args){Sample s=new Sample();System.out.print(s.result(2,3.0)+",");System.out.print(s.result(4.0,4.5)+",");System.out.print(s.result(10,9));}}(选择一项)A) 3.0 , 4.0, 1B) 2.0, 4.0, 1C) 3.0, 4.5, 1D) -1, 4.0, 18.给定如下Java代码,下列()方法可以加入到Sample类中,并且能够编译正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章类与对象一.选择题1.下列不属于面向对象编程的特性是(D)。

A.封装性 B. 继承性 C. 多态性 D. 编译执行2.下列类的声明中不合法的是(C)。

A. class People{…}B. class 植物{…}C. Class A{…}D. public class 共有类{…3.下列方法的声明中不合法的是(C)。

A. float area(){…}B. void area(){…}C. double area(d){…}D. int area(int r){…}4. 下列构造方法(构造器)的调用中正确的是(C)。

A. 按照一般的方法调用B. 由用户直接调用C. 只能通过new自动调用D. 被系统调用5.下列程序运行的结果是(A)。

class Book{int width;int length;}public class A{static void f(Book p){p.width=20;p.length=40;}public static void main(String args[]){Book b=new Book();b.width=10;b.length=20;f(b);System.out.print(" "+b.width);System.out.print(" "+b.length);}}A. 20 40B. 10 40C. 10 20D. 以上都不对6.下列程序运行的结果是(D)。

public class A{static void f(int y){y=y+10;}public static void main(String args[]){double x=10;f(x);System.out.println(x);}}A. 10B. 20C. 10.0D. 程序编译错误7.下列程序运行的结果是(C)。

public class A{int z=20;static void f(int y){y=z;System.out.println(y);}public static void main(String args[]){f(10);}}A. 10B. 20C. 程序编译错误D. 以上都不对8. 以下代码的输出结果为(C)。

public class Pass{static int j=20;public static void main(String args[]){int i=10;Pass p = new Pass();p.amethod(i);System.out.println(i+" and "+j);}public void amethod(int x){x=x*2;j=j*2;}}A.错误: 方法参数与变量不匹配B. 20 and 40C. 10 and 40D. 10 and 209. 编译和运行程序会出现什么样的结果(A)。

public class Ref{public static void main(String args[]){Ref r = new Ref();r.amethod(r);}public void amethod(Ref r){int i=99;multi(r);System.out.println(i);}public void multi(Ref r){r.i = r.i * 2;}}A.编译出错 B. 输出:99 C. 输出:198 D. 运行出错10. 关于以下程序代码的说明正确的是(D)。

1.class HasStatic{2. static int x=100; int y=0;3. public static void main(String args[]){4. HasStatic hs1=new HasStatic();5. hs1.x++;6. HasStatic hs2=new HasStatic();7. hs2.x++;8. hs1=new HasStatic();9. hs1.x++;10. HasStatic.x- -;11. System.out.println("x="+x);12. }13.}A.5行不能通过编译,因为引用了私有静态变量B.10行不能通过编译,因为x是私有静态变量C.程序通过编译,输出结果为:x=103D.程序通过编译,输出结果为:x=10211. 有如下代码:public class Test {void printValue(int m){do {System.out.println("The value is"+m);}while( --m > 10 );}public static void main(String arg[]) {int i=10;Test t= new Test();t.printValue(i);}}其输出结果是什么(C)。

A. The value is 8B. The value is 9C. The value is 10D. The value is 1112. 以下代码的调试结果为(D)。

1. public class Q212. {3. int maxElements;4.5. void Q21()6. {7. maxElements = 100;8. System.out.println(maxElements);9. }10.11. Q21(int i)12. {13. maxElements = i;14. System.out.println(maxElements);15. }16.17. public static void main(String[] args)18. {19. Q21 a = new Q21();20. Q21 b = new Q21(999);21. }22. }A. 输出 100 和 999B.输出 999 和 100C.第3行出现编译错误, 变量 maxElements 未初始化D. 第19行出现编译错误13. 给出如下类定义:public class test {test(int k) {…}}如果要创建一个该类的对象,正确的语句是(B)。

A. test obj1=new test(); B. test obj1=new test(5);C. test obj1=new test("5 "); D. test obj1=new test(3.4);14. 指出下列哪个方法不能与方法public void add(int a){…}重载(A)。

A. public int add(int b)B. public void add(double b)C. public void add(int a, int b)D. public void add(float g)15.下面程序的输出结果是什么(C)。

class J_Test{int m_i = 2;String m_s = null;J_Test(){m_i = 3;m_s = "constructor";}public static void main(String args[]){J_Test app = new J_Test();System.out.println(app.m_i+app.m_s);}}A. 2nullB. 3nullC. 3constructorD. 以上都不对16. 下面程序的输出结果是什么(A)。

class J_Test{int m_i = 2;String m_s = null;void J_Test(){m_i = 3;m_s = "constructor";}public static void main(String args[]){J_Test app = new J_Test();System.out.println(app.m_i+app.m_s);}}A. 2nullB. 3nullC. 3constructorD. 以上都不对17.下列代码的运行结果是(D)。

public class J_Test{static short m_index;static int m_age;public static void mb_setData(long n){m_index = n;}public static void main(String args[]){mb_setData(98);System.out.println("Index=" + m_index + ";Age="+m_age);}}A. Index = 98 ;Age=0B. Index = 0 ;Age=0C. Index = 0;Age=98D. 以上都不对18.下列程序的运行结果为(B)。

public class J_Test{static char m_name;static int m_age;public static void mb_setData(char n){m_name = n;}public static void mb_setData(int n){m_age = n;}public static void main(String args[]){mb_setData((int)’a’);mb_setData((char)98);System.out.println("Name=" + m_name + ";Age="+m_age);}}A.Name=98;Age=97 B. Name=b;Age=97C. Name=97;Age=BD. 以上都不对19. 程序的运行结果为(A)。

public class J_Test{static short m_index;static int m_age;public static void mb_setData(short n){m_index = n;}public static void mb_setData(int n){m_age = n;}public static void main(String args[]){mb_setData(98);System.out.println("Index=" + m_index + ";Age="+m_age);}}A. Index=0;Age=98B. Index=98;Age=0C. Index=0;Age=0D. 以上都不对二.编程题(温馨提示:编程时尽量不要使用中文标识符。

相关文档
最新文档