类与对象及方法重载
1、类与对象
我们通常把在某些方面具有相同特征的事物集合定义成一个类,它是一个主观的、抽象的集合,如人类,水果,它没有具体到某一个物品,一般用属性(特征)和方法(行为)来描述类;而与之相对的,我们把一些客观存在的事物称为对象,它是具体的某一件物品,如你的电脑,他的手机,等等。
我们在定义类时,采用如下基本格式:
首先定义类:public class 文件名{}
其次定义属性:public 属性类型 属性名;
最后定义方法:public 返回类型 方法名(参数类型 参数名){}
我们定义完一个类后,只是提供了一个做事情的平台,如果想要得到一个具体的结果,就需要实例化一个对象。基本格式如下:
类名 对象名 = new 类名();
属性赋值 对象名.属性名=属性值;
方法调用 对象名.方法名(参数);
下面通过一个简单的Java代码来说明:
//定义一个学生类public class Student{//定义属性(特征)public String name;//定义方法(行为):public void study(){System.out.println(name+"学生正在听课!");}}
//定义一个老师类public class Teacher{//定义属性(特征)public String name;//定义方法(行为)public void teach(){System.out.println(name+"老师正在上课!");}}
]//定义一个管理类public class Manager{ //主函数public static void main(String[] args){//创建学生对象和老师对象Teacher tea = new Teacher();Student stu = new Student();//给老师和学生赋名字tea.name = "张三";stu.name = "李四";//调用教和学的方法tea.teach();stu.study();}
public class Police{ //定义有参构造方法 public Police(String str,int b){name=str;blood=b;} //定义属性(姓名,血量)public String name;public int blood; //定义攻击方法public void attack(Bandit b){b.blood--;System.out.println(name+"警察攻击了"+b.name+"土匪!");}}
public class Bandit{ //定义有参构造方法public Bandit(String str,int b){name=str;blood=b;} //定义属性(姓名,血量)public String name;public int blood; //定义攻击方法public void attack(Police p){p.blood--;System.out.println(name+"土匪袭击了"+p.name+"警察!");}}
public class Manager{public static void main(String[] args){ //创建警察对象和土匪对象并赋值 Police pol=new Police("李明",10);Bandit ban=new Bandit("王刚",10); //调用攻击方法pol.attack(ban);while(ban.blood>=0){ban.attack(pol);if(pol.blood<0){System.out.println("土匪赢了");return;}pol.attack(ban);}System.out.println("警察赢了");}}