私はJavaプログラミングコースの宿題を完了していますが、サブクラスの概念を理解できません。Javaでのサブクラスの実装
タイトルやページの 数のデータフィールドが含まれているブックという名前のクラスを作成します。ここでは
は疑問です。これらのフィールドの取得および設定メソッドをインクルードします。次に、 Textbookという名前のサブクラスを作成します。このサブクラスには、Textbookのグレードレベルを保持する追加のフィールド と、グレードレベルのフィールドを取得して設定する追加のメソッドが含まれています。 が各クラスのオブジェクトを使用していることを示すアプリケーションを作成します。ファイルをBook.java、 Textbook.java、およびDemoBook.javaとして保存します。ここで
Book.javaための私のコードです:ここでは
public class Book
{
String bookTitle;
int numPages;
private void setBTitle(String title)
{
bookTitle = title;
}
private void setBPages(int pages)
{
numPages = pages;
}
private String getBTitle()
{
return bookTitle;
}
private int getBPages()
{
return numPages;
}
public void displayBookInfo()
{
System.out.println("The book's title is: " + bookTitle + ".");
System.out.println("The number of pages is: " + numPages + ".");
}
}
はTexbook.javaのための私のコードです:
public class Textbook extends Book
{
int gradeLevel;
public int getGLevel()
{
return gradeLevel;
}
public void setGLevel(int level)
{
gradeLevel = level;
}
}
私が実際に正しいものを2つの部分があります場合は、どのように私はこれをDemoBook.javaファイルに実装しますか?
ご迷惑をおかけして申し訳ございません。ここで
はDemoBook.javaファイルの私のコードです:
import java.util.Scanner;
public class DemoBook
{
public static void main(String[] args)
{
String BTitle;
int BPages;
int BLevel;
Book b = new Book();
Textbook t = new Textbook();
Book bt = new Textbook();
Scanner input = new Scanner(System.in);
System.out.println("Please enter the title of your book: ");
BTitle = input.nextLine();
System.out.println("Please enter the number of pages: ");
BPages = input.nextInt();
System.out.println("Please enter the grade level: ");
BLevel = input.nextInt();
b.setBTitle(BTitle);
b.setBPages(BPages);
t.setGLevel(BLevel);
b.displayBookInfo();
}
}
私はプライベートに変数を変更し、これは私が手コンパイラエラーです:
DemoBook.java:33: error: setBTitle(String) has private access in Book
b.setBTitle(BTitle);
^
DemoBook.java:34: error: setBPages(int) has private access in Book
b.setBPages(BPages);
^
2 errors
私はまだ把握しておりませんこの。この章は、「継承の概要」と題されています。
は、 'DemoBook.java'「とは、各クラスのオブジェクトを使用して実証したアプリケーション」になることです。 – ruakh
私はまた、変数を非公開にすることを提案します。アクセスを提供するゲッタとセッタがあります。 – user219882