我们知道编程语言主要分为两大类:面向过程和面向对象
面向过程如比较熟悉的c语言,面向对象有java,python,c++等。
对于只接触过面向过程的如何理解类与对象这一概念呢?
一:类与对象中的概念
拿生活中的事物来举例,比如说小明的水杯,小明的笔记本电脑等这类具体化的事物都称为对象。
而每一个对象他所具有很多属性,属性主要分为两方面
1:特点
2:功能
如小明的水杯
特点:黑色,玻璃材质,圆柱形等
功能:保温,充当容器盛放水。
像这样具有特定特征和功能的就叫做对象。
而类则是把具有相同特点(属性)和功能/行为(方法)的对象,归为一个类别。
比如水杯,电脑。所有水杯和电脑的主体特征和功能大致相同,所以叫做类,而每一个人所拥有的不同的水杯不同的电脑,其某些特征会不尽相同,这就是每一个对象。
二:java中类与对象的创建
类的创建:关键字 class
格式: public class 类名{
}
类的属性(即可理解为特点):
格式: public 属性类型 属性名;
类的方法(可以理解为类的功能)
格式:public 方法返回值类型 方法名(参数){
}
对象的创建:关键字new
格式:类名 对象名=new 类名();
对象属性的赋予:
格式:对象名.属性名
对象方法的实现:
格式:对象名.方法名(参数值);
三:编程实例
想必很多人玩过LOL,我们假设这样一个情景,亚索和卡牌在中路对线,两人依次攻击对方,知道某一方血量减为0停止。
从这个情景中可以看出我们需要两个对象,由于需要相互攻击,则需相互传输对方的数据,所以我们需要创建两个类,分别代表亚索和卡牌。
//亚索
public class hero {
public int blood;
public String name;
public int strength;
//攻击
public void fight(hero2 kapai){
kapai.blood=kapai.blood-strength;
System.out.println(kapai.name+"受到了"+strength+"伤害,"+kapai.name+"剩余血量为"+kapai.blood);
}
}
``
//卡牌
```java
public class hero2 {
public int blood;
public String name;
public int strength;
//攻击
public void fight(hero yasuo){
yasuo.blood=yasuo.blood-strength;
System.out.println(yasuo.name+"受到了"+strength+"伤害");
}
}```
```java
public class main {
public static void main (String[] args){
//创建对象
hero yasuo =new hero();
hero2 kapai =new hero2();
//给对象赋予属性
yasuo.name="亚索";
yasuo.blood=60;
yasuo.strength=8;
kapai.name="卡牌";
kapai.blood=50;
kapai.strength=6;
//运用循环进入战斗
while(true){
yasuo.fight(kapai);
if(kapai.blood<=0)
{
//血量低于零战斗结束
System.out.println("战斗结束"+kapai.name+"死亡");
break;
}
kapai.fight(yasuo);
if(yasuo.blood<=0)
{
//血量低于零战斗结束
System.out.println("战斗结束"+yasuo.name+"死亡");
break;
}
}
}
}```