• 20155117 王震宇 2006-2007-2 《Java程序设计》第四周学习总结


    教材学习内容总结

    继承(inheritance)

    • 继承是面向对象软件技术当中的一个概念。继承可以使得子类别具有父类别的各种属性和方法,避免了重复的行为定义。在子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类别追加新的属性和方法也是常见的做法。 一般静态的面向对象编程语言,继承属于静态的,意即在子类别的行为在编译期就已经决定,无法在执行期扩充。

    • 关键字extend用来继承父类。语句格式:class 子类名 extends 父类名{}

    • 关键字super获取父类中的方法定义,引用父类的成分。

    注意:private成员可以被继承,但是不能通过子类访问,要通过父类的非private方法访问。
    

    多态和 is-a

    • 子类只能继承一个父类。

    • 检查语法的方式是从=号右边向左边读,右边类是不是左边类的子类。

    • 强制类型转换,可以让程序通过编译

    • Role role1 = new SwordsMan()

    • SwordsMan swordsman = role1; //No

    • SwordsMan swordsman = (SwordsMan)role1; //Yes

    • 多态:使用单一接口操作多种类型的对象。
      接口

    • 关键字interface

    • @Override

      • @Override不是关键字,但是可以把它当做关键字来使用。当你想要覆写某个方法时,可以添加这个注解。在不小心重载而非覆写了该方法时,编译器就会生成一条错误信息。
      • (1)可以当注释用,方便阅读;
      • (2)编译器可以给你验证@Override下面的方法是否是你父类中所有的,如果不是则报错。例如,你想重写父类中的某个方法,如果没写@Override,而你下面的方法又写错了,比如参数类型个数或者方法名不同,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。
    public interface Swimmer
    {
        public void swim();
    }
    
    
     public abstract class Fish implements Swimmer 
     {
        protected String name;
        public Fish(String name) {
            this.name = name;
        }
        public String getName() {
            return name;
        }
        @Override
        public abstract void swim();
    }
    
    
    public class Human implements Swimmer {
        private String name;
        
        public Human(String name) {
            this.name = name;
        }
        
        public String getName() {
            return name;
        }
        
        @Override
        public void swim() {
            System.out.printf("Human %s swim%n", name);
        }
        
    }
    

    此时Human操作了Swimmer,但没有继承Fish。

    • 继承有“是一种”的关系,操作接口表示“拥有行为”。

    代码托管


    这周代码分了好几个目录不想一一截图了。

    上周考试错题总结

    错题1:两个Integer对象比较大小,可以使用(comareTo())方法
    java 中对象比较大小有两种方法
    1:实现Comparable 接口 的 public int compareTo(T o) 方法;
    2:实现Comparator 接口 的 int compare(T o1, T o2)方法;
    错题2:“30”转化为byte类型的30的语句是Byte.parseByte(“30”);
    错题3:可以使用java.util.Arrays的fill())方法把数组初始化成相同的值。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/0 2/2 20/20
    第二周 251/251 1/5 18/38
    第三周 651/902 1/6 10/48
    第四周 300/1400 1/7 10/58

    参考资料

  • 相关阅读:
    【bzoj1408】 Noi2002—Robot
    【bzoj3884】 上帝与集合的正确用法
    【bzoj2190】 SDOI2008—仪仗队
    【uoj264】 NOIP2016—蚯蚓
    【uoj262】 NOIP2016—换教室
    【uoj261】 NOIP2016—天天爱跑步
    python sort 和sorted排序
    mkdir: cannot create directory ‘/soft/hadoop-2.7.3/logs’: Permission denied问题
    RuntimeError: implement_array_function method already has a docstring
    flask 的orm
  • 原文地址:https://www.cnblogs.com/ikari/p/6581959.html
Copyright © 2020-2023  润新知