gpt4 book ai didi

java - 在 Java 中使用自定义数据类型

转载 作者:行者123 更新时间:2023-12-01 17:27:26 24 4
gpt4 key购买 nike

我是编程新手,我有一个任务是编写一个名为 Names 的类。在我的 main 方法中,我想读取整个名称并将其传递给我的 Names 构造函数。但是,在传递方法数据时,我不断收到类型不匹配错误。我做错了什么??

import java.util.Scanner;
public class Names {
String first, middle, last;
/**
* @param args
*/
public Names(){

}
public Names(String first, String middle, String last){
first = this.first;
middle = this.middle;
last = this.last;
}

//returns the first name
public String getFirst(){
return first;
}

//returns the middle name
public String getMiddle(){
return middle;
}
//returns the last name
public String getLast(){
return last;
}
// Returns a string containing the person's full name in order,
public String firstMiddleLast(){
String ret = first + " " + middle + " " + last;
return ret;
}
public String lastFirstMiddle(){
String ret = last + ", " + first + " " + middle;
return ret;
}
public boolean equals(Names otherName){
if (first.equalsIgnoreCase(otherName.first) || middle.equalsIgnoreCase(otherName.middle)
|| last.equalsIgnoreCase(otherName.last))
return true;
else
return false;
}
public String initials(){
String retVal = first.substring(0) + "." + middle.substring(0) + "." + last.substring(0) + ".";
return retVal.toUpperCase();
}
public int length(){
String wholeName = (first+middle+last);
int retVal = wholeName.length();
return retVal;
}
public static void main(String[] args) {
Names person1 = new Names();
Names person2 = new Names();
Scanner scan = new Scanner(System.in);

System.out.println("Enter First Name: ");
person1.first = scan.next();

}

}

最佳答案

一方面,你的构造函数是向后的。这样做:

public Names(String first, String middle, String last){
this.first = first;
this.middle = middle;
this.last = last;
}

this 保留字始终指您正在使用的类/对象。因此,当您在 Names 类中引用 this.first 时,您引用的是 Names 的第一个变量,而不是您首先命名的函数参数。

关于java - 在 Java 中使用自定义数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com