一、填空题
1.面向对象的三大特征是封装、继承、多态。
2.针对类、成员方法和属性,Java提供了4种访问控制权限,分别是private、default、protected、public。3.静态方法必须使用static关键字来修饰。
4.类的封装是指在定义一个类时,将类中的属性私有化,即使用private关键字来修饰。
5.一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同,即可实现重载。
6.在Java中解决成员变量与局部变量名称冲突时,可以使用this关键字。
二、判断题
1.在成员方法中出现的this关键字,代表的是调用这个方法的对象。(错)
2.封装就是隐藏对象的属性和实现细节,仅对外提供公有的方法。(√)
3.面向对象的特点主要可以概括为封装性、继承性和重载性。(错)
4.定义在类中的变量叫成员变量,定义在方法中的变量叫局部变量。(√)
5.构造方法的名称必须和类名保持一致。(√)
三、选择题
1.下列关于this关键字的说法中,错误的是(C)。
A、this关键字可以解决成员变量与局部变量重名的问题。
B、this关键字出现在成员方法中,代表的是调用这个方法的对象。
C、this关键字可以出现在任何方法中。
D、this关键字相当于一个引用,可以通过它调用成员方法与属性。
2.阅读下列程序:
class Test{
private static String name;
static{
name="World";
System.out.print(name);}
public static void main(String[]args){
System.out.print("Hello");
Testtest=newTest();
}
}
下列选项中,程序运行结果是(B)
A、HelloWorld B、WorldHello C、HelloD、World
3.被声明为private,protected及public的类成员,在类外部可以被访问的成员是(B)
A、只能访问到声明为public的成员
B、只可能访问到声明为protected和public的成员
C、都可以访问
D、都不能访问
4.阅读下列程序:
Class Person{
void say(){
System.out.println("hello");
}
}
class Example{
public static void main(String[]args){
Personp2=newPerson();
Personp1=newPerson();
p2.say();
p1.say();
p2=null;
p2.say();
}
}
下列选项中描述正确的是(B)
A、输出1个hello
B、输出2个hello后会抛出异常
C、输出3个hello后会抛出异常
D、不会输出hello,直接抛出异常解析:程序中创建了2个Person对象p1、p2,并分别调用了say()方法输出两个hello,然后将p2对象置为null,使p2对象失去了引用,因此再次使用p2对象调用say()方法时,会抛出异常。
5.下列类定义中,不正确的是(C)
A、classX{...}
B、classXextendsY{...}
C、staticclassXimplementsY1,Y2{...}
D、publicclassXextendsApplet{...}
简答题
1.简述你对面向对象的三大特征的理解。
面向对象的特点主要可以概括为封装性、继承性和多态性。
其中封装是面向对象核心思想","将对象的属性和行为封装起来","不需要让外界知道具体实现细节","这就是封装思想。
继承性主要描述的是类与类之间的关系","通过继承","可以在无需重新编写原有类的情况下","对原有类的功能进行扩展。
多态性指的是在程序中允许出现重名现象","它指在一个类中定义的属性和方法被其它类继承后","它们可以具有不同的数据类型或表现出不同的行为","这使得同一个属性和方法在不同的类中具有不同的语义。
2.请简述构造方法的特点。
(1)构造方法名与类名相同;
(2)在构造方法名的前面没有返回值类型的声明;
(3)在构造方法中不能使用return语句返回一个值。
编程题
某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装类Resume,并编写测试类进行实现。类图及输出效果如下。
类名:Resume
name : String (private)
sex : String (private)
age : int (private)
Resume( ) // 没有参数的空构造方法
Resume(Srting name, String sex, int age)
// 得到各个属性值的方法getXxx( )
introduce( ) : void // 自我介绍(利用属性)
程序运行结果如下:
我是:李四,性别:男,年龄:20
class Resume {
private String name;
private String sex;
private int age;
public Resume() {}
public Resume(String name,String sex,int age) {
this.name=name;
this.sex=sex;
this.age=age;
}
public String getName() {
return name;
}
public String getSex() {
return sex;
}
public int getAge() {
return age;
}
public void introduce() {
System.out.println("姓名:"+this.getName()+"\n性别:"+this.getSex()+"\n年龄:"+this.getAge());
}
}
public class Example {
public static void main(String[]args) {
Resume re=new Resume("李四","男",20);
re.introduce();
}
}
运行结果:
姓名:李四
性别:男
年龄:20