`
蓝色幻想
  • 浏览: 6031 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
社区版块
存档分类
最新评论

类和对象

    博客分类:
  • java
 
阅读更多

       类是抽象的概念,而对象是具体的的概念。类是对象的抽象化,对象则是类的具体化。

       了解了类和对象后,做一个简单的奥特曼打小怪兽的练习。要做奥特曼打小怪兽,首先要定义三个类,一个用于描述奥特曼的特征和行为,一个用于描述小怪兽的特征和行为,还有一个就是来实现打斗的类。确定了所需的类后,就可以开始分析每个类所需要实现的功能:奥特曼类和小怪兽类主要是用于存储各自的“信息”(即属性和成员函数),打斗的类用于实现奥特曼和小怪兽重复相互攻击,直到一方血量为0时,输出另一方获胜。有了这些就可以着手进行程序的编写了。

       在编写过程中难免会出现错误:


 

错误:奥特曼类的属性name在怪兽类中不可见

原因:奥特曼类的属性是私有(private)属性,在怪兽类中是无法访问的

扩充:java中的访问修饰符有四种:

          公有的(public):只要在同一个项目中就可以被访问

          私有的(private):只能在当前类中才可以被访问

          受保护的(protected):只要在同一个包下或者存在继承关系的子类中可以被访问

          默认的:只要在同一个包(文件夹)下就可以被访问

解决措施:增加一个存者setter,一个传者getter。它们作为与外界进行沟通的桥梁,使其他类可以通过此方法访问该类中私有属性而不会报错。



代码如下:

//定义一个奥特曼类


public class Aoteman {
 

//属性
 

private String name;


private int blood;


//构造方法
 

public Aoteman(String name,int blood){


  this.name=name;
  this.blood=blood;
 

}
 

public void setName(String name){


  this.name=name;


 }
 

public String getName(){


  return name;


 }
 

public void setBlood(int blood){


  this.blood=blood;


 }


public int getBlood(){


  return blood;


 }
 

//打的方法


 public void play(Monster mon){


  System.out.println(name+"打了"+mon.getName()+","+mon.getName()+"的血量减少了"+20);
  mon.setBlood(mon.getBlood()-20);
  System.out.println(mon.getName()+"的血量剩余"+mon.getBlood());
 }

 

//定义一个怪兽类


public class Monster{


 //属性


 private String name;

 private int blood;


 //构造方法


 public Monster(String name,int blood){


  this.name=name;


  this.blood=blood;

}


 public void setName(String name){


  this.name=name;


 }
 

public String getName(){


  return name;


 }
 

public void setBlood(int blood){


  this.blood=blood;


 }
 

public int getBlood(){


  return blood;


 }


 //打的方法


 public void play(Aoteman ao){


  System.out.println(name+"打了"+ao.getName()+","+ao.getName()+"的血量减少了"+15);
  ao.setBlood(ao.getBlood()-15);
  System.out.println(ao.getName()+"的血量剩余"+ao.getBlood());
 }

}

 


//定义一个打斗的类


public class Play {


    //主函数 
 public static void main(String[] args) {


  //实例化对象


  Monster mon=new Monster("小怪兽",200);


 
 Aoteman ao=new Aoteman("奥特曼",150);


  
  while(ao.getBlood()>0&&mon.getBlood()>0){
 

  ao.play(mon);


   if(mon.getBlood()<=0)


    System.out.println(ao.getName()+"赢了");


   else


    mon.play(ao);


   if(ao.getBlood()<=0)


     System.out.println(mon.getName()+"赢了");


  }


  
 }

}

运行结果如下:

奥特曼打了小怪兽,小怪兽的血量减少了20

小怪兽的血量剩余180

小怪兽打了奥特曼,奥特曼的血量减少了15

奥特曼的血量剩余135

奥特曼打了小怪兽,小怪兽的血量减少了20

小怪兽的血量剩余160

小怪兽打了奥特曼,奥特曼的血量减少了15

奥特曼的血量剩余120

奥特曼打了小怪兽,小怪兽的血量减少了20

小怪兽的血量剩余140

小怪兽打了奥特曼,奥特曼的血量减少了15

奥特曼的血量剩余105

奥特曼打了小怪兽,小怪兽的血量减少了20

小怪兽的血量剩余120

小怪兽打了奥特曼,奥特曼的血量减少了15

奥特曼的血量剩余90

奥特曼打了小怪兽,小怪兽的血量减少了20

小怪兽的血量剩余100

小怪兽打了奥特曼,奥特曼的血量减少了15

奥特曼的血量剩余75

奥特曼打了小怪兽,小怪兽的血量减少了20

小怪兽的血量剩余80

小怪兽打了奥特曼,奥特曼的血量减少了15

奥特曼的血量剩余60

奥特曼打了小怪兽,小怪兽的血量减少了20

小怪兽的血量剩余60

小怪兽打了奥特曼,奥特曼的血量减少了15

奥特曼的血量剩余45

奥特曼打了小怪兽,小怪兽的血量减少了20

小怪兽的血量剩余40

小怪兽打了奥特曼,奥特曼的血量减少了15

奥特曼的血量剩余30

奥特曼打了小怪兽,小怪兽的血量减少了20

小怪兽的血量剩余20

小怪兽打了奥特曼,奥特曼的血量减少了15

奥特曼的血量剩余15

奥特曼打了小怪兽,小怪兽的血量减少了20

小怪兽的血量剩余0

奥特曼赢了
  • 大小: 2.1 KB
  • 大小: 2.6 KB
  • 大小: 5.6 KB
分享到:
评论

相关推荐

    Python面向对象之类和对象实例详解

    本文实例讲述了Python面向对象之类和对象。分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态); 属性一般是一个个变量;方法是一个个函数; #类的属性 就是 类变量 #...

    JAVA 教学 PPt(接口,类和对象尤其详尽)

    【JAVA 教学 PPt(接口,类和对象尤其详尽)】 在Java编程语言中,接口、类和对象是核心概念,对于理解和构建复杂的软件系统至关重要。让我们深入探讨这些主题。 1. 接口(Interface): Java中的接口是一种完全...

    类和对象object.zip

    在编程世界中,Java是一种广泛使用的面向对象的编程语言,其核心概念之一就是"类"和"对象"。本教学资料包"类和对象object.zip"聚焦于Java中的这一关键主题,旨在帮助S1课程的学生深入理解程序逻辑,通过实例教学、...

    Java-面向对象设计-类和对象.docx

    Java面向对象设计类和对象 Java面向对象设计类和对象是面向对象程序设计的基础,它将现实世界模型自然延伸到程序设计中。类和对象是面向对象设计的核心概念,类描述对象的属性和行为,对象是类的实例,是一个实实在...

    类和对象PPT

    类和对象的定义类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。对象是具有类类型的变量

    第六章 类和对象(计算机等级考试二级C++).pdf

    在深入探讨C++编程语言的面向对象编程特点时,我们需要理解类和对象的相关概念。C++是一种支持面向对象的编程语言,而面向对象编程(OOP)的中心思想是将数据以及与数据相关的操作封装在一起,形成对象,以解决特定...

    java基础-类和对象的定义

    通过书籍,个人整理的java基础之类的对象的定义的有关知识点

    JAVA类与对象及数组习题

    JAVA类和对象及数组是JAVA编程语言的基础概念。下面是关于JAVA类和对象及数组的习题,涵盖了构造方法、继承、多重继承、变量声明、数组初始化等方面的知识点。 1. 构造方法的调用方式: 构造方法是类的特殊方法,...

    java类和对象练习题.docx

    java类和对象练习题.docx

    JAVA类和对象

    对JAVA学习中的类和对象进行详细介绍,很好的编程学习资料

    C++类和对象上机练习

    C++类和对象上机练习,相当好的东西,值得参考!希望对你有用!

    c++ 类和对象课件

    这个是c++类和对象的课件,与大家分享下

    谭浩强c++类和对象

    综上所述,谭浩强的《C++类和对象》主要讲解了面向对象程序设计的基本概念,包括对象、类、封装性、信息隐蔽、抽象、继承和多态性。通过理解和掌握这些概念,开发者能够更有效地设计和构建大型、复杂的软件系统。在...

    java中类和对象

    Java是一种面向对象的编程语言,它的核心概念之一就是“类”和“对象”。理解这两个概念是学习Java的基础,也是编写复杂程序的关键。 首先,我们来解释什么是“类”。在Java中,类可以看作是创建对象的蓝图或者模板...

    java编程中的类和对象的详细介绍

    Java编程中的类和对象是面向对象编程的核心概念。面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它基于“对象”的概念,强调数据和操作数据的方法结合在一起,提供更好的代码组织和可维护性。 ...

    C++ 课程 实验三 类和对象的高级应用 实验报告

    在这个C++实验报告中,我们关注的是类和对象的高级应用,这涵盖了构造函数、复制构造函数、析构函数、静态成员变量、静态成员函数以及友元函数等核心概念。 首先,构造函数是用于初始化对象的特殊函数。在这个实验...

    C++:类和对象思维导图

    这是关于C++类和对象特性的思维导图,更加详细的解释请查看我的个人博客

    类和对象的核心概念new1---马克-to-win Java视频

    类和对象的核心概念new1---马克-to-win java视频 马克Java社区 马克towin

    计算机程序设计 C++ 面向对象 第一讲 类和对象

    本讲义主要介绍了C++中面向对象编程的基础,包括类和对象的概念,以及如何利用它们来实现面向对象设计。 首先,类是面向对象编程的核心,它是对象的蓝图或模板。在C++中,类定义了一组数据(属性或成员变量)和操作...

    Java程序基础类和对象的关系2022优秀文档.pptx

    Java程序基础类和对象的关系 Java程序基础类和对象的关系是Java程序设计的核心概念之一。类和对象之间存在着紧密的关系,类是对象的抽象,对象是类的具体化和实例化。 类是对象的抽象 在Java程序设计中,类是一个...

Global site tag (gtag.js) - Google Analytics