面向对象基础应用习题答案[1]

更新时间:2023-07-13 13:19:20 阅读: 评论:0

Java语言面向对象基础(答案)
一、填空题
1.类是一组具有相同(属性)和(行为)的对象的抽象。(实例)是由某个特定的类所描述的一个个具体的对象。
2.(接口)只描述系统所提供的服务,而不包含服务的实现细节。
3.构造方法的方法名与(类名)相同,若类中没有定义任何的构造方法,则运行时系统会自动为该类生成一个(默认构造)方法。
4.在方法体内定义的变量是(局部变量),其前面不能加(public),且必须(初始化)。
5.数组元素作实参时对形参变量的数据传递是(单向值传递),数组名作实参时对形参变量的数据传递是(双向引用传递)。
6.对象作方法形参时,方法实参也用对象,实现(引用)调用。
7.( new)是一个特殊的方法,用于创建一个类的实例。
8.(类)变量在内存中只有一个拷贝,被该类的所有对象共享;每当创建一个实例,就会为(实例)变量分配一次内存,(实例)变量可以在内存中有多个拷贝,互不影响。
二、简答题
1.名词解释:抽象、对象、类、实例、方法、属性、消息、接口、封装、继承、多态性
抽象:是从被研究的对象中舍弃个别的,非本质的或与研究主旨无关的次要特征,而抽取与研究有关的共性内容加以考察,形成对被研究问题的正确的、简明扼要的认识。
对象:是对客观事物的抽象,是类的实例。
类:对对象的抽象,是一种抽象的数据类型。
实例:也就是对象,对象也被称为类的实例化。
方法:类的行为,事物动态特征的抽象。
属性:数据成员,是事物静态特征的抽象。
消息:p65
接口:p87
封装:p61
继承:p66
猫咪可以吃虾吗多态性:p70
2.简述面向对象的基本思想、主要特征和基本要素。P59,主要特征是封装、继承和多态
3.为什么要对类进行封装?封装的原则是什么?
P59:高内聚,松耦合
4.类的封装性、继承性和多态性各自的内涵是什么?
第五章内容
5.什么是对象?什么是类?二者有何关系?
类是对象的模板,对象是类的实例。以类为模板可以创建不同的对象。
6Java中类定义的一般格式是什么?定义类的修饰符有哪些?各自的特点是什么?
P60
7Java中成员变量定义的一般格式是什么?成员变量有哪些修饰符?
P39p50p61
8Java中成员方法定义的一般格式是什么?成员方法有哪些修饰符?
P39p50p61
9.简述构造方法的特点与作用。 P47
10Java中创建对象的一般格式是什么?如何初始化对象?如何给对象赋值?
P41
三、选择题
1.下面关于封装性的描述中,错误的是( D )。
A.封装体包含属性和行为        B.被封装的某些信息在外不可见
杀四害C.封装提高了可重用性          D.封装体中的属性和行为的访问权限相同
2.下面关于类方法的描述,错误的是( B )。
A.说明类方法使用关键字static  B.类方法和实例方法一样均占用对象的内存空间
C.类方法能用实例和类名调用    D.类方法只能处理类变量或调用类方法
3.下面关于包的描述中,错误的是( A )。
A.包是若干对象的集合        B.使用package语句创建包
C.使用感光import语句引入包      D.包分为有名包和无名包两种
四、判断题
1.类是一种类型,也是对象的模板。(
2.类中说明的方法可以定义在类体外。( ×
3.实例方法中不能引用类变量。( ×
4.创建对象时系统将调用适当的构造方法给对象初始化。(
5.使用运算符new创建对象时,赋给对象的值实际上是一个引用值。(
6.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值。( 金钟铉
7.对象可作方法参数,对象数组不能作方法参数。( ×
8class是定义类的惟一关键字。(
天空霸主9Java语言会自动回收内存中的垃圾。(
五、分析题
分析下面的程序,写出运行结果。
import java.awt.*;
import java.applet.*;
class MemberVar {
    static int sn = 30;十年后的家乡
    final int fn;
    final int fk = 40;
    MemberVar() {
        fn = ++sn;
    }
}
public class Exercis5_1 extends Applet {
    public void paint(Graphics g) {
          MemberVar obj1 = new MemberVar();
          MemberVar obj2 = new MemberVar();
          g.drawString("obj1.fn=" + obj1.fn, 20, 30);
          g.drawString("obj1.fk=" + obj1.fk, 20, 50);
          g.drawString("obj2.fn=" + obj2.fn, 20, 70);
          g.drawString("obj2.fk=" + obj2.fk, 20, 90);
    }
}
运行结果是:(     
obj1.fn=31
obj1.fk=40
obj2.fn=32
obj2.fk=40
六、改错题
1.下面的程序中有若干个语法错误,找出后请改正。
public class MyMainClass{
public static void main(  )    {
        TheOtherClass obj = new TheOtherClass("John Smith","Male","UK");
        System.out.println(obj.name+' '+der+' '+obj.nationality);
}
System.out.println("The end of the program! ")
}
public class TheOtherClass{
        private String name,gender,nationality;
        public TheOtherClass(String name,String gender,String nationality)    {
            this.name=name;
            der=gender;
            this.nationality=nationality;
}
}
改正后程序:
public class MyMainClass {
    public static void main(String args[]) {
        TheOtherClass obj = new TheOtherClass("John Smith", "Male", "UK");
        System.out.println(obj.name + ' ' + der + ' ' + obj.nationality);
        System.out.println("The end of the program! ");
    }
}
class手机一 TheOtherClass {  //删除public.java中一个文件里面只能有一个公有类
    public String name, gender, nationality;
    public胖小猪 TheOtherClass(String name, String gender, String nationality) {
        this.name = name;
        this.gender = gender;
        this.nationality = nationality;
    }
}
2.下面的程序中有若干个语法错误,找出后请改正。
public class Car{
            private String carName;
            public int mileage;
            private static final int TOP_SPEED=50;
            abstract void alert();
            public static int getTopSpeed(){
                return TOP_SPEED;
}
public static void tCarName(){
        carName="Bensi";
}
public static void tMileage(){
        mileage=180;
}
}
改正后程序:
public abstract class Car {    //有抽象方法,定义为抽象类
    private String carName;
    public int mileage;
    private static final int TOP_SPEED = 50;
    abstract void alert();
    public static int getTopSpeed() {
        return TOP_SPEED;
    }
    public void tCarName() {    //删除static,静态方法只能访问静态的成员,不能访问非静态成员,非静态方法可能访问静态的成员
        carName = "Bensi";
    }
    public void tMileage() {
        mileage = 180;
    }
}

本文发布于:2023-07-13 13:19:20,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1094361.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   方法   封装   成员   实例
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图