为什么我的输出变为空值?

use*_*885 2 java

所以我尝试在网上进行研究,我觉得这是我的toString(),但它是一种正确的方式,我想不出任何其他方式.

我希望能够输出:Lexie-身高:2.6英尺.出生:2009年11月5日

我的代码看起来像:

import java.util.*; 
class Kid {  
    String name; 
    double height; 
    GregorianCalendar bDay; 
    public Kid () { 
        this.name = "HEAD";
        this.height = 1; 
        this.bDay = new GregorianCalendar(1111,1,1); 
    } 

    public Kid (String n, double h, String date) { 
        StringTokenizer st = new StringTokenizer(date, "/", true);
        n = this.name;
        h = this.height;
    } 
    /**
    public String toString() { 
        return (this.name + ", Height: " + this.height + "ft., Born: "
        + this.month + "/" + this.day + "/" + this.year);
    } 
    */
    public String toString() {
        Calendar currentDate = Calendar.getInstance();
        return (this.name + ", Height: " + this.height + "ft., Born: "
        + this.bDay);
    }
} //end class 
Run Code Online (Sandbox Code Playgroud)

打电话给Kid课程如下

class Driver { 
    public static void main (String[] args) { 
        Kid kid1 = new Kid("Lexie", 2.6, "11/5/2009");
        System.out.println(kid1.toString());
    } //end main method 
} //end class
Run Code Online (Sandbox Code Playgroud)

Dav*_*d M 6

你的构造函数中的表达式是错误的 - 你有n = this.name你应该拥有的地方this.name = n.同样的this.height.此外,您当前没有设置该bDay字段.因此所有领域都是null.