类和对象

来源:互联网 发布:南昌大学网络教学凭条 编辑:程序博客网 时间:2024/06/05 07:50

一、类

  1、类的组成

类是由两个部分组成:属性和方法


属性是由对象的特征进行定义的

以学生类Student为例,属性有姓名,学号,成绩......

方法分为两类:普通方法和构造方法

普通方法是由对象的行为(或功能定义的)


  2、类的格式

 说及类的格式,首先要先说明类的修饰符,java中类的修饰符分为四个:private、默认的、protected、public

public class 类名{

                 //属性的格式

                 访问修饰符  数据类型  属性名;

                //普通方法的格式

                访问修饰符  返回值类型  方法名(数据类型 参数名,......){

                                //代码  

                  }

                 //构造方法的格式

                 访问修饰符  构造方法名  (数据类型 参数名,......) {

                             //代码

                  }

}

   3、 构造方法与普通方法的区别:

                     构造方法中的方法名必须与类名相同,没有返回值类型

                      java中会默认提供类一个无参数的构造函数

                      构造方法用于1、实例化对象,    2、传递参数


下面以回合制对战游戏为例进一步说明:

对于每个角色建立相应的类,

声明属性(名字,血量,攻击力)

private String name;private int blood;private int ATK;
声明方法 

public void setName(String name){this.name=name;}public String getName(){return name;}public void setBlood(int blood){this.blood=blood;}public int getBlood(){return blood;}public void setATK(int ATK){this.ATK=ATK;}public int getATK(){return ATK;}

这里使用了this关键字

         当属性名与参数名相同时使用this关键字加以区分,有this关键字的则为属性名,没有的则为参数名.


定义攻击方法,当角色为多个时,即当Role攻击Role2,Role2失败后,Role继续攻击Role3,最初定义了一个方法考虑到参数个数及其攻击顺序

然而设置两个方法则会简单清晰很多,这时用到了方法的重载。

//Role攻击Role2的方法  Role2掉血    public void attack(Role2 r2){    if(r2.getBlood()>0)        r2.setBlood(r2.getBlood()-ATK);    }  //Role攻击Role3的方法  Role3掉血    public void attack(Role3 r3){    if(r3.getBlood()>0)        r3.setBlood(r3.getBlood()-ATK);    }

使用方法重载的条件:

    1、方法名必须相同

    2、方法的参数不同(个数,类型,顺序)


类Role2,类Role3与类Role定义属性与方法的方法相同

最后定义主函数Manager

实例化对象并调用

                Role r=new Role();r.setName("奥特曼");r.setBlood(30);r.setATK(5);Role2 r2=new Role2();r2.setName("小怪兽");r2.setBlood(20);r2.setATK(4);Role3 r3=new Role3();r3.setName("Boss");r3.setBlood(20);r3.setATK(6);

实例化关键字为new

        格式为    类名 对象名=new 类名( );

                        类名  构造方法名=new 构造方法名(参数值,....);

调用属性和方法的格式:

                对象名.属性名;

                对象名.方法名(参数值,.... );


刚刚开始学习,在学习的过程中会再逐步完善...



0 0
原创粉丝点击