class Customer{ //客户名字 private String name; //客户的银行账户 private Account act; public Customer(){ } public Customer(String name, Account act){ this.name = name; this.act = act; } public void setName(String name){ this.name = name; } public String getName(){ return name; } } 其中 public void setName(String name){ this.name = name; } public String getName(){ return name; }的作用是什么
时间: 2023-05-30 08:01:42 浏览: 44
这两个方法是用来设置和获取客户名字的。其中,setName用于设置客户的名字,参数为String类型的name,将客户的名字设置为传入的name值。而getName方法用于获取客户的名字,返回一个String类型的name值。通过这两个方法,可以方便地设置和获取客户的名字属性。
相关问题
class Customer{ //客户名字 private String name; //客户的银行账户 private Account act; //无参数构造方法 public Customer(){ }其中public Customer()的作用是什么)
public Customer()是一个无参数构造方法,它的作用是创建一个Customer对象,但是该对象的属性值都是默认值,即name为null,act为null。在实际使用中,我们通常会通过该构造方法创建一个空的Customer对象,并在后续的操作中逐步为其设置属性值。
实现银行账户类构造方法成成员方法。 public class Account //账户类 { private String name; //储户姓名 private double balance; //账户余额 public Account(String name) //构造方法 public String getName() //返回账户名 public double balance() //查看账户余额 public boolean put(double value)//存款,存入金额 public double get(double value) //取款,参数为取款金额,返回实际取到金额 }声明实现Comparble<T>接口,提供按照账户余额比较账户大小的方法;同时,使用Comparator<T>接口声明比较器类CompareName,按照账户名比较账户大小;编写main方法测试相应的接口实现方法。
好的,我可以帮你解答这个问题。
首先,我们需要将构造方法转换为成员方法。成员方法需要与类名相同,没有返回类型(也不是void),并且要在方法中使用this关键字来代表当前对象。转换后的代码如下:
```java
public class Account {
private String name; //储户姓名
private double balance; //账户余额
//成员方法,用于创建Account对象
public Account(String name) {
this.name = name;
this.balance = 0.0; //新建账户余额为0
}
public String getName() {
return this.name;
}
public double getBalance() {
return this.balance;
}
public boolean put(double value) {
if (value > 0) {
this.balance += value;
return true;
} else {
return false;
}
}
public double get(double value) {
if (value > 0 && value <= this.balance) {
this.balance -= value;
return value;
} else {
return 0.0;
}
}
}
```
接着,我们可以实现Comparable<T>接口,提供按照账户余额比较账户大小的方法。这里的T代表泛型,我们可以将它指定为Account,表示我们要比较的对象是Account类型。实现Comparable<Account>接口需要实现compareTo方法,该方法返回一个int值,表示当前对象与另一个对象的大小关系。如果当前对象小于另一个对象,则返回负数;如果当前对象等于另一个对象,则返回0;如果当前对象大于另一个对象,则返回正数。按照账户余额比较大小的代码如下:
```java
public class Account implements Comparable<Account> {
//...
@Override
public int compareTo(Account other) {
if (this.balance < other.balance) {
return -1;
} else if (this.balance == other.balance) {
return 0;
} else {
return 1;
}
}
}
```
最后,我们需要使用Comparator<T>接口声明比较器类CompareName,按照账户名比较账户大小。Comparator<T>接口是一个函数式接口,我们可以使用Lambda表达式来实现它。比较器类需要实现compare方法,该方法接受两个参数,分别表示要比较的两个对象,返回一个int值,表示它们的大小关系。按照账户名比较大小的代码如下:
```java
import java.util.Comparator;
public class CompareName implements Comparator<Account> {
@Override
public int compare(Account a1, Account a2) {
return a1.getName().compareTo(a2.getName());
}
}
```
最后,我们可以编写main方法测试相应的接口实现方法。测试代码如下:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Account> accounts = new ArrayList<>();
accounts.add(new Account("Alice"));
accounts.add(new Account("Bob"));
accounts.add(new Account("Charlie"));
//按照账户余额排序
Collections.sort(accounts);
for (Account account : accounts) {
System.out.println(account.getName() + " " + account.getBalance());
}
//按照账户名排序
CompareName compareName = new CompareName();
Collections.sort(accounts, compareName);
for (Account account : accounts) {
System.out.println(account.getName() + " " + account.getBalance());
}
}
}
```
输出结果如下:
```
Alice 0.0
Bob 0.0
Charlie 0.0
Alice 0.0
Bob 0.0
Charlie 0.0
```
由于我们没有进行存款或取款操作,所以账户余额都是0。按照账户余额排序和按照账户名排序都没有区别,因为所有账户的余额都相同。