面向对象第三章(补)

java面向对象

final成员变量

对于final修饰的成员变量而言,- 旦赋初始值就不能被重新赋值,如果既没有在定义成员变量时指定初始值,也没有在构造器中为成员变量指定初始值,那么这些成员变量的值将一直 是系统分配的默认值,这些成员就失去了存在的意义。

final修饰的类属性、实例属性可以指定初始值的部分如下:

(1)类属性:必须在静态初始化块或声明该属性时指定初始值。

(2)实例属性:必须在声明该属性或构造器中指定初始值。

final修饰成员变量的具体操作详见示例4.3。

public class FinalVariable {
//定义成员变量时指定默认值
private final int index=6;
//在构造器中对成员变量赋初始值
private final String language;
//该静态变量在静态代码块中对成员变量赋初始值
private final static int length;
private final int size;
//构造器
public FinalVariable(){

this language='Java语言”,

//final变量一旦赋初值,则不可修改this. language="C语言”:

//静态代码块
static{
length= 100;
}
//在普通方法中为final变量赋值
public void changeFinalVar(){
//不能在普通方法中为final变量赋初值this. size= 10;
}

重载与重写

(1)重载
方法的重载,是指一个类中的多个方法可以具有相同的方法名,但这些方法的参数必须不同,在执行时可以根据其参数个数与类型来判断要调用此方法是哪一种操作。使用方法重载时,需注意:
1.同一个类中方法名相同,参数列表不同;
2.返回值类型不能用于区分方法的重载;
3.构造方法也可以实现方法的重载。
(2)重写
子类扩展了父类,子类是一个特殊的父类。子类以父类为基础,额外增加新的属性和方法。但有一种方法除外:子类需要重写父类。
注意:方法的重写要遵循“两同两小一大”的规则。
子类包含与父类同名的方法叫方法重写,也被称为方法覆盖。方法的覆盖使子类“隐藏”了父类中的方法,如果需要访问被子类覆盖的方法,则可使用super关键字指明调用父亲被覆盖的实例方法。
实例:有圣剑(Sword)、长矛(Spear)两个武器类,其要求如下:
Sword类的属性:武器名(name)、攻击值(attackValue ) ;方法:攻击(attack)。
Spear类的属性:武器名(name)、攻击值(attackvalue) ;方法:攻击(attack)。
代码如下:

1 public class Weapon {
2 String name;
3 int attackValue;
4 public Weapon(String name, int attackValue) {
5 this.name = name;
6 this.attackValue = attackValue;
7 System.out.printin("武器名:"+name+"/t+"攻击值:"+attackValue);
8 }
9 }
1 public class Sword extends Weapon{
2 public Sword(Stwing name,int attackValue) {
3 suoer(name,attackValue);
4}
5 }
1 public class Spear extends Weapon{
2 public Sword(Stwing name,int attackValue) {
3 suoer(name,attackValue);
4 }
5 }
1 public class Extendstest{
2 public static void main(String [] args){
3 Sword s=new Sword("神剑",300);
4 word.attack();
5 Spear p=new Spear("长矛",250);
6 Spear.attack();
7 }
8 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值