一道JAVA问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 22:52:46
import java.util.Scanner;
class Teacher
{
private String name;
private int Age;

public void input()
{
Scanner in=new Scanner(System.in);
name=in.next();
Age=in.nextInt();
}
public void output()
{
System.out.println(name+","+Age);
}
}

public class test
{
public static void main(String[] args)
{
Teacher[] a=new Teacher[5];
for(int i=0;i<a.length;i++)
{
init(a[i]);
a[i].input();
}

for(int i=0;i<a.length;i++)
{
a[i].output();
}
}
static void init(Teacher a)
{
a=new Teachar();
}
}

什么地方出错了?编译时是提示“init(a[i]);”有问题 求教了

public static void main(String[] args) {
Teacher[] a = new Teacher[5];
for (int i = 0; i < a.length; i++) {
(a[i] = init()).input();
}

for (int i = 0; i < a.length; i++) {
a[i].output();
}
}

static Teacher init() {
return new Teacher();
}

要这样改以下,你会出现空指针异常,所以会出现是因为你没搞懂Java中传递参数时传递的是值还是引用。

a=new Teachar();
这行改成 a= new Teacher();看看

因为不知道你想给数组元素定义什么内容就 暂且用a--j来代替 java程序是以类为单位所以上面程序必须放在一个类中 temp不用给值因为交换过程本身就是给temp赋值过程 class A{ public static void main(String[] args){ int i; String[]str={"a","b","c","d","e","f","g","h","i","j"};//赋值 for(i=0;i<str.length;i++){ System.out.print(str[i]+" "); //交换之前输出数组值 } System.out.println();//换行 for(i=0;i<5;i++){ String temp; temp = str[i]; str[i] = str[i+5]; str[i+5] = temp; } for(i=0;i<str.length;i++){ System.out.prin