有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在Java中的另一个类中使用类参数

首先我要提到的是,我是一个初学者程序员,正在努力学习。 简言之,我的问题是这样的:我有三门课(主要、作者、书籍)

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时,我得到了正确书籍的详细信息


共 (1) 个答案

  1. # 1 楼答案

    Book类中已经有一个属性Author a;

    您需要为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。从长远来看,这会让你的生活更轻松