永发信息网

小白问java初级问题,程序如下,

答案:2  悬赏:20  手机版
解决时间 2021-04-11 06:15
public class DogDog {
static String name;
public static void main(String[] args){

Dog dog1=new Dog();
dog1.bark();
dog1.name="Bart";

Dog[] myDogs=new Dog[4];

myDogs[0]=new Dog();
myDogs[1]=new Dog();
myDogs[2]=dog1;
myDogs[0].name="Fred";
myDogs[1].name="Marge";
System.out.print("Last dog's name is ");
System.out.println(myDogs[2].name);

int x=0;
while(x< myDogs.length){
myDogs[x].bark();
x=x+1;

}

}
public void bark(){
System.out.println(name+"says Ruff!");
}
}

输出结果为 last dog's name is Marge
为何不是
null says Ruff!
last dog's name is Bart!
Fred says Ruff!
Marge says Ruff!
Bart says Ruff!
最佳答案
name前面有static修饰,是类变量。值是所有实例对象都共用的,修改时也是修改同时一个值。
所以name的值是最后一次赋值的结果,即myDogs[1].name="Marge"。

你可以去掉static再运行一次。
全部回答

举例说明一下:

神仙,小鸟,飞机它们没有什么直接关系。相同的是它们都有“飞”的行为。

我们将飞这个行为提取为一个接口。 interface  接口名。这个接口里有一个未实现的方法 飞。

现在我们要让神仙,小鸟和飞机都来实现 接口里面“飞”的方法。

于是神仙可以飞,小鸟可以飞,飞机也可以飞。

在你的例子中,当你的程序实现“用新线程执行方法体”的接口时,在执行这个方法体时是多线程的(新开了一个线程)。

多线程并不神秘!!

仅仅因为你实现了“用新线程执行方法体”因此你的程序变得“多线程”,

仅仅因为你实现了“飞”的方法,因此神仙,小鸟,飞机都能飞!!

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
单选题家喻户晓的作家韩寒,小时候对数学不感
菲尔普斯的训练方法和技术是不是很烂?
陈涌幼儿园我想知道这个在什么地方
湖南望岳园林建设工程有限公司岳阳分公司地址
一位中学生在自己班里就校服问题进行了调查,
边塞诗歌有哪些写出来,描写春夏秋冬4个季节的
刚做完一次爱再做第二次会不会有什么坏处
我12岁,10岁的表妹比我高,正常吗?
vivoxplay5如何备份数据
我家海尔牌的路由器 为什么连接时 显示已连接
单选题5月,中铁国际集装箱有限公司在北京成
沙眼衣原体DNA结果1.080E+4是什么意思
进口食品专卖怎么去啊,有知道地址的么
现有红、黄、蓝、白4种颜色的袜子若干(足够
一块边长是400米的正方形地,每公顷能收稻谷8.
推荐资讯
单选题关于气压带与风带位置移动的说法正确的
民事诉讼 委托家属代理出庭 授权委托书要身份
我1米63能摸板,我大概长多高就能摸框了?
LG冰箱售后服务的问题
关于荷花的谜底
男依邦我想知道这个在什么地方
American like to visit the national parks.
今年我12岁了,我要考舞蹈专业,我怎样才能当
不吃早饭的后果?
大话2什么宝宝练全法的好?我想练附法功击的?
珑仁堂大药房金鸡亭分店地址在哪,我要去那里
新化县娄底新南门冷饮在什么地方啊,我要过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?