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需要对象来调用,搞晕了,请前辈们解惑,谢谢了。
展开
 我来答
科技兰兰加油
2014-02-02 · TA获得超过159个赞
知道答主
回答量:161
采纳率:80%
帮助的人:9.3万
展开全部
  1. 在一个类里面默认的方法前面是加上this.也就是编译是 本类调用本类的方法会在前面加上this.add 

    this.sub其实相当于调用静态方法加了类名.方法名

2.new DS()就是实例化了啊  已经在堆内存加载这个类的实例了 只不过只栈内存没有引用指向 你只能用一次  就被虚拟机自动回收了

克利马古Blog
2014-02-02 · TA获得超过342个赞
知道小有建树答主
回答量:255
采纳率:100%
帮助的人:59.4万
展开全部
在类里只是方法之间的调用关系,并没有真正使用;使用时,是在类外面的,对于静态方法你自然是用 类名.方法名 ,对于普通方法用 对象(也就是类的实例).方法名 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DF727042585
2014-02-02 · 超过16用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:23.7万
展开全部
1、调用test本身的之前需要实例化对象,所以在test方法中再次调用其他动态方法的时候是已经有了实例化对象的,也就不需要再在该方法里面调用add方法的时候重复写了
2、如若静态方法test1里面有动态方法,因为调用test1方法的时候不需要实例化对象,那么就只能在test1方法里面写实例化对象来供add方法来调用了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杜蕾丶斯基
2014-02-02 · TA获得超过177个赞
知道小有建树答主
回答量:241
采纳率:33%
帮助的人:150万
展开全部
因为它们都在同一个类里边 同类之内 可以直接调用方法名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式