面向对象,类,对象?
前言:只有光头才能变强!
一:面向对象
当我们初学java时,扑面而来的一个词就是面向对象,那什么是面向的对象呢 ?
在说面向对象之前,大家先要知道对象是什么,如果你脑子里第一想法就是自己的女朋友(or男朋友(#.#)),那也没错hh。
比如说一个女生打lol很菜,但是又很想上分,这时候她可以找一个打lol很厉害的对象,来帮她打,这样她就可以实现自己上分的目的。
这样一说,大家应该对面向对象有了初步的认识,面向对象就是找一个指定的对象来帮我们实现某件事。
此时,我们再引入面向过程的概念,来一起对比理解,就会有更深的体会,还是拿打lol来说吧:
面向过程:当我们想打英雄联盟想上分时,需要这样一个过程:想上分—>先学会基本操作—>然后要了解英雄技能属性—>再看视频教学—>然后自定义练习—>匹配模式练习—>最再去排位—>实现上分。
面向对象:而如果我们使用面向对象来实现事情就会变得简单,想上分—>找代练(对象)—>实现上分。
说到这里,也就能体现出面向对象的三大好处:
1:思想行为习惯更符合我们的实际生活。
2:使复杂的问题简单化。
3:使我们从执行者变成了指挥者。
二:类和对象
类:就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。
对象:知道什么是面向对象,想必对象的概念就不难理解了,对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。例如你的女朋友是一个对象,你的电脑是一个对象…
下面,我们再通过lol来说一下什么是类和对象:
lol中有很多英雄(对象),比如小鱼人,男刀,EZ,还有团战可以输,必须打死的小提莫…
这些英雄,都有一些共同的属性,比如说:名字,生命值,护甲值,移动速度…
这样我门就可以构造一个东西,叫做类,代表英雄这一种事物:
类:英雄(Hero)
属性:名字,生命值,护甲值,移动速度…
class Hero {
String name; //名字
float hp; //血量
float armor; //护甲
int moveSpeed; //移动速度
}
利用类创建对象:
我们可以将类看作是一个模板,根据这样一个模板,可以创建一个个的具体的英雄,一个个具体的英雄,就是一个个的对象。
我们可以通过 new Hero() ,也就是new关键字是java中创建一个英雄对象的意思。
小鱼人和男刀就是英雄类具体化出来的一个英雄对象。
我们用代码简单体现一下:
public class Hero {
String name; //名字
float hp; //血量
float armor; //护甲
int moveSpeed; //移动速度
public static void main(String[] args) {
Hero feizi = new Hero();
feizi .name = "菲兹";
feizi .hp = 650.0f;
feizi .armor = 30f;
feizi .moveSpeed = 350;
Hero tailong= new Hero();
tailong.name = "泰隆";
tailong.hp = 720f;
tailong.armor = 39f;
tailong.moveSpeed = 360;
System.out.println("名字:"+feizi .name+" 血量:"+feizi .hp+" 护甲:"+feizi .armor+" 移动速度:"+ feizi .moveSpeed );
System.out.println("名字:"+tailong.name+" 血量:"+tailong.hp+" 护甲:"+tailong.armor+" 移动速度:"+ tailong.moveSpeed );
}
}
输出结果:
今天的分享就到这里,大家可以自己多加练习加深理解!