JavaSE---02类的补充

1 匿名类的创建

new 类名();

2 方法的重写与重载

2.1 重载

方法的重载指的是方法名一样,但是参数类型不一样

  • 特点:
    • 与访问限定修饰符无关
    • 与返回值类型无关
    • 只与形参的个数、类型、顺序有关
 	public void attack() {
        System.out.println(" 1111111111111");
    }

    public void attack(String h1) {
        System.out.println("222222222222222 ");
    }

    protected String attack(String h1, String h2) {
        System.out.println("333333333333333333333 ");
        return h1 + h2;
    }
    protected String attack(String h2,int h1 ) {
        System.out.println("444444444444444444444");
        return h1 + h2;
    }
    
    protected String attack(int h1, String h2) {
        System.out.println("555555555555555555555");
        return h1 + h2;
    }

2.1 重写

子类可以继承父类的对象方法。在继承后,重复提供该方法,就叫做方法的重写,又叫覆盖 override

  • 特点:
    • 参数列表必须完全与被重写方法的相同
    • 返回类型与被重写方法的返回类型可以不相同,但是必须是父类或者及其子类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)
    • 访问权限不能比父类中被重写的方法的访问权限更低
    • 父类的成员方法只能被它的子类重写
    • 声明为 final 的方法不能被重写。
    • 声明为 static 的方法不能被重写,但是能够被再次声明。
    • 能重写那些方法请看访问修饰符的限定
    • 被重写的方法如果能抛出异常,那么重写的方法可以抛出父类抛出的异常及其子类,也可以不写
      想看例子去这里:链接

3 可变形参

数据类型 … 变量名

  • 调用可变形参的方法时,参数可以是0个以及多个
  • 可变形参的方法名不变,形参数据类型改变,可以形成重载
 	private static void xx(String... aa) {
        System.out.println(aa.length);
    }
    private static void xx(int... bb) {
        System.out.println(bb.length);
    }
  • 可变形参的方法名不变,形参数据类型为数组,不可以形成重载
 	private static void xx(String... aa) {
        System.out.println(aa.length);
    }
    private static void xx(String[] bb) {
        System.out.println(bb.length);
    }
  • 可变形参的声明,只能在末尾声明,并且最多只有一个可变形参
private static void xx(int a,int... bb) {
 	System.out.println(bb.length);
}

4 方法参数的值传递

Java里面,方法的参数传递只有一种:值传递;即将实际传递的参数值的副本传入方法内,而参数本身不受影响

  • 形参是基本数据类型:将实参基本数据类型变量的"数据值"传递给形参
	public static void main(String[] args) {
        int i = 1;
        int j = 2;
        swap(i, j);
        System.out.println("main:"+i + "=========" + j);
    }

    private static void swap(int i, int j) {
        int temp;
        temp = i;
        i = j;
        j = temp;
        System.out.println("swap:"+i + "-------" + j);

    }

基本数据类型传递的是"数据值"的拷贝,在swap方法里面交换之后,方法被销毁,不会影响main里面的i与j的值

  • 形参是引用数据类型:将实参引用数据类型变量的"地址值"传递给形参
public class C {
    private int a = 10;
    private int b = 20;

    public static void main(String[] args) {
        C c = new C();
        swap(c);
        System.out.println("main:" + c.a + "-------" + c.b);
    }
    private static void swap(C c) {
        int temp;
        temp = c.a;
        c.a = c.b;
        c.b = temp;
        System.out.println("swap:" + c.a + "-------" + c.b);

    }
}

引用数据类型传递的是"地址值",是把堆里面的地址复制给形参,形参不会改地址值,但是会改变这个地址里面所存在的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值