第三章面向对象(上)课后题

一、填空题

 

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

  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值