• #20175120彭宇辰 java第四周总结


    教材学习内容总结

    -第五章 子类与继承

    子类的定义
    -class 子类名 extends 父类名
    ps:
    -任何类都是object的子类
    -每个类有且仅有一个父类,多个或0个子类

    同一包里的继承性
    -除了private,其他友好类、public类、protected类都被子类继承
    不同包里的继承性
    -子类只继承public和protected类

    protected的说明
    -对于子类D自己声明的protected,只要其他类和D在同一个包中,其他类中用D创建的对象就能访问这些protected
    -对于子类继承的protected,只要其他类和D的祖先类在一个包中,其他类就能访问protected

    instanceof运算符
    -左边是对象,右边是类
    -左边的对象是右边的类或其子类创建时,instanceof运算结果是true

    成员变量的隐藏
    -子类对象和自己定义的方法与父类的同名,则父类的内容被隐藏
    -子类对象依然可以用从父类继承的方法调用被隐藏的成员变量

    方法重写
    -继承父类
    -方法类型一致或为父类方法子类型
    -方法名字、参数个数、参数类型与父类一致
    -重写方法时,不能降低方法的访问权限

    super关键字
    -调用被隐藏的方法c=super.f()
    -必须是子类构造方法中的第一条
    -子类中默认有super();

    final关键字
    -修饰类、成员变量、方法中的局部变量
    -修饰成员变量,不能有子类
    -修饰局部变量,不允许子类重写

    abstract关键字
    -修饰类、方法
    -不能与final同时修饰方法和类
    -不能与static同时修饰方法
    -抽象类中可以有抽象类方法
    -不能用new创建对象
    -子类必须重写abstract方法,同时去掉abstract修饰
    -abstract类的对象作为上转型对象,调用子类重写的方法

    对象的上转型对象
    -用法
    Animal是Tiger的父类
    Animal a;
    a=new Tiger();
    -教材P126的图5.9!
    ps:
    -区分父类创建的对象和子类对象的上转型对象
    -可以将上转型对象强制转换回子类对象
    -不能将父类创建的对象引用赋给子类对象


    教材学习中的问题和解决过程

    问题1:编译Example5_6时,Example5_6.java使用或覆盖了已过时的 API。
    解决方法:源代码中,使用JDK中的类的时候,调用了已经过时的方法。所谓过时方法,是有些没有真正实现的方法,或存在潜在问题的方法。这些方法一般情况下,目前的JDK还支持,但在未来的某个版本中,可能就会取消的。所以,在本地使用的代码不必担心这个问题;要移值到其它计算机的程序必须要解决这个问题。

    代码托管:https://gitee.com/pyc-1751/chapter_1_of_java.git
    代码量截图:(https://images.gitee.com/uploads/images/2019/0324/211946_4ff43866_4787449.png "微信截图_20190324211431.png")

    上周考试错题总结

    下列说法正确的是
    A .如果想在方法中使用被隐藏的成员变量,可以使用关键字super。
    B .double类型的成员变量的默认值为0,局部变量没有默认值。
    C .对成员变量的赋值操作只能放在方法中。
    D .面向对象语言中的“类”相当于C语言中的“函数”。
    -我误选了B,答案为C
    -double型变量的默认值为0.0

    下列关于实例方法和类方法的叙述,正确的是
    A .类方法不可以操作实例变量,因为在类创建对象之前,实例成员变量还没有分配内存。
    B .当创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址。
    C .实例方法不能通过类名调用,只能由对象来调用。
    D .不必创建对象就可以用类名直接调用static方法。
    -答案是ABCD,我漏选C
    -实例方法可以通过实例变量和类变量来调用
    -类方法只能由类变量调用

    下列A类中【代码1】~【代码5】哪些是错误的?

    class Tom {

    private int x = 120;

    protected int y = 20;

    int z = 11;

    private void f() {

    x = 200;

    System.out.println(x);

    }

    void g() {

    x = 200;

    System.out.println(x);

    }

    }

    public class A {

    public static void main(String args[]) {

    Tom tom = new Tom();

    tom.x = 22; //【代码1】

    tom.y = 33; //【代码2】

    tom.z = 55; //【代码3】

    tom.f(); //【代码4】

    tom.g(); //【代码5】

    }

    }
    A .【代码1】
    B .【代码2】
    C .【代码3】
    D .【代码4】
    E .【代码5】
    -答案是AD
    -private修饰的对象和方法不能被调用

  • 相关阅读:
    [转]Spring——jar包详解
    [转]Null value was assigned to a property of primitive type setter of"原因及解决方法
    [转]Spring3 MVC + jQuery easyUI 做的ajax版本用户管理
    [转]SpringMVC+Hibernate+Spring 简单的一个整合实例
    Spring MVC配置
    [转] 使用Spring MVC构建REST风格WEB应用
    NYOJ 467 中缀式变后缀式
    HBase源代码分析之HRegionServer上MemStore的flush处理流程(二)
    树中两个节点的最低公共祖先
    计算机图形学(一) 视频显示设备_1_CRT原理
  • 原文地址:https://www.cnblogs.com/1751-pyc/p/10590493.html
Copyright © 2020-2023  润新知