JAVA面向对象程序设计(第二版) 袁绍欣 第六章答案

Posted lyc1226

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA面向对象程序设计(第二版) 袁绍欣 第六章答案相关的知识,希望对你有一定的参考价值。

1.this 和 super 各有几种用法?

  1. 普通的直接引用,this指向当前对象
  2. 形参与成员名字重名,用 this 来区分;子类和父类中的成员重名,使用 super
  3. 引用构造函数

2.子类对象实例化的具体过程是什么?

先调用父类的构造函数,再调用自己的构造函数

3.类的域变量和方法中定义的局部变量在初始化上有何区别?

类的域变量在类实例化的时候进行初始化,方法中的局部变量在方法内部显式初始化

5.接口有什么用?自己定义一个接口,并给出实现类和使用类

  1. 实现多重继承

  2. 接口是一种标准,使用者按照接口使用,实验者按照接口实现,当实现者内部发生变化时,只要接口不变,使用者就不必更改代码。

  3. 扩展性强

interface Animal {
    void eat();
    void sleep();
}
class Cat implements Animal {
    
    public void eat() {
        System.out.println("eat");    
    }
    public void sleep() {
        System.out.println("sleep");
    }
}

6.抽象类与接口的异同点?

共同点:都有抽象方法,不能实例化,都有自己的声明

不同点:

  1. 属性 接口只有静态常量
  2. 抽象类可以有集体方法,接口只有抽象方法
  3. 抽象类必须有子类继承,接口必须有实现类实现

7.引用比较方法有哪些?

  • equals()
  • ==
  • instanceof

8.内部类的作用?什么情况下使用匿名内部类?

内部类可以访问类的所有成员,外部类无法访问内部类。保证对其他类封装,只对一个类(内部类)开发

  1. 只用到类的一个实例
  2. 类在定义后马上用到
  3. 类非常小(4行代码以下)

10.什么是数据隐藏?如何证明子类对父类同名方法进行重新定义,只能是方法的覆盖而不是隐藏?

只提供public方法来访问类中的私有属性。

12.借助JDK完成:Applet当中的 TextField,每次输入任一字符,在一个label中都能动态跟踪刷新。

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
class Listener implements KeyListener  
{    
    private myApplet mya;  //myApplet对象引用
    
    public Listener(myApplet a){
        this.mya = a;
    }
    public void keyPressed(KeyEvent arg0) {
     }
     public void keyReleased(KeyEvent arg0) {
     }
     public void keyTyped(KeyEvent ke) {
      //mya.l.setText(mya.input.getText()+ke.getKeyChar());
         mya.c = ke.getKeyChar();
         mya.refresh();
     }
};
public class myApplet extends Applet 
{
    public TextField input; //修改为public
    char c;
    Label l = new Label();
    public void init()
    {
        input = new TextField(10); 

        add(input); 
        add(l);
        input.addKeyListener(new Listener(this));
            
    }
    
    public void paint(Graphics g)
    {
        //l.setText(input.getText()+c);
        g.drawString("您输入了字符:"+c,10,50);
    }
 //增加刷新方法进行刷新
    public void refresh(){
        repaint();
    }   
}
  1. this super用法引用:https://www.cnblogs.com/hasse/p/5023392.html

以上是关于JAVA面向对象程序设计(第二版) 袁绍欣 第六章答案的主要内容,如果未能解决你的问题,请参考以下文章

Python核心编程(第二版)第六章部分习题代码

Python核心编程第二版 第六章课后练习

java 第六章 面向对象基础

读书笔记--《Python基础教程第二版》--第六章 抽象

java面向对象第六章

java面向对象第六章