对象未在另一个类中读取-Java
如果以前有人问过,我道歉 这里有两个文件:Dog.java和DogTest.java Dog.java:对象未在另一个类中读取-Java,java,Java,如果以前有人问过,我道歉 这里有两个文件:Dog.java和DogTest.java Dog.java: public class Dog{ String name; public Dog(String name){ System.out.println("Name chosen is : " + name); } public static void main(String[]args){ Dog dog1 = new Dog(
public class Dog{
String name;
public Dog(String name){
System.out.println("Name chosen is : " + name);
}
public static void main(String[]args){
Dog dog1 = new Dog("Big Larry");
Dog dog2 = new Dog("Mr. Cuddles");
}
public void bark(){
System.out.println(name + " is barking.");
}
public void eat(){
System.out.println(name + " is eating.");
}
public void sleep(){
System.out.println(name + " is sleeping.");
}
}
下面是DogTest.java:
public class DogTest {
public static void main(String[] args) {
dog1.bark();
dog2.bark();
dog1.eat();
dog2.sleep();
dog1.sleep();
}
}
现在,在dogJava文件中,它显示dog1和dog2没有初始化,正如在我的IDE中所说的。然而,在DogTest文件中,我将对象变量放在那里。我不明白的是,为什么它们没有初始化
如果我在DogTest.java文件中重新初始化它们,DogTest会编译,没有错误,但是当它们应该读到“Big Larry正在吠叫”或“Mr.Cuddles正在睡觉”时,它会在输出中调用它们“null”,而不是“null正在吠叫”
我想了解这一点。非常感谢您的帮助,祝您度过愉快的一天!请在评论中留下任何问题。这是您的问题:
public Dog(String name){
System.out.println("Name chosen is : " + name);
}
您将名称传递给构造函数,但实际上并没有设置值
将此更改为:
public Dog(String name){
System.out.println("Name chosen is : " + name);
this.name = name;
}
不知道你为什么需要打印对账单
另外,在测试类中,不要忘记实际声明和初始化变量:
Dog dog1 = new Dog("Max");
dog1.bark();
它们没有在您的测试类中初始化,因为它们是在主方法的本地范围内初始化的,这是/是您的测试类无法触及的。这里是您的问题:
public Dog(String name){
System.out.println("Name chosen is : " + name);
}
您将名称传递给构造函数,但实际上并没有设置值
将此更改为:
public Dog(String name){
System.out.println("Name chosen is : " + name);
this.name = name;
}
不知道你为什么需要打印对账单
另外,在测试类中,不要忘记实际声明和初始化变量:
Dog dog1 = new Dog("Max");
dog1.bark();
它们没有在您的测试类中初始化,因为它们是在main方法的本地范围内初始化的,这是/是您的测试类无法触及的。您有两个不同的文件Dog和DogTest
DogTest无法访问Dog.java-main()中的Dog1和dog2变量方法因此也必须在DogTest中初始化 您可以从Dog.java类中删除main方法 你需要改变你的狗测试
public class DogTest {
public static void main(String[] args) {
Dog dog1 = new Dog("Big Larry");
Dog dog2 = new Dog("Mr. Cuddles");
dog1.bark();
dog2.bark();
dog1.eat();
dog2.sleep();
dog1.sleep();
}
}
您还需要将Dog.java的构造函数更改为
public Dog(String name){
this.name =name
System.out.println("Name chosen is : " + name);
}
您有两个不同的文件Dog和DogTest
DogTest无法访问Dog.java-main()方法中的Dog1和dog2变量,因此您也必须在DogTest中初始化 您可以从Dog.java类中删除main方法 你需要改变你的狗测试
public class DogTest {
public static void main(String[] args) {
Dog dog1 = new Dog("Big Larry");
Dog dog2 = new Dog("Mr. Cuddles");
dog1.bark();
dog2.bark();
dog1.eat();
dog2.sleep();
dog1.sleep();
}
}
您还需要将Dog.java的构造函数更改为
public Dog(String name){
this.name =name
System.out.println("Name chosen is : " + name);
}
您在一个文件中初始化,并试图在另一个文件中访问,这将是一个编译错误。实际上,您不需要两个文件。因为在Dog文件中有一个main方法,所以可以在那里测试Dog,如下所示。 此外,还需要为字段指定名称
public class Dog {
String name;
public Dog(String name) {
this.name = name;
System.out.println("Name chosen is : " + name);
}
public static void main(String[] args) {
Dog dog1 = new Dog("Big Larry");
Dog dog2 = new Dog("Mr. Cuddles");
dog1.bark();
dog2.bark();
dog1.eat();
dog2.sleep();
dog1.sleep();
}
public void bark() {
System.out.println(name + " is barking.");
}
public void eat() {
System.out.println(name + " is eating.");
}
public void sleep() {
System.out.println(name + " is sleeping.");
}
}
您在一个文件中初始化,并试图在另一个文件中访问,这将是一个编译错误。实际上,您不需要两个文件。因为在Dog文件中有一个main方法,所以可以在那里测试Dog,如下所示。 此外,还需要为字段指定名称
public class Dog {
String name;
public Dog(String name) {
this.name = name;
System.out.println("Name chosen is : " + name);
}
public static void main(String[] args) {
Dog dog1 = new Dog("Big Larry");
Dog dog2 = new Dog("Mr. Cuddles");
dog1.bark();
dog2.bark();
dog1.eat();
dog2.sleep();
dog1.sleep();
}
public void bark() {
System.out.println(name + " is barking.");
}
public void eat() {
System.out.println(name + " is eating.");
}
public void sleep() {
System.out.println(name + " is sleeping.");
}
}
请在下面查找修复代码:
public class Dog {
String name;
public Dog(String name) {
System.out.println("Name chosen is : " + name);
this.name = name;
}
public static void main(String[] args) {
Dog dog1 = new Dog("Big Larry");
Dog dog2 = new Dog("Mr. Cuddles");
}
public void bark() {
System.out.println(this.name + " is barking.");
}
public void eat() {
System.out.println(this.name + " is eating.");
}
public void sleep() {
System.out.println(this.name + " is sleeping.");
}
}
测试等级:
public class DogTest {
public static void main(String[] args) {
Dog dog1 = new Dog("Goffy");
Dog dog2 = new Dog("Cherry");
dog1.bark();
dog2.bark();
dog1.eat();
dog2.sleep();
dog1.sleep();
}
}
在使用变量之前,您必须在第一阶段对其进行初始化,您只需在构造函数中传递值,但没有将其分配给类变量,还请阅读**此**
关键字及其在java中的重要性
这:
干杯请在下面查找修复代码:
public class Dog {
String name;
public Dog(String name) {
System.out.println("Name chosen is : " + name);
this.name = name;
}
public static void main(String[] args) {
Dog dog1 = new Dog("Big Larry");
Dog dog2 = new Dog("Mr. Cuddles");
}
public void bark() {
System.out.println(this.name + " is barking.");
}
public void eat() {
System.out.println(this.name + " is eating.");
}
public void sleep() {
System.out.println(this.name + " is sleeping.");
}
}
测试等级:
public class DogTest {
public static void main(String[] args) {
Dog dog1 = new Dog("Goffy");
Dog dog2 = new Dog("Cherry");
dog1.bark();
dog2.bark();
dog1.eat();
dog2.sleep();
dog1.sleep();
}
}
在使用变量之前,您必须在第一阶段对其进行初始化,您只需在构造函数中传递值,但没有将其分配给类变量,还请阅读**此**
关键字及其在java中的重要性
这:
干杯
dogdog1=新狗()代码>Dog dog1=新狗()代码>您忘记了空问题您忘记了空问题对于我的类,我们需要2个文件。对于我的类,我们需要2个文件。我确实在DogTest文件中初始化了它们,但在发布之前将它们取出。所以我需要把它们放回去?如果你想保留那个测试类,是的。但是你真的需要那门课吗?你可以在你的Dog类中使用main方法来检查行为。我必须为这个作业所针对的类将它们分开。我确实在DogTest文件中初始化了它们,但在发布之前将它们取出。所以我需要把它们放回去?如果你想保留那个测试类,是的。但是你真的需要那门课吗?你可以在你的狗课上使用main方法来检查它们的行为。我必须在这个作业的课堂上把它们分开。