Java初学者的一些小问题,求解各位大神

package 试验;

public class what {

    public static void main (String[] args){

        student stu1=new student("xiaozai",43);
        System.out.println("stu1.toString()");
    }
}

class student{
    String name;
    int age;

    public student(String name,int age){
        this.name=name;
        this.age=age;
    }
    public String toString(){
        return name+age;
    }
}

这段程序在package这里报错,原因是类文件碰撞,请问是什么意思?怎样改可以使程序运行?

兄弟,你这包名中文的啊,类名首字母小写的呀,虽然有点不规范,但是并不会报错的呀

除了命名规范,System.out.println("stu1.toString()");这里也写错了 把,把双引号去掉,否则打印的是stu1.toString()这个字符串而不是你想要结果

package 试验;

这个要和你的路径要一致。

public class what {

这个要和你的java源代码文件名一致

System.out.println("stu1.toString()");
->
System.out.println(stu1.toString());

  1. 将打印部分去掉,改为 System.out.println(stu1.toString());
  2. 对将要赋值的元素加上set/get方法
  3. 包名你写的太血腥了,改成小写的英文名称就行

package demo;

public class what {

public static void main(String[] args) {
    student stu1 = new student("xiaozai", 43);
    System.out.println(stu1.toString());
}

}

class student {
String name;
int age;

public student(String name, int age) {
    this.name = name;
    this.age = age;
}

public String toString() {
    return name + age;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

}

这个package真是太6了

把 package 试验 改成 package test 就好了