java中的getxxx()和setxxx()
时间: 2024-06-12 09:09:53 浏览: 16
在Java中,getxxx()和setxxx()是一种常见的命名规范,用于表示访问一个类的私有属性或设置私有属性的值。其中,xxx通常是一个变量名。
getxxx()方法通常被称为getter方法,用于返回该变量的值。setxxx()方法通常被称为setter方法,用于设置该变量的值。
getter和setter方法的存在可以使类的属性对外部代码可读可写,同时保持类的封装性,从而使代码更加安全和灵活。
下面是一个简单的示例:
```
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
```
在上面的代码中,我们定义了一个Person类,并声明了一个私有成员变量name。然后,我们通过getName()和setName()方法来访问和设置这个私有变量。
相关问题
设计并测试一个表示图书的Book类,自己分析它的属性和方法,例如图书的书名、作者、月销售量等属性,编写对应的getXxx,setXxx方法,成员方法显示图书信息等,其余方法根据功能自定义,创建两个图书类的对象,并调用相应方法,分析两个对象的内存分配。
根据题目要求,Book类应该包括以下属性和方法:
属性:
- 书名(title):String类型
- 作者(author):String类型
- 月销售量(monthlySales):int类型
方法:
- 构造方法:可以根据传入参数初始化书名、作者和月销售量。
- getXxx和setXxx方法:用于访问和设置三个属性。
- display方法:用于显示图书信息。
下面是Book类的代码实现:
```java
public class Book {
private String title;
private String author;
private int monthlySales;
public Book(String title, String author, int monthlySales) {
this.title = title;
this.author = author;
this.monthlySales = monthlySales;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public int getMonthlySales() {
return monthlySales;
}
public void setMonthlySales(int monthlySales) {
this.monthlySales = monthlySales;
}
public void display() {
System.out.println("书名:" + title);
System.out.println("作者:" + author);
System.out.println("月销售量:" + monthlySales);
}
}
```
下面是测试代码,创建两个Book对象并调用相应方法:
```java
public class BookTest {
public static void main(String[] args) {
Book book1 = new Book("Java编程思想", "Bruce Eckel", 10000);
Book book2 = new Book("Effective Java", "Joshua Bloch", 5000);
book1.display();
System.out.println();
book2.display();
}
}
```
输出结果为:
```
书名:Java编程思想
作者:Bruce Eckel
月销售量:10000
书名:Effective Java
作者:Joshua Bloch
月销售量:5000
```
对于两个Book对象,它们会被分配到不同的内存空间中。在程序中,我们通过new关键字创建了两个不同的对象,它们在内存中的位置是不同的。
新建银行类Bank,属性int money(存款),构造方法及getXXX /setXXX 测试类:取款的方法getMoney(),提示取款金额,当输入的金额大于你的存款,抛出余额不足的异常 输入金额为负数,抛出余额不能为负数的异常,正常:显示余额
以下是Bank类的实现代码:
```java
public class {
private int money;
public Bank(int money) {
this.money = money;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
```
Bank类有一个money属性,构造方法用于初始化money,以及相应的getMoney和setMoney方法。
下面是测试类的实现代码:
```java
import java.util.Scanner;
public class TestBank {
public static void main(String[] args) {
Bank bank = new Bank(1000);
System.out.println("当前余额为:" + bank.getMoney());
try {
System.out.print("请输入取款金额:");
Scanner scanner = new Scanner(System.in);
int withdrawAmount = scanner.nextInt();
bank.getMoney(withdrawAmount);
System.out.println("取款成功!当前余额为:" + bank.getMoney());
} catch (InsufficientBalanceException e) {
System.out.println(e.getMessage());
} catch (NegativeAmountException e) {
System.out.println(e.getMessage());
}
}
}
```
在测试类中,首先创建一个Bank对象,初始存款为1000。然后使用Scanner获取用户输入的取款金额,并调用bank.getMoney方法进行取款操作。
getMoney方法会抛出两种自定义异常:InsufficientBalanceException(余额不足)和NegativeAmountException(金额为负数)。在catch块中捕获这两种异常,打印相应的错误信息。
如果没有抛出异常,则说明取款成功,打印当前余额。
您需要自己实现异常类InsufficientBalanceException和NegativeAmountException,可以继承Exception类,并在构造方法中传入相应的错误信息。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)