以下程序运行结果正确的是:【 】 代码段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 14:31:23 浏览: 67
代码段3的程序运行结果是正确的。
解析:
代码段1只是定义了一个类 BookTest,但是没有实例化该类,因此没有输出结果。
代码段2中定义了两个BookTest类型的变量 book1 和 book2,分别使用了不同的构造方法来实例化对象。但是,由于没有无参构造方法,因此编译会报错。
代码段3中定义了两个构造方法,一个是无参构造方法,一个是带参数构造方法。在 main 方法中,使用不同的构造方法来实例化对象,输出了相应的结果。因此,代码段3的程序运行结果是正确的。
相关问题
1、请给出最终修改后的Book类的程序代码: 2、请给出最终修改后的BookTest类的程序代码: 3、请给出实验中的运行结果:
1、最终修改后的`Book`类的程序代码如下:
```java
public class Book {
private String bookname;
private String author;
private String press;
private String isbn;
private double price; // 注意这里应该是float类型,因为原始描述里提到的价格是45.0f
static int count;
public String getBookname() {return bookname;}
public String getAuthor() {return author;}
...
public void setBookname(String BName) {bookname = BName;}
public void setAuthor(String Auth) {author = Auth;}
...
public Book (String bName, String auth, String pre, String iSBN, String Pri){
bookname = bName;
author=auth;
press=pre;
isbn = iSBN;
price = Float.parseFloat(Pri); // 这里的price赋值应使用Float.valueOf或parseFloat转换
count ++;
}
public String toString(){
return "书名::" + bookname + "\n作者:" + author + "\n出版社:" + press + "\nISBN:" + isbn + "\n价格:" + price;
}
}
```
注意:实际的代码中,`toString()` 方法的 `idbn` 应修正为 `isbn` ,并且`price` 的获取与设定方法的声明有误,应当纠正。
2、最终修改后的`BookTest`类的程序代码示例:
```java
package com.sise.java.lab.test;
import com.seie.java.lab.Book;
public class BookTest {
public static void main(String[] args){
Book bk1 = new Book("Java核心编程技术", "张屹", "大连理工大学出版社", "978-7-5611-5767-1", 45.0f);
System.out.println("用toString方法:");
System.out.println(bk1.toString());
System.out.println("用访问器:");
System.out.println("书名:" + bk1.getBookname());
System.out.println("作者:" + bk1.getAuthor());
System.out.println("出版社:" + bk1.getPress());
System.out.println("ISBN:" + bk1.getIsbn());
System.out.println("价格:" + bk1.getPrice());
bk1.setPrice(50.0f);
System.out.println("\n修改后的书价为:" + bk1.getPrice() + "\n");
// 其他部分如调用无参数构造函数,使用setter设值等省略...
}
}
```
请注意上述代码可能存在一些语法错误或者拼写错误,例如导入路径不正确、类名不匹配等问题,请按照实际情况调整。
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进行测试,并且在不满足要求时输出错误信息并赋予默认值。
阅读全文
相关推荐
















