首先我会提到我是一名初学程序员并且正在努力学习。 简而言之,我的问题看起来像这样:我有3个班级(主要,作者,书)
public static void main(String[] args) {
Author a=new Author();
Book b=new Book();
//creating author
a.setName("Paulo Coelho", "PC@gmail.com");
System.out.println("Author : " + a.getName() + "\ne-mail: "+ a.getEmail());
//creating book
b.setName("Alchimist");
b.setYear(2010);
b.setPrice(15.7);
}
public class Author {
public static String name;
public static String email;
public static void setName(String n, String e){
name=n;
email=e;
}
public String getName(){
return name;
}
public String getEmail(){
return email;
}
public class Book {
String name;
int year;
double price;
Author a;
public void setName(String b){
name=b;
}
public void setYear(int y){
year=y;
}
public void setPrice(double p){
price=p;
}
public String getName(){
return name;
}
public int getYear(){
return year;
}
public double getPrice(){
return price;
}
public String getBookDetails(){
?????????????
}
}
如何在作者和书籍之间建立连接,以便在我设置书籍详细信息时将其链接到第一个创建的作者和 当我打印我的getDetails时,我会得到正确书籍的详细信息吗?
答案 0 :(得分:0)
您的Author a;
课程中已有属性Book
。
您需要在Book
课程中为authos添加一个setter,以便您可以使用main
方法进行设置:
// in Book class
public void setAuthor(Author author){
this.a = author;
}
// in main:
b.setAuthor(a);
b.setName("Alchimist");
之后,您可以在方法getBookDetails()
中访问已分配作者的属性。
在Java中,标识符名称的长度实际上是无限的。对于长标识符名称,不以任何方式处罚。因此,在选择姓名时不要吝啬信件。例如。在您的示例中,使用始终 author
而不是a
和book
而不是b
。从长远来看,这将使您的生活更轻松......