第二次总结
练习:
1.回合制游戏:奥特曼和小怪兽要战斗,直到一方的血量为0的时候结束战斗,输出谁胜利了!
1.找出这个场景中的对象
2.找出每一个对象的特征和行为
3.根据类的格式和对象的特性与行为定义一个class
4.定义主函数的类,实例化对象和调用方法
※※※首先定义一个表示奥特曼的Ultraman类。
public class Ultraman {
public int blood =1000;
//一般情况下属性值应该为private,而这里Ultraman类型对象的blood属性值要被Monster类型中的fight()方法调用,故设为公有
//可以定义一个setblood的方法,此处略,直接给出blood初始值
public void fight(int n,Monster m){
//定义一个表示攻击动作的方法fight(),由于攻击对象为小怪兽,故一个参数为Monster类型的;另一个参数表示攻击掉血的随机值
switch(n){
case 48:
//此处考虑到char类型的0,1,2分别对应int类型的48,49,50
System.out.println("奥特曼Miss.. 小怪兽血槽:"+m.blood);
break;
case 49:
m.blood=m.blood-100;
System.out.println("奥特曼给了小怪兽一击,伤害100! 小怪兽血槽:"+m.blood);
break;
case 50:
m.blood=m.blood-200;
System.out.println("奥特曼给了小怪兽一!!暴击!!伤害200!!! 小怪兽血槽:"+m.blood);
break;
}
}
}
※※※同理定义一个表示怪兽的Monster类。
public class Monster {
public int blood =1000;
public void fight(int n,Ultraman u){
switch(n){
case 48:
System.out.println("小怪兽Miss.. 奥特曼血槽:"+u.blood);
break;
case 49:
u.blood=u.blood-100;
System.out.println("小怪兽给了奥特曼一击,伤害100! 奥特曼血槽:"+u.blood);
break;
case 50:
u.blood=u.blood-200;
System.out.println("小怪兽给了奥特曼一!!暴击!!伤害200!!! 奥特曼血槽:"+u.blood);
break;
}
}
}
※※※主函数
public class Game{
public static void main(String [] args){
Ultraman jack=new Ultraman();//定义一个奥特曼类型的对象jack
Monster rose=new Monster();//再定义一个怪兽类型的对象rose..
String s="10121112011121111111112";//以一个字符串模拟随机的格斗
状态
for(int i=0;i<s.length();i++){
if(jack.blood > 0 && rose.blood > 0){//血槽均不为0的状态
下
if((i % 2 )== 0){//奇偶数体现轮流的回合制
jack.fight((int)s.charAt(i),rose);}//此处考虑到char类型
的0,1,2分别对应int类型的48,49,50
else{
rose.fight((int)s.charAt(i),jack);}
}
}
if(jack.blood <= 0){System.out.println("奥特曼挂了,小怪兽胜利%>_<%");}
if(rose.blood <= 0){System.out.println("小怪兽挂了,奥特曼胜利O(∩_∩)O");}
}
}
这次的练习思路比较清晰,完成得比较顺利。
关于类和对象的定义,应把工作做在前面——
首先考虑清楚可以建立怎样的类,应具有怎样的属性和方法。属性需要考虑类型和使用权限(公有or私有,一般为私有);方法需考虑传参数目及类型、返回值(一般为公有)等等。
对象是类的实例化。方法的调用只有通过对象的创建才能实现。
- 大小: 96.3 KB
分享到:
相关推荐
总结起来,乡镇第二次经济普查全面反映了我镇的经济结构和活力,为政策制定提供了详实的数据支持。未来,我们将继续加强经济普查成果的运用,维护和完善普查数据库,为乡镇经济发展提供有力的决策依据。
在这个“第二次作业总结1”中,我们探讨了一个涉及人工智能领域数据处理的过程,主要涉及Python编程和数据分析技术。以下是具体的步骤和遇到的问题: 1. **读取数据**:首先,从log文件中读取数据,这里特定选取了...
例如,一个`Book`对象可以包含多个`Author`对象、一个`Publisher`对象和多个`Chapter`对象。 - **继承**: JavaScript支持原型继承和类继承(ES6引入)。通过原型链,子对象可以继承父对象的属性和方法。 - **多态**:...
重要的是,凯莱使用一个字母来代表一个矩阵...在20世纪上半叶,许多前几世纪的想法和方法被总结成抽象代数,线性代数第一次有了它的现代形式。矩阵在量子力学、狭义相对论和统计学上的应用帮助线性代数的主题超越纯数学
【UML介绍】 ...总结,本次作业的重点在于理解和实现UML序列图和状态图的解析,以及基于这些解析结果进行规则验证。学生需要具备良好的编程技能,理解UML的概念,并能按照给定的接口和输入输出规范编写代码。
第二个题目要求创建一个能输出英文字母表的类。通过输入数字1或2来决定输出大写字母(A到Z)还是小写字母(a到z)。这里没有使用类,而是直接在`main`方法中实现了功能。 第三个题目涉及封装一元二次方程。类`...
本总结将探讨第二周学习的几个关键知识点:对象的上转型对象、final 和 static 关键字、方法的重载和重写,以及单例设计模式。 首先,对象的上转型对象是 Java 多态性的一种体现。它允许父类引用指向子类对象,从而...
- **第二次编译**:由 JIT 将 MSIL 编译成本地平台的可执行代码。 ##### 9. C# 的特点 - **简洁的语法**:简化编程工作。 - **完全面向对象设计**:所有的代码都是对象的一部分。 - **支持泛型**:增强代码复用性...
本次北邮操作系统第二次实验主要关注的是存储管理中的内存分配和页面置换算法。 **一、伙伴算法** 伙伴算法是一种内存管理策略,用于动态分配和回收内存。它将内存空间划分为不同大小的块,每个块都有一个伙伴,其...
在第一个核心代码中,创建了一个 `Vehicle` 对象 `v`,设置了品牌和型号,然后通过对象调用成员函数和类方法进行操作。第二个核心代码中,定义了抽象类 `Vehicle` 及其子类 `Car` 和 `Airplane`,并使用 `map` 函数...
2. 第一次输出结果为 `8`,第二次输出结果为 `100`。这是因为 `B` 类的方法 `f` 修改了 `A` 类实例的 `x` 属性。 3. 输出结果为 `-300`。`setX` 方法并没有改变 `x` 的值,而 `setY` 方法成功改变了 `y` 的值,因此...
- **关系**:类定义了对象的结构和行为,而对象则是具体的存在。 #### 5. 装饰器的概念 - 装饰器是一种特殊类型的函数,用于修改其他函数的功能或行为,不改变其原始签名。 #### 6. 面向对象分析、设计和编程的...
内部的用户数组通过第二次映射转化成User对象。 在压缩包中的"WHBKRequestDataTool"可能提供了一种自动化的方式来处理这种复杂的转换,使得开发者无需手动编写这样的转换代码。这类工具通常会提供一个方法,接收...
### Thinking in Java 自学笔记——第二章 一切皆对象 #### 重要概念解析 ##### 2.1 用引用操纵对象 在Java中,一切都被视为对象,这意味着无论是字符串、数字还是其他数据类型都可以被视为对象来进行操作。当...
总结以上内容,本文档对面向对象的制造业CAD多版本二次开发与移植提供了详细的指导和实践案例,特别是在多版本软件环境中如何保持开发效率和移植的便捷性。通过分析和实践,本案例成功找到了一种能够适应不同CAD版本...
本文将详细讨论这些主题,特别是在上下文中提到的"2017310302_第二次_徐茂宾1"相关的知识。 首先,我们来看编译器。编译器是将源代码(程序员编写的高级语言)转换为目标代码(计算机可执行的机器语言)的软件。...
总结来说,面向对象技术提供了一种强大的工具,通过类和对象的概念,以及封装和继承的机制,使得软件开发能够更好地反映现实世界的复杂性,增强代码的可读性、可扩展性和可维护性。理解并熟练应用这些概念是成为一名...
第二次工业革命始于19世纪70年代,持续到20世纪初,这次革命以电力的广泛应用、内燃机和新交通工具的创新、通讯手段的发明及化学工业的建立为标志。 2. 第三次科技革命: - 起兴时间:20世纪四五十年代。 - 兴起...
本次课程旨在让学生深入理解第二次工业革命的关键成果及其对人类社会产生的深远影响。学生需要掌握以下几个核心知识点: 1. **第二次工业革命的主要成果**:了解19世纪中后期至20世纪初的一系列科技突破,如电磁...
本案例中涉及到了`Point1f`, `Point2f`, `CyclePoint`, `LinePara`, `Cycle`, 和 `GetPoint`等结构体和类的设计。 - **`Point1f`**:表示两点坐标,用于定义一条线段。 - **`Point2f`**:表示二维平面上的一个点。...