博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第八篇 构造器和方法重载
阅读量:5303 次
发布时间:2019-06-14

本文共 1356 字,大约阅读时间需要 4 分钟。

一、构造方法

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;    }}

转载于:https://www.cnblogs.com/duoluomengxing/p/6582820.html

你可能感兴趣的文章
Web前端开发工程师的具备条件
查看>>
实用Android开发工具和资源精选
查看>>
TileMap
查看>>
JS属性大全
查看>>
java复制文件
查看>>
第一册:lesson seventy nine.
查看>>
GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
查看>>
团队作业
查看>>
数据持久化时的小bug
查看>>
mysql中key 、primary key 、unique key 与index区别
查看>>
bzoj2257
查看>>
Linux查看文件编码格式及文件编码转换<转>
查看>>
Leetcode: Find Leaves of Binary Tree
查看>>
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>