笔试_类和对象
来源:互联网 发布:淘宝有人工客服吗? 编辑:程序博客网 时间:2024/05/29 17:44
一、 单选题(每小题2分,共28分)
1. 给出以下代码,请给出结果.
class A{
Byte x; //Byte是一个类,byte才是基本数据类型
}
class B{
public static void main(String[] args){
B b=new B();
b.start();
}
void start(){
A a=new A();
System.out.print(a.x+””);
A a2=fix(a);
System.out.print(a.x+” ” +a2.x);
}
A fix(A aa){
aa.x=42;
return aa;
}
}
A:null null 42
B:null 42 42
C:0 0 42
D:0 42 42
E:An exception is thrown at runtime
F:Compilation
2. 在Java中,下列关于方法重载的说法中错误的是()
A:方法重载要求方法名称必须相同
B:重载方法的参数列表必须不一致
C:重载方法的返回类型必须一致
D:一个方法在所属的类中可以被重载多次
3. 构造方法何时被调用?
A:类定义时
B:使用对象的变量时
C:调用对象的方法时
D:创建对象时
4. Product类别中有boolean型的属性free,请问下列哪些方法可作为free的setter?
A:public boolean setFree(){return free;}
B:public void setFree(){free=true;}
C:public boolean setFree(){return free;}
D:public void setFree(boolean f){f = free;}
E:public void setFree(boolean f){free = f;}
5. 下列说法正确的有()
A:class中的constructor不可省略
B:constructor必须与class同名,但方法不能与class同名
C:constructor在一个对象被new时执行
D:一个class只能定义一个constructor
6. 局部变量能否和成员变量重名?
A:可以,局部变量可以与成员变量重名,这时可用“this”来指向成员变量
B:可以,这时可用“local”关键字来指向局部变量
C:不能,局部变量不能与成员变量重名
D:不能,在一个类中不能有重名变量,不管是成员变量还是函数中的局部变量
7. 有以下程序片段,下列哪个选项不能插入到行1。( )
1.
2.public class Interesting{
3. // 省略代码
4.}
A:import 语句
B:package 语句
C:
class OtherClass{
//省略代码
}
D:
public class MyClass{
//省略代码
}
8. 下面哪个对类的声明是错误的()
A:class MyClass extends MySuperClass1, MySupperClass2 {}
B:public class MyClass{}
C:abstract class MyClass implements YourInterface1, Youriterface2 {}
D:private class MyClass {}
E:class MyClass extends MySuperClass implements YourInterface {}
9.有关类和对象,以下说法错误的是?
A:同一个类的所有对象都拥有相同的特征和行为
B:类和对象一样,只是说法不同
C:对象是具有属性和方法的实体
D:类规定了对象拥有的特征和行为
10. 根据下面的程序代码,哪些选项的值返回true?
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Square {
long width;
public Square(long l) {
width = l;
}
public static void main(String arg[]) {
Square a, b, c;
a = new Square(42L);
b = new Square(42L);
c = b;
long s = 42L;
}
}
A:a == b
B:s == a
C:b == c
D:a.equals(s)
11. 现有类Foo,下列构造器定义正确的是()
A:public void Foo(){}
B:public foo(){}
C:public Constructor(){}
D:public Foo(){}
12.
在如下所示的类Test中,共有()个构造方法。
public class Test
{
private int x;
public Test()
{
x = 35;
}
public void Test(double f)
{
this.x = (int)f;
}
public Test(double f)
{
this.x = (int)f;
}
public Test(String s) {}
}
A:1
B:2
C:3
D:4
13. 研究下列代码
public class Test {
String s = "nba";
public void test(String s)
{
System.out.println("s:"+s);
System.out.println("this.s:"+this.s);
this.s=s;
System.out.println("s:"+s);
System.out.println("this.s:"+this.s);
}
/**
* @param args
*/
public static void main(String[] args) {
new Test().test("cba");
}
}
将输出结果( )
A:s:cba this.s:nba s:cba this.s:nba
B:s:nba this.s:nba s:nba this.s:nba
C:s:cba this.s:nba s:cba this.s:cba
D:s:nba this.s:cba s:cba this.s:cba
14. 请问以上程序执行的结果是?()
public class Test{
public String name="abc";
public static void main(String[] args){
Test test=new Test();
Test testB=new Test();
System.out.println(test.equals(testB)+","+test.name.equals(testB.name));
}
}
A:true,true
B:true,false
C:false,true
D:false,false
二、 多选题(每小题3分,共6分)
1. 关于构造函数的说法不正确的是?(选出正确的三项)
A:一个类只能有一个构造函数
B:一个类可以不显示提供构造函数
C:构造函数与类同名
D:一个类可以有多个不同名的构造函数
E:构造函数不声明返回值类型
F:无参构造方法在任何情况下都默认存在
2. 下列说法错误的有?(选出正确的两项)
A:在类方法中可用this来调用本类的类方法 //静态方法中没有this指针
B:在类方法中调用本类的类方法时可直接调用
C:在类方法中只能调用本类中的类方法
D:在类方法中绝对不能调用实例方法
三、 简答 (每小题5分,共10分)
1. 简单描述面向对象的三大特性
面向对象的三个基本特征是:封装、继承、多态。(如果要答四个的话,可以增加一个抽象)。
封装:1.把对象的状态和行为看成一个统一的整体,将二者存放在一个独立的模块中(类)。简单的说就是把所有的属性设置为私有的,然后每个私有属性都提供getter和setter方法。
2.“信息隐藏”,把不需要让外界知道的信息隐藏起来,尽可能隐藏对象功能实现细节。
继承:1.继承是多态的前提
2.Java只支持单继承,但可以间接继承,
3.接口可以实现多继承
4.让类与类之间产生了关系,提高了代码的复用性
多态:指同一个实体同时具有多种形式(好比不同的人,执行同一件事,得到的结果不一样)
多态必须满足以下条件:
1. 必须存在继承关系
2. 必须存在方法的重写
3. 父类引用指向子类的对象
2. 请写出Overload和Override区别。参数列表相同,返回值不同的方法,是否是重载方法?
Overload(重载):1.在同一个类中
2.方法名相同
3.参数列表不同(参数的数量不同、参数的类型不同、参数的顺序不同)
Override(重写):1.在不同类中
2.要有继承关系
3.类名、修饰符等要全部一致(等同于复制)
4.子类的权限不能低于父类(不能降级)
不是,重载对返回值没有要求,可以相同,也可以不同
但是如果参数的个数、类型、次序都相同,方法名也相同,仅返回值不同,则无法构成重载
- 笔试_类和对象
- C++笔记_类和对象_类的定义_类和对象
- 类和对象_定义类2
- 基础_对象、类和结构概述
- 黑马程序员_.NET类和对象
- 20150609类和对象_练习
- 第一天:类和对象(^_^!)
- 类和对象_学习笔记
- python篇7_类和对象
- 笔试_接口抽象类
- C++笔记_类和对象_类的定义_访问限定和信息隐藏
- 面向对象1_【类和对象】【构造函数】
- C#面向对象_类和对象_160922
- Java精选笔记_面向对象(慨念、类和对象)
- 类与对象02_对象和类与对象关系_旺旺老师Java学习解决方案_第一季
- C++笔记_类和对象_类的定义_基本语言定义的ADT
- C++笔记_类和对象_类的定义_数据成员与成员函数
- 30_面向对象_03_类和对象的关系_写出第一个类
- Win10系统资源管理器自动展开左侧文件夹如何设置
- unity解决快速运动物体碰撞检测穿透问题
- 51 nod 1275 连续子段的差异(单调队列)
- CSS布局
- scrapy
- 笔试_类和对象
- poj2653
- typedef的用法
- 迭代思想
- RecyclerView+OKhttp+item的条目加载
- 泛型/序列化
- Makefile简介及相关用法
- 台湾大学机器学习基石Lecture7
- 在线工具