类、对象、继承
类
类关键字:class
类的创建:public class 类名{}
public class player1{}
public class player2{}
类的属性:public 属性类型 属性名;
public int ATK1;
public int blood;
public String name;
类的方法:public 返回值类型 方法名(参数类型 参数名){方法体}
//主方法,相当于C中的main函数
public static void main(String[]args){}
public void beat(player2 b)
{
b.blood=b.blood-ATK1
}
对象
对象关键字:new
对象的创建:类名 对象名 = new 类名();
player1 duizhang = new player1();
player2 gangtie = new player2();
对象的属性:对象名.属性名
duizhang.name="美国队长";
duizhang.blood=100;
duizhang.ATK1=11
对象的方法:对象名.方法名(参数值);
duizhang.beat(gangtie)
gangtie.beat(duizhang)
按照上面的思路,要在两个类中创建两个对象,但是钢铁侠和美国队长都是role,他们具有相似的属性,所以可以把他们归于同一个父类中,他们都继承了父类role的某些属性。
继承
继承关键字:extends
继承格式:public class 子类名 extends 父类名{}
public class Gangtie extends role{}
public class Duizhang extends role{}
在父类中定义父类属性
public class role{
public String name;
public int ATK;
public int blood;
}
子类在创建子类对象后直接为属性赋值
Gangtie gangtie=new Gangtie();
Duizhang duizhang=new Duizahng();
Mieba mieba=new Mieba();
gangtie.name="钢铁侠";
gangtie,ATK=10;
gangtie.blood=100;
duizhang.name="美国队长";
duizhang.ATK=8;
duizhang.blood=200;
mieba.name="灭霸";
mieba.blood=110;
mieba.ATK=3;
子类可以直接调用父类的方法
gangtie.attack(duizhang);
子类也可以重写父类的方法
//父类方法
public class role {
public void attack(role b){
b.blood=b.blood-ATK;
System.out.println(b.name+"的血量是"+b.blood);
}
}
//子类重写
public class Mieba extends role{
public void attack(role b){
b.blood=b.blood-ATK*2;
System.out.println(b.name+"血量剩余:"+b.blood);
}
}
//重写后“灭霸”再使用attack方法,其伤害就是2倍ATK
//调用时仍然使用attack
mieba.attack(gangtie);
继承的权限问题
Java四种访问权限:public protected default(缺省) private:
权限 | 本类 | 同一包的类 | 不同包子类 | 其他 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default(缺省) | √ | √ | × | × |
private | √ | × | × | × |
总结创建类和对象的流程
public class 类名{
//定义类的属性
public String …;
public int …;
//创建主方法
public static void main(String[] args){
//创建对象
类名 对象名 = new 类名();
//初始化对象
对象名.属性=‘ ’;
对象名.属性=…;
//调用方法
对象名.方法名(被使用对象);
}
}
//方法的创建:
public class 类名{
//定义类的属性
public String …;
public int …;
public void 方法名(类名 随意创建的一个对象名(a)){
//方法具体内容
a.属性=…;
}
}