首页 > 代码库 > 第八篇 构造器和方法重载
第八篇 构造器和方法重载
一、构造方法
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; }}
第八篇 构造器和方法重载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。