黑马程序员技术交流社区

标题: 有关方法重载? [打印本页]

作者: 刘欢    时间: 2013-4-10 23:48
标题: 有关方法重载?
方法重载时,是怎么通过参数类型来选择方法?
作者: _王涛    时间: 2013-4-10 23:56
方法重载选择是一一对应,比如无参时,程序会自动找到一个无参重载方法与其对应,否则就不选择。
作者: ld5128702    时间: 2013-4-11 00:13
是根据你传入的参数来自动选择,如public void show(int a){}和public void show(int b,String name)你调用方法show(1)时,运行的是第一个,show(1,“zhangsan”)调用的就是第二个,是由jvm自动调用的
作者: 通行天下    时间: 2013-4-11 00:17
方法的重载是根据方法的参数列表(即参数的个数和类型)的不同来区分,系统会自动根据你输入的参数的个数和类型去调用程序中相应的方法。
作者: Asan    时间: 2013-4-11 00:22
方法重载 就是同名方法 方法名相同,参数类型、参数个数不同,就是方法重载,和方法的返回类型无关, 当你调用重载方法时,程序会根据你给的参数自动去匹配相应的方法
作者: 小菜凉碟    时间: 2013-4-11 00:30
同上,JVM会根据你输入的值自动选择方法,如下例题当person p中没有数据输入时,JVM会自动为其匹配class person中person()方法;
当person p1中输入张三时,JVM会自动为其匹配class person中person(String n)方法;
当person p2中输入"李四,12"时,JVM会自动为其匹配class person中person(String n,int a)方法;
  1. class ConstrutorDemo{
  2. public static void main(String[] args) {
  3. Person p = new Person();//没有输入变量,自动匹配方法Person()
  4. p.speak();
  5. Person p1 = new Person("李四");//输入变量只有一个String类型的"李四",自动现在方法Person(String n)
  6. p1.speak();
  7. Person p2 = new Person("张三",12);//输入变量只有一个String类型的"张三,12", //自动现在方法Person(String n, int a)
  8. p2.speak();
  9. }

  10. }

  11. class Person{
  12. int age ;
  13. private String name ;
  14. public void speak(){
  15. System.out.println(age + "....." + name);
  16. }
  17. Person(){
  18. cry();
  19. }
  20. Person(String n) {
  21. name = n;
  22. cry();
  23. }
  24. Person(String n, int a){
  25. name = n;
  26. age = a;
  27. cry();
  28. }
  29. public void cry(){
  30. System.out.println("哇哇");
  31. }
  32. }

复制代码

作者: 郑丹丹1990    时间: 2013-4-11 08:32
参数自动匹配,具体细节我们不用管的啦!
作者: 史鹏飞    时间: 2013-4-11 09:01
方法重载,是指方法名相同,参数不同(个数或类型)。用的时候,会根据掉的方法名,和传的参数选择与之相同的方法。
作者: ↖落葉下♀媃媚    时间: 2013-4-11 09:38
重载是指方法名称相同, 只是参数个数或类型不同. 方法功能是相同的.
student listudent = new student("李四",'男',18,90,95,80);
student xlstudent = new student("小兰",'女',16);
希望对你有帮助




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2