当前位置: 代码迷 >> Java相关 >> 这段代码为什么错了?自己实在想不通
  详细解决方案

这段代码为什么错了?自己实在想不通

热度:250   发布时间:2013-04-16 12:12:55.0
这段代码为什么错了?自己实在想不通
提示: 作者被禁止或删除 内容自动屏蔽
2013-04-16 04:12:55
zhangjie4399

等 级:新手上路
帖 子:2
专家分:4
注 册:2013-4-12
  得分:3 
[local]1[/local]两个数同名咯,改一下就行,代码如下
import java.util.Scanner;
class Student{
    public String [] name = new String[5];
   
    public void addName(String n){
        for(int i=0; i < name.length; i++){//错
            if(name[i] == null)        //错
                name[i] = n;        //错
            break;
        }
    }
    public void showName(){
        for(int i=0; i<name.length; i++)
            System.out.print(name[i]+" ");
    }
}
public class App5_7{
    public static void main(String[] args){
        Student st = new Student();
        Scanner input = new Scanner(System.in);
        for(int i=0; i<5; i++){
            System.out.println("请输入学生姓名");
            String newName = input.next();
            st.addName(newName);
        }
        st.showName();
    }
}
本帖最近评分记录
  • tknmtt 积分 +1 非常感谢! 2013-4-16 14:38
2013-04-16 04:37:53
tknmtt
该用户已被删除
  得分:0 
回复 2楼 zhangjie4399
提示: 作者被禁止或删除 内容自动屏蔽
2013-04-16 06:05:05
xiao84699024

来 自:江西南昌
等 级:论坛游民
帖 子:25
专家分:39
注 册:2013-3-31
  得分:3 
你这个类里面有多个name?
----------------解决方案--------------------------------------------------------
回复 4楼 xiao84699024
前一个name是类中成员属性,后一个name是形参,如果name只是个字符串的话,就不会出问题,但这里有个name是数组,产生了歧义,编译器区分不了谁是谁,所以出错了。
不过像下面这种情况就没问题:
程序代码:
Public Class Student{
    String name; //定义一个成员变量name

    public void SetName(String name){ //定义一个形参(局部变量)name

    this.name=name; //将局部变量的值传递给成员变量
        
//上一行直接使用name = name;也不会出问题
    }
}

----------------解决方案--------------------------------------------------------
看不到代码
----------------解决方案--------------------------------------------------------
  相关解决方案