Java基础9-java的类、对象和方法

一、什么是类、对象和方法?

1.类

类用官方解释为:类是一个模板,它描述一类对象的行为和状态。类本身就是一种抽象的概念(以后我们还会介绍抽象类)。

举个例子:DOTA中有许多英雄。这些英雄(无论是敏捷还是力量型,无论是天辉还是夜魇)都可以统称为DOTA英雄,DOTA英雄就是一个大类。当然,我们还可以继续划分,比如力量型是一类,敏捷型是一类。天辉是一类,夜魇是一类。

2.类的属性或状态

通过上边的例子,我们发现英雄都有名字、血量、魔法值、技能个数、移动速度等等。这些就是我们这一类的属性或状态。当然,力量型或敏捷型英雄可能有不同的属性,这就涉及到了继承,比如天辉力量型英雄有天辉英雄的属性,而无论天辉还是夜魇都有DOTA英雄的属性,具体在以后再细说。

//创建了一个公共类,类名叫DOTAHero
//类的声明格式
/*
public class 类名{}
class 类名{}
*/
public class DOTAHero{
    //DOTAHero有姓名、血量、技能个数、移动速度等这些属性
//属性定义格式:数据类型 属性名
//数据类型可以是基本数据类型也可以是引用数据类型,String就是引用数据类型
String name; float HP; int skill; int moveSpeed; }

3.对象

对象是类的一个实例,例如

我们划分了DOTA英雄这个类,那么我们就可以创造一个实实在在的英雄出来,比如我们创建一个英雄叫剑圣,剑圣这个英雄就是DOTA英雄这个类的一个实例化对象。

创建好剑圣这个英雄后我们就可以给他设置名字、血量等属性,叫做初始化,如果我们不设置,那么他的值默认为0或空。

public class DOTAHero {
String name;
int skill;
float HP;
int moveSpeed;
public static void main(String[] args) { //对象的创建用new关键字 //格式: 类名 + 对象名 = new 类名(); DOTAHero Hero=new DOTAHero(); //我们给创建的这个英雄起了个名字叫剑圣 Hero.name="剑圣"; //剑圣的血量是600,技能是4个,移动速度是110; Hero.HP=600; Hero.skill=4; Hero.moveSpeed=110; //如果我们不设置这些具体的值,那么这些属性的默认值为0或null System.out.println("英雄名:"+Hero.name+",血量:"+Hero.HP+",技能个数:"+Hero.skill); } }

那么JVM是怎么来给这个执行的呢?

4.方法

方法就是对象可以执行的动作,它是为了执行一个功能而编写语句的集合。

比如:我们创建的这个剑圣可以攻击,可以释放技能,可以升级,可以买装备,这些就叫做方法。

public class DOTAHero {
String name;
int skill;
float HP;
int moveSpeed;
    public static void main(String[] args) {
        DOTAHero Hero=new DOTAHero();
        Hero.name="剑圣";
        Hero.HP=600;
    }
//这就是声明了一个攻击的方法
/*
方法的声明格式:
public static 返回值类型 方法名称(参数列表){
    程序语句;
    [return[返回值];]
}
返回值类型必须相同
如果没有返回值声明时用void
*/
public static void attack() {
//这就是一个无返回值,无参数的方法
    System.out.println("普通攻击");
     }
}

5.方法的调用

方法可以在主方法中调用

public class DOTAHero {
String name;
int skill;
float HP;
int moveSpeed;
    public static void main(String[] args) {
        DOTAHero Hero=new DOTAHero();
        Hero.name="剑圣";
        Hero.HP=600;
//调用attack方法
        attack();
    }
public static void attack() {
    System.out.println("攻击");
}
}

 

原文地址:https://www.cnblogs.com/LuckyGJX/p/8729310.html