gpt4 book ai didi

java - 将局部变量的值传递给字段

转载 作者:行者123 更新时间:2023-12-01 22:27:46 25 4
gpt4 key购买 nike

我是 Java 新手,正在为一所学校做作业,但我似乎陷入了基础知识的困境。

我的第一个类如下:

public class Publisher {

private String name;
private String state;

public Publisher(){}

public Publisher(String name, String state) {
super();
this.name = name;
this.state = state;
}

public String getName() {
return name;
}

public String getState() {
return state;
}


}

在第一个类中,我有两个字段,它们的值通过构造函数更改,并且只能使用 getter 进行访问。我还有另一个构造函数,用于在下一类中创建对象。

这是我的其他类(class):

public class Book {

private String bookName;
private String language;

public static void main(String[] args) {

Publisher publisher = new Publisher();
String publisherName=publisher.getName();

}



public Book(String bookName, String language) {
super();
this.bookName = bookName;
this.language = language;
}



public String getBookName() {
return bookName;
}

public String getLanguage() {
return language;
}



}

在第二个类中,我本质上想做与第一个类中相同的事情,不同之处在于我想使用 Publisher 类的对象名称作为第三个字段。在我的新手思维中,我想到了按照代码所示解决问题,但我不知道是否可以以某种方式使用 main 方法的局部变量作为实例变量。

我感觉我在某个地方犯了初学者的错误,所以欢迎任何建议或解决方案。

最佳答案

如果你想要第三个字段,你应该先创建它。然后你应该在你创建的每个对象中执行赋值(例如在构造函数中),否则它将是null

public class Book {
private final String bookName;
private final String language;
private final Publisher publisher; //third field

public Book(String bookName, String language, Publisher publisher) {
super();
this.bookName = bookName;
this.language = language;
this.publisher = publisher; //assignment of new field
}

public String getBookName() {
return bookName;
}

public String getLanguage() {
return language;
}

public String getPublisher() { //new getter
return publisher;
}
}

事实上,在您的代码中,您所做的就是创建局部变量,该变量在 main 方法结束后停止存在。您应该使用 main 来测试您的类,但对于诸如赋值之类的事情,它不会有任何效果。另外,我在这里使用了 final 修饰符,因为我们应该避免可变性(您可以了解它)。

关于java - 将局部变量的值传递给字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28400869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com