类和对象
来源:互联网 发布:南昌大学网络教学凭条 编辑:程序博客网 时间: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 构造方法名(参数值,....);
调用属性和方法的格式:
对象名.属性名;
对象名.方法名(参数值,.... );
刚刚开始学习,在学习的过程中会再逐步完善...
- 【面向对象】对象和类
- 面向对象--类和对象
- 面向对象(类和对象)
- 面向对象-类和对象
- 面向对象----类和对象
- 类和对象
- vfp对象和类
- 类和对象
- Chap02:类和对象
- 类、对象和方法
- C#类和对象
- 第一章 类和对象
- 类和对象
- 对象、类和结构
- 类和对象
- 类和对象
- 类和对象
- 类和对象
- Dr.Elephant用户指南 - 【Dr.Elephant系列文章-2】
- Java 对象流ObjectInputStream和ObjectOutputStream类
- [转] CocoaPods详解之----进阶篇
- css3的盒模型
- mongoDB add user in v3.0 问题的解决(Property 'addUser' of object admin is not a func)
- 类和对象
- DPL、CPL、RPL之间联系与区别
- 深入理解Java:注解(Annotation)--注解处理器
- 计算机视觉牛人博客和代码汇总(全)
- APP打包后上传遇到ERROR ITMS-90096解决办法
- 外键缺少索引引发的死锁
- [转] CocoaPods详解之----制作篇
- iOS image.size大小实际输出的值跟图片像素的关系
- swift - 方法和全局函数