A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曾翰翰 中级黑马   /  2012-11-1 21:37  /  2223 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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;
}
}
谁帮我把这个用上一个方法重载。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1

查看全部评分

11 个回复

倒序浏览
方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法。
  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. }
复制代码
用到了构造函数的方法重载

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1

查看全部评分

回复 使用道具 举报
public void raiseSalary(double p) {

15.                double raise = salary * p / 100;

16.                salary = salary + raise;

17.        }

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



评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1

查看全部评分

回复 使用道具 举报
方法名相同,但有不同的参数个数和类型。
1.5版本出现了可变参数(即...)三个点。
参见enhance09
回复 使用道具 举报
曾翰翰 发表于 2012-11-1 21:55
public void raiseSalary(double p) {

15.                double raise = salary * p / 100;

“ee[2] = new Employees(1800,"王五")
是这个部分么。。方法重载那部分 我看到乱七八糟的。”
对地!
回复 使用道具 举报
这个问题还不是很大。。我多看两遍。。关于static关键字创建静态成员还有一个问题。我新发了一个问题  麻烦帮我看下呗。
回复 使用道具 举报
黑马-李勇 发表于 2012-11-1 21:57
方法名相同,但有不同的参数个数和类型。
1.5版本出现了可变参数(即...)三个点。
参见enhance09 ...

enhance09??求解 在哪里?
回复 使用道具 举报
曾翰翰 发表于 2012-11-1 22:00
enhance09??求解 在哪里?

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

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

嗯。。好的 谢谢  
回复 使用道具 举报
都彭韬 发表于 2012-11-1 22:09
额,我也想帮你看,可惜你的代码不全啊,还有就是视频固然很好,但是还是在有一定基础下,观看视频的效果 ...

在看书。。这些都是书上的。我大学的课本。。。没人讲解。听说视频里都有?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马