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

时间:2017-08-20 16:56:46

标签: java class arguments

首先我会提到我是一名初学程序员并且正在努力学习。 简而言之,我的问题看起来像这样:我有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时,我会得到正确书籍的详细信息吗?

1 个答案:

答案 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而不是abook而不是b。从长远来看,这将使您的生活更轻松......