类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赢了,那么就是平局 } } } }
相关推荐
php5 类与对象 个人总结与简单的例子,类与对象1. PHP 类与对象 2. PHP 类的继承 extends 关键字 3. PHP 构造方法 __construct() 4. PHP 析构方法 __destruct() 5. PHP final 关键字 6. PHP 类的接口 interface...
C++ 类与对象习题,都是入门知识,给初学者参考^-^
很好的题,希望能给大家一点点帮助。 本文件为“JAVA类与对象及数组习题”是题哦
对平面几何中的各种基本图形使用面向对象的设计方法建模,需要设计的类包括:点、直线、三角形、矩形、正方形、圆形、椭圆;设计这些类的数据域和方法;设计类与类之间的关系;使用这些设计的类进行基本的运算。
类与对象练习.pdf
主要内容包括程序设计基础知识、类与对象的基本概念、继承与多态、输入输出流,以及泛型程序设计。此外,本教材还介绍了一些常用数据结构基础知识,使得读者学习本书后,能够解决一些简单的实际问题。整套教材语言...
类与对象.ppt 讲的很具体。主要涉及基础概念,构造函数,析构函数等
第3讲 面向对象—类与对象第3讲 面向对象—类与对象第3讲 面向对象—类与对象第3讲 面向对象—类与对象第3讲 面向对象—类与对象第3讲 面向对象—类与对象第3讲 面向对象—类与对象第3讲 面向对象—类与对象第3讲 ...
c++中类与对象的实验题目,对于初学者有很大的帮助
c++类与对象实习举例。
类与对象的基本概念 及实现代码
c++语言对类与对象的深刻理解!希望与大家分享!
讲述了C++中的类与对象的基本概念
3类与对象基础实验(一) zucc 浙江大学城市学院 java 2009级的
类与对象的定义和使用
JAVA类与对象及数组习题及答案.pdf
c++ 习题 4类与对象.doc (选择 解答 填空)
详细介绍了C++中类与对象的特点和应用,供初学者学习使用
入门练习题 趣学8.15类与对象
java面向对象、类与对象的定义笔记,是第5章节知识要点,很值得一看。