JAVA基础 第3章练习_类与对象_2012
- 格式:doc
- 大小:61.00 KB
- 文档页数:6
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的超类。
java基础类和对象-题1、创建⼀个三⾓形类,成员变量三边,⽅法求周长,创建类主类A来测试它。
public class Sanjiaoxing {//定义属性private int a;private int b;private int c;//getter、setter⽅法public int getA() {return a;}public void setA(int a) {this.a = a;}public int getB() {return b;}public void setB(int b) {this.b = b;}public int getC() {return c;}public void setC(int c) {this.c = c;}//成员⽅法public int Zhouchang(int a,int b,int c){return a+b+c;}}测试:public class TestSanjiaoxing {public static void main(String[] args) {// TODO ⾃动⽣成的⽅法存根Sanjiaoxing a=new Sanjiaoxing();System.out.println("边长为3,4,5的三⾓形的周长是:"+a.Zhouchang(3, 4, 5));}}2、按要求编写Java应⽤程序。
(1)创建⼀个叫做People的类:属性:姓名、年龄、性别、⾝⾼⾏为:说话、计算加法、改名编写能为所有属性赋值的构造⽅法;(2)创建主类:创建⼀个对象:名叫“张三”,性别“男”,年龄18岁,⾝⾼1.80;让该对象调⽤成员⽅法:说出“你好!”计算23+45的值将名字改为“李四”public class People {private String name;private int age;private String sex;private double height;public void shuohua(){System.out.println(name+"说"+"你好!");}People(){}People(String name,int age,String sex,double height){setName(name);setAge(age);setSex(sex);setHeight(height);}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}public int jisuan(int a,int b){return a+b;}public String gaiName(String name){setName(name);return getName();}}public class TestPeople {public static void main(String[] args) {// TODO ⾃动⽣成的⽅法存根People p=new People();People p2=new People("王五",18,"男",1.56);p.setName("张三");p.setSex("男");p.setAge(18);p.setHeight(1.80);System.out.println("名叫"+p.getName()+"性别"+p.getSex()+"年龄"+p.getAge()+"岁"+"⾝⾼"+p.getHeight());p.shuohua();System.out.println("23+45="+p.jisuan(23, 45));System.out.println("名字改为:"+p.gaiName("李四"));System.out.println("名叫"+p2.getName()+"性别"+p2.getSex()+"年龄"+p2.getAge()+"岁"+"⾝⾼"+p2.getHeight()); }}3、按要求编写Java应⽤程序。
JAVA 类和对象及数组习题一、选择题(1)下列构造方法的调用方式中,正确的是(D )——原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。
A.按照一般方法调用B。
由用户直接调用ﻫC.只能通过new 自动调用D。
被系统调用(2)在Java 中,能实现多重继承效果的方式是( C )——原因:一个类可以同时实现多个接口。
Java 接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。
◻A。
内部类B.适配器 C.接口D.同步(3)int 型public 成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java 中定义常量用关键字final 来定义.A.public int MAX_LENGTH=100 B。
finalintMAX_LENGTH=100 ﻫC.public const int MAX_LENGTH=100D.p ublic final int MAX_LENGTH=100(4)下列叙述中,正确的是( A)—原因:Java 严格区分大小写,所以变量number 与Number 不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*---——--*/"和文档注释/**-—---- */。
Java 源文件中的public 类只能有一个。
◻A.声明变量时必须指定一个类型ﻫ B. Java认为变量number 与Number 相同ﻫC. Java中唯一的注释方式是"//"ﻫD。
源文件中public类可以有0 或多个(5)下列叙述中,错误的是(D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。
所以可以认为子类是父类的扩展。
◻A。
父类不能替代子类B.子类能够替代父类ﻫC。
子类继承父类D.父类包含子类(6)下列代码中,将引起编译错误的行是(B)—原因:定义float 型变量并对其初始化时,其值后面要加一个f。
第1章Java开发入门一、填空题1、Java程序的运行环境简称之为______。
2、编译Java程序需要使用______命令。
3、和两个可执行程序存放在JDK安装目录的______目录下。
4、______环境变量用来存储Java的编译和运行工具所在的路径。
二、选择题1、Java属于以下哪种语言A、机器语言B、汇编语言C、高级语言D、以上都不对2、下面哪种类型的文件可以在Java虚拟机中运行A、.javaB、.jreC、.exeD、.class3、安装好JDK后,在其bin目录下有许多exe可执行文件,其中命令的作用是以下哪一种A、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器4、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项A.d:\jdk;B.d:\jdk\bin;C.d:\jre\bin;D.d:\jre;第2章基本数据类型与数组一、填空题1、Java中的程序代码都必须在一个类中定义,类使用______关键字来定义。
2、布尔常量即布尔类型的两个值,分别是______和______。
3、Java中的注释可分为三种类型,分别是______、______、______。
4、Java中的变量可分为两种数据类型,分别是______和______。
5、在Java中,byte类型数据占______个字节,short类型数据占______个字节,int类型数据占______个字节,long类型数据占______个字节。
6、在逻辑运算符中,运算符______和______用于表示逻辑与,______和______表示逻辑或。
7、若x = 2,则表达式( x + + )/3 的值是______。
8、若int a =2; a+=3;执行后,变量a的值为______。
9、若int []a={12,45,34,46,23}; ,则a[2]= ______。
《Java语言程序设计基础教程》练习思考题参考答案第1章 Java程序设计概述1.9 练习思考题1、Java运行平台包括三个版本,请选择正确的三项:()A. J2EEB. J2MEC. J2SED. J2E解答:A,B,C2、Java JDK中反编译工具是:()A. javacB. javaC. jdbD. javap解答:D3、public static void main方法的参数描述是:()A. String args[]B. String[] argsC. Strings args[]D. String args解答:A,B4、在Java中,关于CLASSPATH环境变量的说法不正确的是:()A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。
B. 编译器用它来搜索各自的类文件。
C. CLASSPATH是一个目录列表。
D. 解释器用它来搜索各自的类文件。
解答:A5、编译Java Application源文件将产生相应的字节码文件,扩展名为()A. .javaB. .classC. .htmlD. .exe解答:B6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。
7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。
8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。
9、开发与运行Java程序需要经过哪些主要步骤和过程?10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的?11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。
第3章类与对象一.选择题1.下列不属于面向对象编程的特性是()。
A.封装性 B. 继承性 C. 多态性 D. 编译执行性2.下列类的声明中不合法的是()。
A. class People{…}B. class 植物{…}C. Class A{…}D. public class 共有类{…}3.下列方法的声明中不合法的是()。
A. float area(){…}B. void area(){…}C. double area(d){…}D. int area(int r){…}4. 下列构造方法的调用中正确的是()。
A. 按照一般的方法调用B. 由用户直接调用C. 只能通过new自动调用D. 被系统调用5.下列程序运行的结果是()。
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.下列程序运行的结果是()。
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.下列程序运行的结果是()。
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. 以下代码的输出结果为()。
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. 编译和运行程序会出现什么样的结果()。
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. 输出:99C. 输出:198D. 运行出错10. 关于以下程序代码的说明正确的是()。
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);}}其输出结果是什么()。
A. The value is 8B. The value is 9C. The value is 10D. The value is 1112. 以下代码的调试结果为()。
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 和 999。
B.输出 999 和 100。
C.第3行出现编译错误, 变量 maxElements 未初始化。
D. 第19行出现编译错误。
13. 给出如下类定义:public class test {test(int k) {…}}如果要创建一个该类的对象,正确的语句是()。
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. 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.下面程序的输出结果是什么()。
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. 下面程序的输出结果是什么()。
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.下列代码的运行结果是()。
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.下列程序的运行结果为()。
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. 程序的运行结果为()。
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. 以上都不对第3章练习题答案一、选择题:1-5:D C C C A 6-10: D C C A D 11-15:C D B A C 16-19:A D B A。