我正在完成Java编程课程的家庭作业任务,并且无法理解subclcass的概念。Java中子类的实现
这里有一个问题:
定义类图书,其中包含标题和 页数数据字段。包括获取和设置这些字段的方法。接下来, 创建一个名为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;
}
}
如果我其实真的有两个部分是正确的,如何我会在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