第八篇 构造器和方法重载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第八篇 构造器和方法重载相关的知识,希望对你有一定的参考价值。

一、构造方法

Java通过构造器创建对象,构造器又名构造方法,它是一个特殊的方法,为什么特殊呢?

① 通过new关键字调用,普通方法通过对象或者类(静态方法)调用

② 构造器的的方法名必须和类名一样

③ 构造器没有返回值。这与void返回值有区别,void返回值代码中可以运行return(中断程序),但是构造器中不能。

④ 如果我们没有定义构造器,则系统会自动定义一个无参构造。如果我们自定义构造器,则编译器不会再添加。(建议:如果我们自定义构造器,最好也写一个无参构造)

public class TestConstructor {
    int i;

    public TestConstructor(){
        System.out.println("TestConstructor.TestConstructor");
    }

    public TestConstructor(int i){
        System.out.println("TestConstructor.TestConstructor" + i);
    }
}

二、方法重载

1. 定义

方法重载是指一个类中可以定义有相同的名字,但是参数不同的多个方法。调用的时候根据不同的参数列表调用对应的方法。

public class TestOverLoad {

    public int  add(int a,int b){
        return a+b;
    }

    public int add(int a, int b, int c){
        return a+b+c;
    }
}

2. 区分方法重载

这个在笔试中很常见。我们如何区分方法重载?在同一个类中,同一个方法名,每个重载方法都必须有独一无二的自变量列表(参数的类型,个数,顺序不同)。

public class TestOverLoad {

    public long  add(int a,long b){
        return a+b;
    }

    //参数个数不同
    public long add(int a, int b, long c){
        return a+b+c;
    }

    //参数顺序不同
    public long add(long a, int b) {
        return a + b;
    }

	//参数类型不一样
    public long add(long a, long b){
        return a+b;
    }
}

要注意的是,返回值不同不能构成方法重载,因为编译器不会根据上下文去区分调用的是哪个方法。

public class TestOverLoad {
    public int add(int a, int b){
        return a+b;
    }

    //返回值不同 报错
    public long add(int a, int b){
        return a+b;
    }
}

以上是关于第八篇 构造器和方法重载的主要内容,如果未能解决你的问题,请参考以下文章

第八篇 Flask中的蓝图

python学习之路基础篇(第八篇)

Lua从青铜到王者基础篇第八篇:Lua表和模块与包

Swift开发第八篇——方法嵌套&命名空间

第八篇:grub加密

第八篇 Python异常