/* Student class with a constructor that initialises the name, gender, and degreeProgramme. */
public class Student {
public static void main(String[] args){
Student s1 = new Student("a", "b", "c", "d");
System.out.println(s1.toString());
s1.setName("Mary Jones");
s1.setGender("female");
s1.setStudentID("0564");;
s1.setDegreeProgramme("History");
Student s2 = new Student("Mary jones", "female", "0564", "History");
Student s3 = new Student("Mary Jones", "female", "0564", "History");
System.out.println(s1);
System.out.println(s3);
System.out.println(s2);
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
}
private String name; /* instance variable */
private String gender; /* instance variable */
private String studentID; /* instance variable */
private String degreeProgramme; /* instance variable */
/* Student constructor that receives 4 parameters */
public Student(String name, String gender, String studentID, String degreeProgramme){
this.name = name; /* assigns name to instance variable name */
this.gender = gender; /* assigns gender to instance variable gender */
this.studentID = studentID; /* assigns studentID to instance variable studentID */
this.degreeProgramme = degreeProgramme; /* assigns degreeProgramme to instance variable degreeProgramme */
}
/* method that returns the name of the student */
public String getName(){
return name;
}
/* method that returns the gender of the student */
public String getGender(){
return gender;
}
/* method that returns the degree programme of the student */
public String getDegreeProgramme(){
return degreeProgramme;
}
/* method that returns the student ID */
public String getStudentID(){
return studentID;
}
/* method that sets the name of the student */
public void setName(String name){
this.name = name;
}
/* method that sets the student ID */
public void setStudentID(String studentID){
this.studentID = studentID;
}
/* method that sets the gender of the student */
public void setGender(String Gender){
this.gender = Gender;
}
/* method that sets the degree programme of the student */
public void setDegreeProgramme(String degreeProgramme){
this.degreeProgramme = degreeProgramme;
}
/* method that returns the name, gender, and degree programme of the student */
public String toString(){
String studentInfo = "["+name+ ", " +gender+ ", ID: " +studentID+ ", " +degreeProgramme+"]" ;
return studentInfo;
}
} /* end class Student */
当前,您正在使用从类java.lang.Object继承的equals方法,该方法实现如下:
public boolean equals(Object obj) {
return this == obj;
}
它检查this和obj是否引用了同一个实例。在您的示例中,s1和s3是Student的不同实例,因此s1.equals(s3)返回false。
您可以实现自己的equals方法来实现您的目的,例如:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Student)) return false;
Student student = (Student) o;
if (name != null ? !name.equals(student.name) : student.name != null) return false;
if (gender != null ? !gender.equals(student.gender) : student.gender != null) return false;
if (studentID != null ? !studentID.equals(student.studentID) : student.studentID != null) return false;
return !(degreeProgramme != null ? !degreeProgramme.equals(student.degreeProgramme) : student.degreeProgramme != null);
}
问题内容: 我正在使用具有Spring安全性的BCryptPasswordEncoder。我的期望是,对于相同的输入,我将始终获得相同的输出。但是对于相同的输入,我得到不同的输出。您可以使用以下代码段对其进行测试: 输出:$ 2a $ 10 $ cYLM.qoXpeAzcZhJ3oXRLu9Slkb61LHyWW5qJ4QKvHEMhaxZ5qCPi 输出2:$ 2a $ 10 $ KEvYX9y
本文向大家介绍shorts1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?相关面试题,主要包含被问及shorts1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?时的应答技巧和注意事项,需要的朋友参考一下 答: short s1 = 1; s1 = s1 + 1;有错,s1是short型,
我正在使用带有Spring Security的BCryptPasswordEncoder。我的期望是,对于相同的输入,我总是得到相同的输出。但是对于相同的输入,我得到不同的输出。您可以使用下面的代码片段对其进行测试: 输出:$2A$10$CYLM.QOXPEAZCZHJ3OXRLU9SLKB61LHYWW5QJ4QKVHEMHAXZ5QCPI 输出2:$2A$10$kevyx9yjj0f1x3wl
我需要从30fps的视频中提取帧两次:(I)720p png帧,(ii)270p tiff帧。 我分别使用以下命令来实现这一点: 然而,这导致第一命令输出35,776帧,第二命令输出35,812帧,尽管视频是相同的,并且所请求的framerate是30fps。 这是什么原因造成的?如何确保ffmpeg输出相同数量的(同步)帧?
我写了一段代码,对给定的输入进行排序,但在返回排序后的输入后,它将始终返回相同的输出。我正在使用创建控制台应用程序。Visual Studio中的NET 5.0(当前版本)。 当我输入“Car-Apple-Banana”时,它会按单词排序。排序() 之后,我打印出原始输入,但它似乎也被排序。我不知道为什么,因为我从不分类。 当输入为:“汽车苹果香蕉” 我现在得到的输出是: 苹果香蕉车 苹果香蕉车
问题内容: 似乎以下代码应返回true,但返回false。 这有什么意义? 问题答案: 常规()和严格()相等之间的唯一区别是,严格相等运算符禁用类型转换。由于已经在比较两个相同类型的变量,因此使用的相等运算符的类型无关紧要。 不管您使用常规相等还是严格相等,对象比较仅 在您比较相同的精确对象时得出 。 也就是说,给定,,,但。 两个不同的对象(即使它们都具有零或相同的精确属性)也永远不会相等地进