zoukankan      html  css  js  c++  java
  • day09作业

    1:代码块是什么?代码块的分类和各自特点?
    在Java中,使用{}括起来的代码被称为代码块

    根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块。

    局部代码块
    在方法中出现;限定变量生命周期,及早释放,提高内存利用率
    构造代码块 (初始化块)
    在类中方法外出现;多个构造方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
    静态代码块
    在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。
    一般用于加载驱动
    另:位于主方法类中的静态代码块 优先于主方法执行

    2:静态代码块,构造代码块,构造方法的执行流程?
    静态代码块在加载的时候就执行,并且只执行一次。构造代码块每次调用构造都执行,在构造方法前执行。构造方法最后执行。

    3:继承概述
    让类与类之间产生关系,子父类的关系

    4:继承的好处
    a:提高了代码的复用性
    b:提高了代码的维护性
    c:让类与类之间产生了关系,是多态的前提

    5:Java中继承的特点
    a:Java只支持单继承,不支持多继承。(一个儿子只能有一个爹) (多继承有安全隐患)
    有些语言是支持多继承,格式:extends 类1,类2,...
    b:Java支持多层(重)继承(继承体系) a extens b , b extends c

    6:Java中继承的注意事项?以及我们什么时候使用继承?
    继承的注意事项
    a:子类只能继承父类所有非私有的成员(成员方法和成员变量)
    b:子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法。
    c:不要为了部分功能而去继承

    什么时候使用继承
    继承其实体现的是一种关系:"is a"。当a是b的一种,或b是a的一种时。

    7:继承中的成员访问特点
    A:成员变量
    在子类方法中访问一个变量 this.成员变量
    B:成员方法
    在测试类中通过子类对象去访问一个方法 this.成员方法

    8:继承中构造方法的执行流程?假如父类没有无参构造方法,子类应该怎么办?
    super解决
    super(name,age);
    this解决
    this(name,age);
    9:面试题:
    方法重写和方法重载的区别?方法重载能改变返回值类型吗?
    Overload
    Override
    this关键字和super关键字分别代表什么?以及他们各自的使用场景和作用。
    方法重写:子类中出现了和父类中方法声明一模一样的方法。与返回值类型有关,返回值是一致(或者是子父类)的

    方法重载:本类中出现的方法名一样,参数列表不同的方法。与返回值类型无关。

    方法重载可以改变返回值类型,只看参数列表

    this和super都代表什么
    this: 代表当前对象的引用,谁来调用我,我就代表谁
    super:代表当前对象父类的引用
    this和super的使用
    * a:调用成员变量
    * this.成员变量 调用本类的成员变量,也可以调用父类的成员变量(本类中没有的情况下)
    * super.成员变量 调用父类的成员变量
    * b:调用构造方法
    * this(...) 调用本类的构造方法
    * super(...) 调用父类的构造方法
    * c:调用成员方法
    * this.成员方法 调用本类的成员方法,也可以调用父类的方法(本类中没有的情况下)
    * super.成员方法 调用父类的成员方法

    10:继承案例练习

    class Animal {
    private String color;
    private int leg;
    public Animal() {}
    public Animal(String color,int leg) {
    this.color = color;
    this.leg = leg;
    }

    public void setColor(String color) {
    this.color = color;
    }
    public String getColor() {
    return color;
    }

    public void setLeg(int leg) {
    this.leg = leg;
    }
    public int getLeg() {
    return leg;
    }

    public void eat() {
    System.out.println("吃饭");
    }
    }

    class Cat extends Animal {
    public Cat() {}
    public Cat(String color,int leg) {
    super(color,leg);
    }

    public void catchMouse() {
    System.out.println("猫捉老鼠");
    }
    }

    class Dog extends Animal {
    public Dog() {}
    public Dog(String color,int leg) {
    super(color,leg);
    }

    public void watchHome() {
    System.out.println("忠犬看家");
    }
    }


    11:final关键字可以干什么?有什么特点?
    修饰类,类不能被继承
    修饰变量,变量就变成了常量,只能被赋值一次 (final 修饰的变量叫常量;一般会与public static共用)
    修饰方法,方法不能被重写
    12:final关键字的面试题?
    A:修饰局部变量
    基本类型,是值不能被改变
    引用类型,是地址值(引用)不能被改变,对象中的属性可以改变

    B:初始化时机
    显示初始化 (此时成员的默认初始化值0 是无效值)
    在对象构造完毕前即可(错误: 变量 num 未在默认构造器中初始化)

  • 相关阅读:
    Linux学习集
    sql命令学习集
    Linux中记录终端(Terminal)输出到文本文件
    利用HttpClient以post形式上传文件
    12个.net 开发者值得去读的国外Blog
    如何使用 Visual C# .NET 处理 Excel 事件
    关于我的Blog的声明
    一个项目经理的一些个人体会
    将DataGrid数据写入Excel文件。
    微软的秘密:微软公司软件开发模式简介
  • 原文地址:https://www.cnblogs.com/houjx/p/9356989.html
Copyright © 2011-2022 走看看