20175305张天钰第四周学习总结

**

第四周学习总结

**

第六章 继承与多态



本章主要学习了有关继承与多态的一些概念和内容。继承就是面向对象中,子类继承父类,避免重复的行为定义。重复再程序设计上是非常不好的信号,因为其大大增加了修改维护程序的成本。要避免重复,就可以把相同的代码程序提升为父类:

public class Role {
private String name;
private int level;
private 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;
}

}
public class SwordsMan extends Role{
public void fight(){
System.out.println("挥剑攻击");
}
}
public class Magician extends Role {
public void fight(){
System.out.println("魔法攻击");

}

public void cure() {
System.out.println("魔法治疗");
}
还有一种形式代码如下:

public class RPG1
{
public static void main (String[] args)
{
demoSwordsMan();
demoMagician();
}
static void demoSwordsMan()
{
SwordsMan1 swordsMan1 = new SwordsMan1();
swordsMan1.setName("Justin");
swordsMan1.setLevel(1);
swordsMan1.setBlood(200);
System.out.printf("剑士 : (%s, %d, %d)%n",swordsMan1.getName(),
swordsMan1.getLevel(),swordsMan1.getBlood());
}
static void demoMagician()
{
Magician1 magician = new Magician1();
magician.setName("Moinca");
magician.setLevel(1);
magician.setBlood(100);
System.out.printf("魔法师 :(%s ,%d ,%d)%n",magician.getName(),
magician.getLevel(),magician.getBlood());

}
}
一些小知识点:
新增和移除时可以用到

public interface ClientListener {
void clientAdded(ClientEvent event);
void clientRemoved(ClientEvent event);
}
import java.util.ArrayList;
public class ClientQuene {
private ArrayList clients = new ArrayList();
private ArrayList listeners = new ArrayList();

public void addClientListener(ClientListener listener){
    listeners.add(listener);

}
public void aVoid(Client client){
    clients.add(client);
    ClientEvent event = new ClientEvent(client);
    for(int i=0;i<listeners.size();i++){
        ClientListener listener = (ClientListener)listeners.get(i);
        listener.clientAdded( event);
    }
}

public void remove(Client client){
    clients.remove(client);
    ClientEvent event = new ClientEvent(client);
    for (int i=0;i< listeners.size();i++){
        ClientListener listener = (ClientListener) listeners.get(i);
        listener.clientRemoved(event);
    }
}

}
继承语法
1、protected 的使用:被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
2、super 关键字的使用:

如果想取得父类中的方法定义,可以在调用方法前,加上super关键字,使用super关键字调用的父类方法,不能定义为private。
3、java.lang.Object
在Java中,最上层的父类就是java.lang.Object

代码调试中的问题和解决过程
继承的有些概念还不太理解,抽象类使用的两种方法还不能很好的区分,不是很清楚分别在什么时候使用。

原文地址:https://www.cnblogs.com/zhangtianyu/p/10590323.html

时间: 2024-07-31 03:48:45

20175305张天钰第四周学习总结的相关文章

2019-2020-2 20175305张天钰《网络对抗技术》 Exp2 后门原理与实践

2019-2020-2 20175305张天钰<网络对抗技术> Exp2 后门原理与实践 知识点概括 后门: 不经过正常认证流程而访问系统的通道. 后门类型: 编译器留后门 操作系统留后门 应用程序中留后门 潜伏于操作系统中或伪装为特定应用的专用后门程序. 后门工具: netcat:又名nc或ncat,是一个底层工具,进行基本的TCP UDP数据收发.常被与其他工具结合使用,起到后门的作用. soCat:Netcat++,超级netcat工具. 任何代理.转发等功能都可以用该工具实现. met

20175305张天钰 《java程序设计》第四周课下测试总结

第四周课下测试总结 错题 某方法在父类的访问权限是public,则子类重写时级别可以是protected. A .true B .false 正确答案:B 解析:书P122:子类不允许降低方法的访问权限,但可以提高访问权限. 复杂题(易错) 下列关于final关键字的说法,正确的是 A .final类不能被继承. B .String类为final类. C .父类的final方法子类不能重写. D .final修饰的变量不允许被再次赋值. 正确答案:A B C D 下列关于Override的说法,

20175305张天钰 实现mypwd

1.命令格式: pwd [选项] --help:显示帮助信息: --version:显示版本信息. 2.命令功能: 查看"当前工作目录"的完整路径 3.常用参数: 一般情况下不带任何参数 如果目录是链接时: 格式:pwd -P 显示出实际路径,而非使用连接(link)路径. 1:查看pwd命令的帮助信息man pwd 2:显示当前目录所在路径 pwd 3:显示当前目录的物理路径 pwd –P 4:显示当前目录的连接路径:pwd -L 原文地址:https://www.cnblogs.c

张季跃 201771010139《面向对象程序设计(java)》第十四周学习总结

张季跃 201771010139<面向对象程序设计(java)>第十四周学习总结 第二部分:实验部分 1.实验目的与要求 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及常用API: 实验1: 导入第12章示例程序,测试程序并进行组内讨论. 测试程序1 l 在elipse IDE中运行教材479页程序12-1,结合运行结果理解程序: l 掌握各种布局管理器的用法: l 理解GUI界面中事件处理技术的用途. l 在布局管理应用代码处添加注释: 测试结果:   测

# 20175227张雪莹 2018-2019-2 《Java程序设计》第四周学习总结

20175227张雪莹 2018-2019-2 <Java程序设计>第四周学习总结 教材学习内容总结 一.子类和父类. 1.子类只继承父类中的protected和public访问权限的成员变量(方法)作为子类的成员变量(方法). 2.若A->B->C->D, 在Other类中用D类中protected的成员变量和方法创建对象object,则两个类需处于同一个包中: 在Other类中用D类继承A类中protected的成员变量和方法创建对象object,则A类和Other类需处

信息安全设计系统第十四周学习总结

信息安全系统设计基础第十四周学习总结 [学习时间:5小时] [学习内容:第九章——虚拟存储器] 一.课本内容梳理 1.虚拟存储器 作用: 将主存看作是一个存储在磁盘上的地址空间的高速缓存,在主存中只保护活动的区域,并根据需要在磁盘和主存之间来回传送数据: 为每个进程提供了一致的地址空间,从而简化了存储器管理: 保护了每个进程的地址空间不被其它进程破坏 地位: 虚拟存储器是中心的:它是硬件异常.硬件地址翻译.主存.磁盘文件和内核软件的交互中心: 虚拟存储器是强大的:它可以创建和销毁存储器片.可以映

20145317《信息安全系统设计基础》第十四周学习总结

20145317<信息安全系统设计基础>第十四周学习总结 教材学习内容总结 虚拟存储器的三个重要能力: 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,高效的使用了主存. 它为每个进程提供了一致的地址空间,从而简化了存储器管理. 它保护了每个进程的地址空间不被其他进程破坏. 程序员需要理解虚拟存储器的三个原因: 虚拟存储器是中心的:它是硬件异常.硬件地址翻译.主存.磁盘文件和内核软件的交互中心: 虚拟存储器是强大

2017-2018-1 20155201 《信息安全系统设计基础》第十四周学习总结

2017-2018-1 20155201 <信息安全系统设计基础>第十四周学习总结 教材学习内容总结 输入/输出(I/O)是在主存和外部设备(例如磁盘驱动器.终端和网络)之间复制数据的过程.输入操作是从I/O设备复制数据到主存,输出操作是从主存复制数据到I/O设备. 在Unix系统中,通过使用由内核提供的系统级UnixI/O函数来实现较高级别的I/O函数.但是Unix I/O的学习也必不可少,Unix I/O是系统操作不可或缺的部分,我们需要通过学习理解其他的系统概念,而且很多时候,使用高级I

2017-2018-1 20155304 《信息安全系统设计基础》第十四周学习总结

20155304 <信息安全系统设计基础>第十四周学习总结 第八章 异常控制流 详细总结本章要点 控制转移序列称为控制流. 从从一条指令到下一条指令称为转移控制. 异常控制流:现代操作系统通过使控制流发生突变对系统状态做出反应,这些突变称为异常控制流. 异常控制流ECF:即这些突变. 1.ECF是操作系统用来实现I/O.进程和虚拟存器的基本机制 2.应用程序通过使用一个叫做陷阱或者系统调用的ECF形式,向操作系统请求服务 3.ECF是计算机系统中实现并发的基本机制 4.软件异常机制--C++和