变量赋值自定义类名或创建自定义类名的变量

class MyDate
{
//属性
int year; //年
int month; //月
int day; //日

//构造方法
public My_Date(int y,int m,int d){
year = y;
month = m;
day = d;
}

//得到信息
public String getInfo(){
return year + "年" + month + "月" + day + "日";
}

}

//学生类
class Student
{
//属性
String name;
double score;
MyDate birth;

//构造方法
public Student(String n,double s,My_Date b){
name = n;
score = s;
birth = b;
}

//方法
//打印信息
public void printInfo(){
System.out.println("姓名:" + name + ",成绩:" + score + ",生日:" + birth.getInfo());
}
}

为什么使用birth.getInfo不需要new一个MyDate出来?
是因为在定义变量My_Date birth的时候自动定义对象了吗?
为什么String和double类型的可以直接输出,而birth要加调用方法?
String和Double也是类吗

  1. 为什么使用birth.getInfo不需要new一个MyDate出来?因为你的类有属性MyDate birth;可以直接使用
  2. 为什么String和double类型的可以直接输出,而birth要加调用方法?因为string和double类型直接输出你可以看到内容,但是birth直接输出是对象的引用地址,你看不到具体内容,所以需要调用方法获得具体的值再输出
  3. String和Double也是类吗?是的

因为MyDate birth;这里birth已经定义为MyDate的对象了,当学生类对象创建时,构造函数已要求传递一个MyDate对象作为参数,并赋值给birth啦