请教一下java对象数组问题

自学java有点问题请教一下各位
关于数组对象引用有点问题图片说明
我想要输出这几个数组里面的值 并不是我自己手动输入 而是一串乱码
图片说明

重写student的tostring()方法。在里面手动输出几个属性的值。就可以了。

首先这个不是乱码,你直接打印对象都是打印的这些东西。 类名 + @ + 一串16进制的字符串 。 要打印里面的值的话可以考虑 重写 toString 方法

你的Student类中缺少toString()方法,

 public String toString() {
    return "Student [name=" + name + ", address=" + address + ", age=" + age + ", gerrand=" + gerrand + "]";
}

这不是乱码
这就是对象的形式

其实是你获取的不对,还差一步
Student@15db9742 是以获取的对象,
然后你要的不是对象的这种形式,而是对象的数据形式
通过对象的get 方法获取就行了

Student stu = null;
stu = student[i] ; //数组中第 i 个Student 对象
System.out.println(stu.name);

你试试

用开发工具自动生成toString()方法,类似如下不明白所说的乱码是什么意思?是传递的数据乱码,还是最终显示的数据乱码?
public String toString() {
return "Student [name=" + name + ", address=" + address + ", age=" + age + ", gerrand=" + gerrand + "]";
}

public class Student {

private String name;
private String address;
private int age;
private int gerrand;
public Student(String name, String address, int age, int gerrand) {
    this.name = name;
    this.address = address;
    this.age = age;
    this.gerrand = gerrand;
}
  public String toString() {
         return name+" "+address+"  "+age+"  "+gerrand;
    }

public static void main(String[] agrs){
    Student[] student=new Student[]{new Student("张三","济南",20,12)};
    for(int i=0;i<student.length;i++){
        System.out.println(student[i]);
    }
}

}

这样就可以了

主要是加一个toString方法

自动生成 toString() 方法 Alt+shift+S 选中 Generate toString() 接着全勾上白框里的 按ok就可以了

重写toString方法就可以了。为什么要从写toString方法了?
可以查看println的源码,里面调用了String.valueOf(x);
而String.valueOf()方法调用了Object的toString方法,
源码是:return (obj == null) ? "null" : obj.toString();
toString方法默认输出“对象实例名称”+@+“对象所在的内存地址”,所以需要重写toString()方法。

system.out.println(student[i].name);试一试能出来么? 你输出的是一个对象,就是那种形式的,你应该你输出对象中的属性才对吧