java语言里 同一个类中 动态方法调用动态方法为什么不用实例化?
publicclassDS{publicvoidtest1(){add(1,3);sub(5,4);}publicstaticvoidtest2(){newDS().ad...
public class DS {
public void test1() {
add(1,3);
sub(5,4);
}
public static void test2() {
new DS().add(1,3);
sub(5,4);
}
public int add(int a,int b){
return a+b;
}
public static int sub(int d,int c){
return d-c;
}
}
问题:书上说调用静态方法的时候要:类名.方法名。调用动态方法的时候要:引用变量.方法名。
但在test1和test2里调用静态方法sub的时候都没有用类名.sub,但是调用动态方法add的时候,test没有实例化对象,test2需要对象来调用,搞晕了,请前辈们解惑,谢谢了。 展开
public void test1() {
add(1,3);
sub(5,4);
}
public static void test2() {
new DS().add(1,3);
sub(5,4);
}
public int add(int a,int b){
return a+b;
}
public static int sub(int d,int c){
return d-c;
}
}
问题:书上说调用静态方法的时候要:类名.方法名。调用动态方法的时候要:引用变量.方法名。
但在test1和test2里调用静态方法sub的时候都没有用类名.sub,但是调用动态方法add的时候,test没有实例化对象,test2需要对象来调用,搞晕了,请前辈们解惑,谢谢了。 展开
4个回答
展开全部
在类里只是方法之间的调用关系,并没有真正使用;使用时,是在类外面的,对于静态方法你自然是用 类名.方法名 ,对于普通方法用 对象(也就是类的实例).方法名 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、调用test本身的之前需要实例化对象,所以在test方法中再次调用其他动态方法的时候是已经有了实例化对象的,也就不需要再在该方法里面调用add方法的时候重复写了
2、如若静态方法test1里面有动态方法,因为调用test1方法的时候不需要实例化对象,那么就只能在test1方法里面写实例化对象来供add方法来调用了
2、如若静态方法test1里面有动态方法,因为调用test1方法的时候不需要实例化对象,那么就只能在test1方法里面写实例化对象来供add方法来调用了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为它们都在同一个类里边 同类之内 可以直接调用方法名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询