黑马程序员技术交流社区

标题: 关于方法重载。。 [打印本页]

作者: 曾翰翰    时间: 2012-11-1 21:37
标题: 关于方法重载。。
package day05;
public class Employees {
private String name;
private double salary;
public  Employees(String n,double s){
  this.name =n;
  this.salary =s;
}
public void raiseSalary(double p){
  double raise = salary*p/100;
  salary = salary + raise;
}
public static void main(String args[]){
  Employees[] ee =new Employees[3];
  ee[0] = new Employees("张三",1000);
  ee[1] = new Employees("李四",2000);
  ee[2] = new Employees("王五",1800);
  for (int i = 0;i <ee.length;i++){
   ee[i].raiseSalary(7);
   System.out.println("名字 " +ee[i].getName()+ "薪水" + ee[i].getSalay(i));
  }
}
private double getSalay(int i) {
  // TODO Auto-generated method stub
  return salary;
}
private String getName() {
  // TODO Auto-generated method stub
  return null;
}
}
谁帮我把这个用上一个方法重载。

作者: 小灰灰    时间: 2012-11-1 21:43
方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法。
  1. public class Employees {
  2.         private String name;
  3.         private double salary;

  4.         public Employees(String n, double s) {
  5.                 this.name = n;
  6.                 this.salary = s;
  7.         }
  8.         public Employees(double s,String n) {
  9.                 this.name = n;
  10.                 this.salary = s;
  11.         }

  12.         public void raiseSalary(double p) {
  13.                 double raise = salary * p / 100;
  14.                 salary = salary + raise;
  15.         }

  16.         public static void main(String args[]) {
  17.                 Employees[] ee = new Employees[3];
  18.                 ee[0] = new Employees("张三", 1000);
  19.                 ee[1] = new Employees("李四", 2000);
  20.                 ee[2] = new Employees(1800,"王五");
  21.                 for (int i = 0; i < ee.length; i++) {
  22.                         ee[i].raiseSalary(7);
  23.                         System.out.println("名字 " + ee[i].getName() + "薪水"
  24.                                         + ee[i].getSalay(i));
  25.                 }
  26.         }

  27.         private double getSalay(int i) {
  28.                 // TODO Auto-generated method stub
  29.                 return salary;
  30.         }

  31.         private String getName() {
  32.                 // TODO Auto-generated method stub
  33.                 return null;
  34.         }
  35. }
复制代码
用到了构造函数的方法重载
作者: 曾翰翰    时间: 2012-11-1 21:55
public void raiseSalary(double p) {

15.                double raise = salary * p / 100;

16.                salary = salary + raise;

17.        }

ee[2] = new Employees(1800,"王五")
是这个部分么。。方法重载那部分 我看到乱七八糟的。。




作者: 黑马-李勇    时间: 2012-11-1 21:57
方法名相同,但有不同的参数个数和类型。
1.5版本出现了可变参数(即...)三个点。
参见enhance09
作者: 小灰灰    时间: 2012-11-1 21:58
曾翰翰 发表于 2012-11-1 21:55
public void raiseSalary(double p) {

15.                double raise = salary * p / 100;

“ee[2] = new Employees(1800,"王五")
是这个部分么。。方法重载那部分 我看到乱七八糟的。”
对地!

作者: 曾翰翰    时间: 2012-11-1 21:59
这个问题还不是很大。。我多看两遍。。关于static关键字创建静态成员还有一个问题。我新发了一个问题  麻烦帮我看下呗。
作者: 曾翰翰    时间: 2012-11-1 22:00
黑马-李勇 发表于 2012-11-1 21:57
方法名相同,但有不同的参数个数和类型。
1.5版本出现了可变参数(即...)三个点。
参见enhance09 ...

enhance09??求解 在哪里?
作者: 黑马-李勇    时间: 2012-11-1 22:03
曾翰翰 发表于 2012-11-1 22:00
enhance09??求解 在哪里?

09_黑马程序员_张孝祥_Java基础加强_可变参数与OverLoad相关面试题分析.zip
作者: 小灰灰    时间: 2012-11-1 22:09
曾翰翰 发表于 2012-11-1 21:59
这个问题还不是很大。。我多看两遍。。关于static关键字创建静态成员还有一个问题。我新发了一个问题  麻烦 ...

额,我也想帮你看,可惜你的代码不全啊,还有就是视频固然很好,但是还是在有一定基础下,观看视频的效果会更好,我觉得你应该看看java的基础书,这样才能提高的快些
作者: 梁胜海    时间: 2012-11-2 01:10
我给你说说什么是方法重载,方法重载就是参数个数不同,参数类型不同,还有个构造方法重载,构造方法重载我们只需看参数即可。如果想在一个构造方法中调用另外一个构造方法,那么可以使用this()方式调用,this括号中的参数表示目标构造方法的参数。注意:this()必须要作为构造方法的第一条语句,换句话说,this()之前不能有任何可执行的代码。如果想知道更多,去我博客好好学习下,http://blog.csdn.net/lsh609912726/article/details/8134255
作者: 曾翰翰    时间: 2012-11-2 17:16
似水流年 发表于 2012-11-2 01:10
我给你说说什么是方法重载,方法重载就是参数个数不同,参数类型不同,还有个构造方法重载,构造方法重载我 ...

嗯。。好的 谢谢  
作者: 曾翰翰    时间: 2012-11-2 17:31
都彭韬 发表于 2012-11-1 22:09
额,我也想帮你看,可惜你的代码不全啊,还有就是视频固然很好,但是还是在有一定基础下,观看视频的效果 ...

在看书。。这些都是书上的。我大学的课本。。。没人讲解。听说视频里都有?





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