“商苑面馆:Java方法重载”的版本间的差异
来自CloudWiki
(创建页面,内容为“==区分重载方法的关键因素== 参数不同是区分重载方法的关键因素,参数不同主要包括以下方面的不同: #参数类型不同。例…”) |
(→面馆案例) |
||
第24行: | 第24行: | ||
==面馆案例== | ==面馆案例== | ||
如果在Noodle类里添加了如下方法,他们方法名相同,但是参数不同,我们就说它发生了重载 | 如果在Noodle类里添加了如下方法,他们方法名相同,但是参数不同,我们就说它发生了重载 | ||
+ | |||
+ | ===编写重载方法=== | ||
<nowiki> public boolean setInfo(String name){//设置名称 | <nowiki> public boolean setInfo(String name){//设置名称 | ||
第41行: | 第43行: | ||
}</nowiki> | }</nowiki> | ||
− | + | ===在main方法中调用=== | |
+ | |||
+ | <nowiki>public static void main(String[] args) { | ||
+ | // TODO Auto-generated method stub | ||
+ | |||
+ | Noodle n2 = new Noodle("炸酱面",12,3); | ||
+ | n2.setInfo("老北京炸酱面"); | ||
+ | System.out.println(n2.toString()); | ||
+ | n2.setInfo("老济南炸酱面", 10); | ||
+ | System.out.println(n2.toString()); | ||
+ | n2.setInfo("宫廷炸酱御面", 18, 3); | ||
+ | System.out.println(n2.toString()); | ||
+ | |||
+ | }</nowiki> | ||
+ | |||
+ | ==完整代码== | ||
<nowiki>public class Noodle { | <nowiki>public class Noodle { |
2019年4月15日 (一) 14:46的版本
区分重载方法的关键因素
参数不同是区分重载方法的关键因素,参数不同主要包括以下方面的不同:
- 参数类型不同。例如:
public void method(String s); public void method(int s);
- 参数个数不同。例如:
public void method(String s,int i); public void method(String s);
- 参数顺序不同。例如:
public void method(String s,int i); public void method(int i,String s);
【注意】
参数顺序不同的情况中一定要注意指的是参数全体,而不是简单的参数名,参数名在参数中其实没有实际意义,只是一个代号。例如:
public void method(String s,int i); public void method(String i,int s);
上面的例子是不属于顺序不同的,因为只是互换了参数的名字,参数的类型并没有互换。
面馆案例
如果在Noodle类里添加了如下方法,他们方法名相同,但是参数不同,我们就说它发生了重载
编写重载方法
public boolean setInfo(String name){//设置名称 this.name = name; return true; } public boolean setInfo(String name,double p){//设置名称和价格 this.name = name; this.price = p; return true; } public boolean setInfo(String name,double p,int n){//设置名称、价格和数量 this.name = name; this.price = p; this.num = n; return true; }
在main方法中调用
public static void main(String[] args) { // TODO Auto-generated method stub Noodle n2 = new Noodle("炸酱面",12,3); n2.setInfo("老北京炸酱面"); System.out.println(n2.toString()); n2.setInfo("老济南炸酱面", 10); System.out.println(n2.toString()); n2.setInfo("宫廷炸酱御面", 18, 3); System.out.println(n2.toString()); }
完整代码
public class Noodle { //成员变量 //名称 private String name; //价格 private double price; //数量 private int num; /*构造方法*/ public Noodle(){ } public Noodle(String name,double price,int num){ this.name = name; this.price = price; this.num = num; } //成员方法 //增加订单; public void add(int num){ this.num += num; } //削减订单; public void reduce(int n){ this.num = this.num -n; } public String getName(){ return this.name; } public double getPrice(){ return this.price; } public int getNum(){ return this.num; } //写方法 public boolean setName(String s){ this.name = s; return true; } public boolean setPrice(double p){ this.price = p; return true; } public boolean setNum(int n){ this.num = n; return true; } public String toString(){ return "名称:" +this.name+"价格:"+ this.price + "数量: " + this.num; } public boolean setInfo(String name){//设置名称 this.name = name; return true; } public boolean setInfo(String name,double p){//设置名称和价格 this.name = name; this.price = p; return true; } public boolean setInfo(String name,double p,int n){//设置名称、价格和数量 this.name = name; this.price = p; this.num = n; return true; } public static void main(String[] args) { // TODO Auto-generated method stub Noodle n2 = new Noodle("炸酱面",12,3); n2.setInfo("老北京炸酱面"); System.out.println(n2.toString()); n2.setInfo("老济南炸酱面", 10); System.out.println(n2.toString()); n2.setInfo("宫廷炸酱御面", 18, 3); System.out.println(n2.toString()); } }