从奥特曼和小怪兽的决斗中分析类和对象

2024-06-10 00:58

本文主要是介绍从奥特曼和小怪兽的决斗中分析类和对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先,我们先明确什么是类,当然了奥特曼和小怪兽就属于类的范畴。它们各自属于某一事物的抽象集合,不是具体的东西,而是一个高度概括了的抽象概念。所有的类都可以是由生活中的模型演化而来,因此所有类其实都是源于生活,面向对象编程其实就是模拟现实生活。
奥特曼打小怪兽虽然看似不是源于生活,但是其实它只是把两个人或是两个动物搏斗的场景扩大了一些罢了。因此说它还是离不开生活。在java中,类可以作为一种自定义的数据类型,因此在调用方法时能够作为参数进行传递。
下面我们再来看对象,对象是类的具体化,也就是奥特曼这个类的具体,比如说迪迦奥特曼,还有赛文奥特曼,就是奥特曼类的具体,因此迪迦奥特曼和赛文奥特曼是对象。所以它们具有了现实的实际意义,就比如它们有了自己的名字叫做某某奥特曼,这是他们自己私有的属性,别的任何一个物体都是无法代替的,它就是唯一的我们要寻找的那个对象。一个类可以创建多个对象,但是一个对象只可能是源于一个类。
类是不占空间的,就比如说奥特曼这个概念是在人们的脑海之中存在的,它不占据任何的储存空间,具体一点说就是我们的地球空间,然而当地球遇到某某怪兽的时候,某某奥特曼出现了,想一想它会怎么样?不用多说,它必然会占据储存空间,也就是地球表面的面积,怪兽当然也是如此了嘛。
说了半天的理论知识,下面我们的具体一些来学习类和对象了:
类的组成:1.属性 2.方法
类的基本格式
public class 类名 {
private 数据类型 属性名;

public 返回值数据类型 方法名(数据类型 参数名,...){
//方法体
}
}
下面我们把内容再具体一些,还是采用熊哥的那个例子
1.场景:任振宇去考高数,考60分或60分以上,学分加1;考59分一下,学分不加。
特征:姓名,学分
行为:考试(高数)
高数
特征:课程名称,分数
public class Ren{
//定义他的属性
private String Name
private int score
//定义设置属性值得方法
publi void setName(String n){
name=n;
}
//设置得到名字的方法
public void setName(){
return Name;
}

2.实例化对象和调用方法的格式
实例化对象的关键字是:new
格式:
类名 对象名 = new 类名();
Student abc = new Student();

调用方法和属性的格式:
对象名.方法名(参数值,...);
对象名.属性;

abc.setName("任振宇");
String name = abc.getName();
abc.test("高数");

下面是奥特曼打小怪兽的代码:
//新建一个小怪兽类
public class Master{
//定义小怪兽的私有属性
private String name;
private int blood;
//定义设置姓名的方法
public void setName(String n){
name=n;
}
//定义得到姓名的方法
public String getName(){
return name;
}
//定义设置血量的方法
public void setBlood(int b){
blood=b;
}
//定义得到血量的方法
public int getBlood(){
return blood;
}
//定义打的方法,没打一次对方掉一点血
public void bit(Man man){
man.setBlood(man.getBlood()-1);
System.out.println(man.getName()+"被"+name+"打了,剩余血量是"+man.getBlood());
}

}
//新建一个奥特曼类
public class Man{
//定义奥特曼的私有属性
private String name;
private int blood;
//定义设置姓名的方法
public void setName(String n){
name=n;
}
//定义得到姓名的方法
public String getName(){
return name;
}
//定义设置血量的方法
public void setBlood(int b){
blood=b;
}
//定义得到血量的方法
public int getBlood(){
return blood;
}
//定义打的方法,每打一次对方掉一点血
public void bit(Master mas){
mas.setBlood(mas.getBlood()-1);
System.out.println(mas.getName()+"被"+name+"打了,剩余血量是"+mas.getBlood());
}

}
//定义一个打类也就是入口主函数所在类
public class Batter{
public static void main(String [] args){
//实例化对象
Master mas=new Master();
Man man=new Man();

//设置奥特曼和小怪兽的姓名属性
man.setName("奥特曼");
mas.setName("小怪兽");
//设置奥特曼和小怪兽的血量属性
man.setBlood(6);
mas.setBlood(7);
while(man.getBlood()>0&&mas.getBlood()>0){
//分别调用打的方法
man.bit(mas);
if(mas.getBlood()<=0){
System.out.println(man.getName()+"赢了");
}
mas.bit(man);
if(man.getBlood()<=0){
System.out.println(mas.getName()+"赢了");
}
}

}
}

这篇关于从奥特曼和小怪兽的决斗中分析类和对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1046801

相关文章

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

python-nmap实现python利用nmap进行扫描分析

《python-nmap实现python利用nmap进行扫描分析》Nmap是一个非常用的网络/端口扫描工具,如果想将nmap集成进你的工具里,可以使用python-nmap这个python库,它提供了... 目录前言python-nmap的基本使用PortScanner扫描PortScannerAsync异

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

Oracle数据库执行计划的查看与分析技巧

《Oracle数据库执行计划的查看与分析技巧》在Oracle数据库中,执行计划能够帮助我们深入了解SQL语句在数据库内部的执行细节,进而优化查询性能、提升系统效率,执行计划是Oracle数据库优化器为... 目录一、什么是执行计划二、查看执行计划的方法(一)使用 EXPLAIN PLAN 命令(二)通过 S

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置