zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    WinCMD color命令
    WinCMD if命令(批处理Dos 大于、小于、等于)
    WinCMD 常用命令
    AIFramework基本概念整理
    AICompiler动态shape编译框架
    深度学习编译与优化Deep Learning Compiler and Optimizer
    NNVM Compiler,AI框架的开放式编译器
    Tengine AIFramework框架
    Tvm一些基本技术
    北汽蓝谷和北汽新能源
  • 原文地址:https://www.cnblogs.com/lyc1226/p/10669982.html
Copyright © 2011-2022 走看看