1. public class A {
2. public String doit(int x, int y) {
3. return “a”;
4. }
5.
6. public String doit(int... vals) {
7. return “b”;
8. }
9. }
Given:
25. A a=new A();
26. System.out.println(a.doit(4, 5));
What is the result?谁帮我讲讲第六行参数什么意思???
1. public class A {
2. public void doit() {
3. }
4. public String doit() {
5. return “a”;
6. }
7. public double doit(int x) {
8. return 1.0;
9. }
10.}第二段代码第四行为什么会报错呢??
谢谢各位了
6. public String doit(int... vals) {
第六行为 6. public String doit(int... vals) {
我是从PDF文件上复制过来的题目,应该不是中文引号的问,可能是复制粘贴的时候出问题了~~ 第一段代码中显示出来的也都是中文引号,但编译是成功的,输出结果为a
int []vals
数组二者等价
表示vals是个int数组
package mypack;public class A {
public String doit(int x, int y) {
return "a";
}
//public String doit(int... vals)相当于public String doit(int[] vals)
public String doit(int... vals) {
return "b";
} public static void main(String[] args) {
A a = new A();
System.out.println(a.doit(4, 5)); }
}
第二问:
package mypack;public class A {
public void doit() {
} public String doit() {
return "a";
} public double doit(int x) {
return 1.0;
}
}
//public String doit()跟public void doit()只有返回类型不同是不能构成重载的,所以会报错
还有虽然a.doit(4, 5)对doit(int x, int y)和doit(int ... vals)都符合,但会优先选择doit(int x, int y)
1. public class A {
2. public void doit() {
3. }
4. public String doit() {
5. return “a”;
6. }
7. public double doit(int x) {
8. return 1.0;
9. }
10.}//函数的重载只能是参数类型不同,参数个数不同,
返回值不同和访问修饰符不同不能构成重载函数