以下程序运行结果正确的是:【 】 代码段1: public class BookTest { public static void main(String[] args) { new BookTest(); } } 代码段2: public class BookTest { public BookTest(int a){ System.out.println("这是带参数构造方法的输出"); } public static void main(String[] args) { BookTest book1 = new BookTest(); BookTest book2 = new BookTest(2); } } 代码段3: public class BookTest { public BookTest(){ System.out.println("这是构造方法的输出"); } public BookTest(int a){ System.out.println("这是带参数构造方法的输出"); } public static void main(String[] args) { BookTest book1= new BookTest(); BookTest book2= new BookTest(2); } }
时间: 2024-04-02 18:31:23 浏览: 15
代码段3的程序运行结果是正确的。
解析:
代码段1只是定义了一个类 BookTest,但是没有实例化该类,因此没有输出结果。
代码段2中定义了两个BookTest类型的变量 book1 和 book2,分别使用了不同的构造方法来实例化对象。但是,由于没有无参构造方法,因此编译会报错。
代码段3中定义了两个构造方法,一个是无参构造方法,一个是带参数构造方法。在 main 方法中,使用不同的构造方法来实例化对象,输出了相应的结果。因此,代码段3的程序运行结果是正确的。
相关问题
利用Java编写程序实现以下功能:2.定义一个教材类Book,实现封装。具体要求如下: 请通过代码封装,实现如下需求: (1)具有属性:名称(title)、页数(pageNum) (2)其中页数不能少于200页,否则输出错误信息,并赋予默认值200 (3)为各属性提供赋值和取值方法 (4)具有方法detail,用来在控制台输出每本教材的名称和页数 (5)编写测试类BookTest进行测试:为Book对象的属性赋予初始值,并调用Book对象的detail方法,测试输出是否正确。
我明白了,下面是使用Java编写程序实现以上需求的代码:
// Book.java
public class Book {
private String title;
private int pageNum;
public Book(String title, int pageNum) {
this.title = title;
if (pageNum < 200) {
System.out.println("Error: The number of pages should be no less than 200.");
this.pageNum = 200;
} else {
this.pageNum = pageNum;
}
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
if (pageNum < 200) {
System.out.println("Error: The number of pages should be no less than 200.");
this.pageNum = 200;
} else {
this.pageNum = pageNum;
}
}
public void detail() {
System.out.println("Book title: " + title);
System.out.println("Number of pages: " + pageNum);
}
}
// BookTest.java
public class BookTest {
public static void main(String[] args) {
Book book = new Book("Java Programming", 150);
book.detail();
System.out.println();
book.setTitle("Java Programming - Updated");
book.setPageNum(300);
book.detail();
}
}
运行以上代码,得到的输出如下:
Error: The number of pages should be no less than 200.
Book title: Java Programming
Number of pages: 200
Book title: Java Programming - Updated
Number of pages: 300
以上代码实现了教材类Book的封装,通过测试类BookTest进行测试,并且在不满足要求时输出错误信息并赋予默认值。
编写一个Book类,用于描述个人藏书,包含私有化属性:作者Author、书名Title、价格Price、出版社Publisher、出版年份Published Year五个属性。然后编写一个测试类BookTest,对Book类进行测试,输出正确的属性值。Java
好的,以下是Book类的代码:
```java
public class Book {
private String author;
private String title;
private double price;
private String publisher;
private int publishedYear;
public Book(String author, String title, double price, String publisher, int publishedYear) {
this.author = author;
this.title = title;
this.price = price;
this.publisher = publisher;
this.publishedYear = publishedYear;
}
public String getAuthor() {
return author;
}
public String getTitle() {
return title;
}
public double getPrice() {
return price;
}
public String getPublisher() {
return publisher;
}
public int getPublishedYear() {
return publishedYear;
}
}
```
以下是BookTest测试类的代码:
```java
public class BookTest {
public static void main(String[] args) {
Book book = new Book("J.K. Rowling", "Harry Potter and the Philosopher's Stone", 29.99, "Bloomsbury Publishing", 1997);
System.out.println("Author: " + book.getAuthor());
System.out.println("Title: " + book.getTitle());
System.out.println("Price: $" + book.getPrice());
System.out.println("Publisher: " + book.getPublisher());
System.out.println("Published Year: " + book.getPublishedYear());
}
}
```
输出结果为:
```
Author: J.K. Rowling
Title: Harry Potter and the Philosopher's Stone
Price: $29.99
Publisher: Bloomsbury Publishing
Published Year: 1997
```