类vs 对象
在编程语言的学习中我们经常提到的通常会使类和对象,在初期学习c语言或者是c++的同学或许还没体会到这一点,因为就算是c++也只是部分面向对象化语言,但是在java语言上分析的话,java是完全面向对象化的语言,可不要小看这一个“完全”字眼,因为在我们初次与计算机交流时,最简单的hello word 就是用的public static void main(String 【】args【】)
谁说主函数就不是一个类了??
那 生活中有那些是对象?
对象:具体的某一个物体或者具体的某一个事物就是一个对象。
举例:
某一台电脑
特征:颜色,大小,型号,价格,材质,重量,品牌,...
行为(功能,用途):打字,计算,开机,连网,玩游戏,...
某一件衣服
所有你能想象到的都可以化归为类,“人以类聚,物以群分”脑海中突然冒出这一句话,所以在java中类的定义必须准确。
类和对象的关系是:类是抽象的,对象是实在的。
类是对象对属性和方法的抽象定义
this 关键字的陷阱:
在java中调用当前类的对象只用this.属性或方法即可
但是:
在C语言以及C++中相当于是一个指针,调用当前类的对象需要*this.属性及方法,这个陷阱曾经困扰了我很长时间,所以同时学习两门这种语言的同僚们要注意。
接下来就是用类与对象实现拳皇这个经典游戏的具体过程:
游戏很简单,到那时缺憾也是不少,比如说至进行了4人对战,而标准的拳皇应该是六人,三人各属一方。
再者未实现防御功能,以及积累一定攻击力可以放大招的情况,这不得不说是一种遗憾,希望在接下来的深入学习中可以实现。
package lesson1302; import java.util.*; public class King { private String name;//定义名字属性 private int power;//定义攻击力属性 private int blood;//定义血量属性 public King(String name,int power,int blood){//给构造函数赋值 this.name=name;//表示将传入的name值给当前调用构造函数的对象的name属性值 this.power=power;//表示将传入的power值给当前调用构造函数的对象的power属性值 this.blood=blood;//表示将传入blood值给当前调用构造函数的对象的blood属性值 } public void gongji(King a){//定义攻击方法 Random random = new Random(); //被攻击方失去血量 a.blood-=this.power;//被攻击方失去血量 System.out.println(this.name+"攻击了"+a.name+" 攻击力为"+this.power);// System.out.println(this.name+"剩余血量:"+this.blood+" "+a.name+"剩余血量为"+a.blood); if(a.blood<0){//判断胜负 System.out.println("THE KO-King IS+"+this.name); } else{ if(this.blood<0)//判断胜负 System.out.println("THE KO-King IS"+a.name);//输出赢者 } } public static void main(String[] args){//主函数入口 King king1;//定义第一个对象 king1=new King("暴走列昂娜",500,1000);//设置暴走列安娜的的攻击力以及血量 King king2; king2=new King("不知火舞",300,1200);//设置暴走不知火舞的攻击力以及血量 King king3; king3=new King("草雉京",800,1300);//设置暴走草雉京的的攻击力以及血量 King king4; king4=new King("二阶堂红丸",700,1000);//设置暴走二阶堂红丸的的攻击力以及血量 while(king1.blood>0&&king3.blood>0){//判断输赢 king1.gongji(king3);//实行循环攻击 king3.gongji(king1); } if(king1.blood>0){//假定king1赢了 while(king1.blood>0&&king4.blood>0){//那么king1暴走列安娜要和第二阵营的 //那么king1暴走列安娜要和第二阵营的king4二阶堂红丸决斗 king1.gongji(king4); king4.gongji(king1); } if(king1.blood>0){ System.out.println("第一阵营胜利!!!");//如果暴走列安娜赢了,那么第一阵营就胜出 } if(king4.blood>0){ System.out.println("平局!!!");//如果king4赢了,那就是平局 } } else{ //假定king3赢了 while(king3.blood>0&&king2.blood>0){//那么king3就要和king2决斗 king3.gongji(king2);//互相攻击 king2.gongji(king3);//互相攻击 } if(king3.blood>0){ System.out.println("第二阵营胜利!!!");//如果king3胜利了,那么第二阵营就胜出 } if(king2.blood>0){ System.out.println("平局!!!");//如果king2赢了,那么就是平局 } } } }
相关推荐
- **类定义**: C++中用来描述一类对象的共同特征和行为的概念。它是一个抽象数据类型,包含了数据成员和成员函数。 - **成员函数**: 定义在类中的函数,用于实现类的行为。 - **数据成员**: 定义在类中的变量,用于...
JAVA类与对象及数组习题 JAVA类和对象及数组是JAVA编程语言的基础概念。下面是关于JAVA类和对象及数组的习题,涵盖了构造方法、继承、多重继承、变量声明、数组初始化等方面的知识点。 1. 构造方法的调用方式: ...
类是创建对象的根源,它定义了同一类对象共有的属性和方法。类中的属性(Attribute)可以理解为对象所拥有的变量,而方法(Method)则是对象可以执行的操作或行为。 对象(Object)是类的实例(Instance),是具有...
本章的"【第5章:面向对象基础】_面向对象、类与对象的定义"将详细讲解面向对象编程的核心概念,包括如何定义类、创建对象,以及如何利用继承和多态性设计高效的程序。通过学习,你将能更好地理解和应用Java的面向...
在本实验“Java类与对象”中,我们深入学习了Java面向对象编程的基本概念和实践。面向对象编程(OOP)是一种程序设计思想,它强调数据和操作数据的方法结合在一起,形成一个独立的对象,以此来组织和管理代码。与...
类与对象.ppt 讲的很具体。主要涉及基础概念,构造函数,析构函数等
C#是一种面向对象的编程语言,其核心概念之一就是类与对象之间的关系。类是对象的模板或蓝图,它定义了创建对象的属性和方法。对象则是类的具体实例,是实际存在的实体。 在C#中,创建类意味着定义了一组属性和方法...
c++类与对象实习举例。
c++ 习题 4类与对象.doc (选择 解答 填空)
在编程世界里,类与对象是面向对象编程(OOP)的核心概念,它们为我们提供了抽象、封装、继承和多态等重要特性。本教程“类与对象的分析与设计”将深入探讨如何从实际问题中抽离出这些概念,以便进行高效、结构化的...
常对象(Const Object)是指声明为const的类对象,它的成员函数不能修改数据成员。常成员函数(Const Member Function)是在类定义中声明为const的函数,它承诺不修改对象的状态。 最后,对象在内存中的分布情况...
在Java编程语言中,"类"与"对象"是核心概念,它们构成了面向对象编程的基础。本文将深入探讨这两个概念,以及如何在实际编程中应用它们。 首先,我们需要理解"类"。在Java中,类可以看作是蓝图或者模板,它定义了一...
在Java编程语言中,"类与对象教学(1)"是一个重要的学习主题,它涵盖了面向对象编程的基本概念,对比了面向对象编程(OOP)与面向过程编程(POP),并深入探讨了类、对象以及如何在实际开发中创建和使用它们。...
### Java类与对象详解 #### 一、面向对象编程的核心理念 面向对象编程(OOP)是一种编程范式,其核心在于将现实世界中的事物抽象为计算机中的对象,通过对象来模拟和处理复杂的问题。这一理念源于试图让编程更加...
在编程世界中,类与对象是面向对象编程(OOP)的核心概念。面向对象编程是一种设计和实现软件的方法,它基于“对象”的概念,而这些对象则是类的实例。类可以看作是创建对象的蓝图,它定义了对象的数据属性和行为。...
【Java程序设计】类与对象是Java编程的核心概念,它们是面向对象编程的基础。类是对具有相似属性和行为的事物的抽象,而对象是类的实例,代表着具体存在的个体。 在【描述】中,该教案是为了2021年的高校教师资格证...
C++ 类与对象练习题带答案 本资源是一个 C++ 编程语言的练习题集,涵盖了类与对象的基础知识。练习题分为选择题和填空题两部分,涵盖了类的定义、对象的声明、成员函数、访问权限、继承等关键概念。 选择题 1. ...