public static void main(String[] args) {
Double ans1 = add(5, 9);
Number ans2 = add(new Integer(3), new Double(2.4));
double ans3 = add(10, 3.2);
System.out.println(answer1 + " " + answer2 + " " + answer3);
}
鉴于上面的主要方法,我如何创建一个静态方法(而不是一组重载方法),这反过来可以成功调用main中的方法?
提前致谢!
答案 0 :(得分:0)
编写一个静态方法(不是一组重载方法) 可以通过main中的所有方法成功调用。
这是非常基础的,您可以通过创建新的static
add()
方法(单个方法包含对不同重载的add
方法的所有调用的代码)来执行此操作,如下所示:
public static void main(String[] args) {
add();
}
public static void add() {
Double ans1 = add(5, 9);
Number ans2 = add(new Integer(3), new Double(2.4));
double ans3 = add(10, 3.2);
System.out.println(answer1 + " " + answer2 + " " + answer3);
}
答案 1 :(得分:0)
行。尽管他使用了错误的术语,但我想我明白了老师想要的东西。他希望你编写一个独特的静态add()方法。在将这个独特的add()方法添加到代码中之后,代码应该编译并运行。
由于使用int,Integer,Double和double类型的参数调用该方法,因此参数类型必须是所有这些类型的父类(在装箱/取消装箱后)。例如Number或Object。
由于返回的值被赋值为Double,Number和double类型的变量,因此返回类型必须是所有这些的公共类或子类子类(在装箱/取消装箱后)。
因此,候选人将是:lst = [(10, 'ATAGCTAT'), (4, 'TTAGCTA'), (6, 'AATTAATCGAT'), (6, 'GCTATAGC')]
lst_sorted = sorted(lst, key=lambda x: (x[0], len(x[1])))
print(lst_sorted)
# [(4, 'TTAGCTA'), (6, 'GCTATAGC'), (6, 'AATTAATCGAT'), (10, 'ATAGCTAT')]
当然,private static double add(Object i, Object i1) {
return 0;
}
变量也需要重命名为ansX
,否则代码永远不会编译。
我想我们也可以安全地假设answerX
应该添加参数。我把它作为你的练习。
答案 2 :(得分:0)
为了通过add
方法成功调用main
方法,您需要确定用于返回值和参数的类型。
这是一个模板:
private static ??? add(??? a, ??? b) {
return a + b;
}
如您所见,main
使用各种参数调用add
,并将结果存储在不同类型的变量中。
如果您分析main
方法,您会发现add
方法必须能够接受以下类型的参数:
(int, int)
(Integer, Double)
(int, double)
可以推断,int
,double
,Integer
和Double
可以隐式转换为参数类型。如果你做一点思考,你就会知道double
是满足这个要求的类型之一。这意味着参数可以是tyoe double
!
并且它必须能够返回与以下类型兼容的值:
Double
double
Number
可以推断,返回类型必须能够被隐含地转换为Double
,double
或Number
。 double
也满足此要求。这意味着该方法也返回一个double!
这是完成的方法:
private static double add(double a, double b) {
return a + b;
}