20145228《Java程序设计》第四周学习总结

教材学习内容总结

继承

·继承是面向对象的第二大特征

·继承避免重复的行为定义

·继承的好处之一:若要修改子类名称,只需要将父类名称修改就可以了,只要是继承他的子类都不用修改

·子类只能继承一个父类,但可以多层继承,子类和父类是一种is-a的关系

多态

·多态抽象地讲就是使用单一接口操作多种类型的对象

·多态的好出:减少不必要的重复,具有更高的可维护性

public class RPG2
{
public static void main(String[] args)
{
    SwordsMan1 swordsMan = new SwordsMan1();
    swordsMan.setName("Justin");
    swordsMan.setLevel(1);
    swordsMan.setBlood(200);
    Magician1 magician = new Magician1();
    magician.setName("Monica");
    magician.setLevel(1);
    magician.setBlood(100);
    showBlood(swordsMan);
    showBlood(magician);
}
static void showBlood(Role1 role)
{
    System.out.printf("%s 血量 %d%n",role.getName(),role.getBlood());
}
}

抽象方法

·如果某方法区块中真的没有任何程序代码操作,可以使用abstract标示该方法为抽象方法,该方法不用写{}区块,直接;结束即可

·含抽象方法的类,class前必须标示abstract

protected成员

·被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取


public abstract class Role5
{
protected String name;
protected int level;
protected int blood;
public int getBlood()
{
    return blood;
}
public void setBlood(int blood)
{
    this.blood = blood;
}
public int getLevel()
{
    return level;
}
public void setLevel(int level)
{
    this.level = level;
}
public String getName()
{
    return name;
}
public void setName(String name)
{
    this.name = name;
}
}

super

·如果想取得父类中的方法定义,可以在调用方法前,加上super关键字。

·如果想执行父类中某构造函数,可以使用super()指定

java.lang.Object

`在JAVA中,任何类的最上层父类,一定就是java.lang.Object

接口

·接口可以用于定义行为,但不定义操作

·操作某接口时,对接口中定义的方法有两种处理方式:1、操作接口中定义的方法 2、再度将该方法标示为abstract,如:


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();
}

代码调试中的问题和解决过程


class Some {
    String ToString(){
        return "Some instance";
    }
}
public class Main {
    public static void main(String[] args){
        Some some = new Some ();
        System.out.println(some);
    }
}

最后结果显示的是 Some @ 1540e19d 且1540e19d为16进制数字,这样定义toString()方法使它变得更加方便,简洁。

本周代码托管截图

感悟

这周学习任务和上周一样比较繁重,需要较多时间去学习理解新知识、巩固旧知识,编写更多的代码,但付出越多,收获也就越多,也越能够体会到学习的乐趣。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 4000行 20篇 300小时
第一周 100/100 1/1 15/15
第二周 300/400 1/2 25/40
第三周 500/900 1/3 35/75
第四周 400/1300 1/4 30/105

参考资料

posted @ 2016-03-27 16:35  20145228江苒  阅读(151)  评论(0编辑  收藏  举报