Java新手:类已构造但返回Null

Java新手:类已构造但返回Null,java,class,null,Java,Class,Null,根据注释更新代码和输出 我想我终于明白了!但是,我的超类构造函数返回null,即使它已定义。我的文本定义了超类构造器,它只包含一个Public Dog。。。但是,当我尝试运行它时,它会在Eclipse中返回一个错误,并且不会执行。它正在为Corgi类中定义的int变量进行初始化,但它甚至没有在本文中返回Dog的构造函数方法。我也试着从科吉狗那里换电话。。。但这也不能解决这个错误 我做错了什么 超级班:狗 儿童班:科基 主程序:驱动程序 代码如下: DOG.JAVA public class D

根据注释更新代码和输出

我想我终于明白了!但是,我的超类构造函数返回null,即使它已定义。我的文本定义了超类构造器,它只包含一个Public Dog。。。但是,当我尝试运行它时,它会在Eclipse中返回一个错误,并且不会执行。它正在为Corgi类中定义的int变量进行初始化,但它甚至没有在本文中返回Dog的构造函数方法。我也试着从科吉狗那里换电话。。。但这也不能解决这个错误

我做错了什么

超级班:狗 儿童班:科基 主程序:驱动程序

代码如下:

DOG.JAVA

public class Dog {

// class variables
public String type;
public String breed;
public String name;
public String topTrick;

// constructor
public Dog(String dType, String dBreed, String dName) {
    this.type = "harvesting catepillars";
    this.breed = "Yorkie";
    this.name = "Fiesta";
}

// methods
public void setTopTrick(String trick) {
    topTrick = trick;
}

// method used to print Dog information
public String toString() {
    String temp = "\nDOG DATA\n" + name + " is a " + breed +
            ", a " + type + " dog. \nThe top trick is: " +
            topTrick + ".";
    return temp;
}

}
电流输出:

DOG DATA
Fiesta is a Yorkie, a harvesting catepillars dog. 
The top trick is: barking at air.
The Corgi is 5 years old and weighs 8 pounds.
缺少此运算符以引用对象访问的上下文

//DOG.JAVA
public Dog(String type, String breed, String name) {
     this.type = "harvesting catepillars";
     this.breed = "Yorkie";
     this.name = "Fiesta";
}

类Dog中成员的名称与类Dog的构造函数中参数的名称相同。因此,在构造函数中,您将值分配给构造函数参数,而不是类成员。如果构造函数参数名称与类成员名称不同,则不需要this关键字,无论是更改参数还是使用this关键字,它仍然只是返回构造函数,而没有使用在主驱动程序类中创建对象时定义的内容?当然不是,因为您没有将参数值分配给类成员。您正在分配文字值。尝试,例如在您的狗构造函数中:type=dType@Abra非常感谢。我现在明白了。这个关键字是必需的,因为?澄清:这里是必需的,因为名为type的参数隐藏名为type的类字段,其他参数也是如此。当您仅执行type=1;,您正在设置绑定到参数类型的变量,而不是类字段。我已经实现了这两个注释-它现在返回构造函数,并且不接受主代码中参数中的内容,即:fuzzy demon、PomChi、Turbo。我已经用现在的代码和输出更新了我的帖子。@MykaThomas将狗构造函数更新为,public DogString dType,String dBreed,String dName{this.type=dType;this.bride=dBreed;this.name=dName;}
DOG DATA
Fiesta is a Yorkie, a harvesting catepillars dog. 
The top trick is: barking at air.
The Corgi is 5 years old and weighs 8 pounds.
//DOG.JAVA
public Dog(String type, String breed, String name) {
     this.type = "harvesting catepillars";
     this.breed = "Yorkie";
     this.name = "Fiesta";
}