📄 testthepersonandstudentclass.java
字号:
public class TestThePersonAndStudentClass{
public static void main(String args[]){
Name name1 = new Name ("Tom",'K',"Green");
Name name2 = new Name ("John",'D',"Whilliams");
Name name3 = new Name ("Ann",'B',"Hanks");
Name name4 = new Name ("Linchuan",'C',"Chen");
Student [] studentArray = new Student[4];
studentArray [0] = new Student (name1,"Chinese");
studentArray [1] = new Student (name2,"Biology");
studentArray [2] = new Student (name3,"Chinese");
studentArray [3] = new Student (name4,"Chinese");
sort(studentArray);
for (int i = 0;i<= studentArray.length-1;i++){
System.out.print(studentArray[i].toString());
}
System.out.print("The max student is "+max(studentArray).toString());
String [] stringArray = new String[4];
stringArray [0]= "Welcom to java!";
stringArray [1]= "Well done,boy!";
stringArray [2]= "Wo kao!";
stringArray [3]= "I'm hungry now!";
sort(stringArray);
for (int i = 0;i<= stringArray.length-1;i++){
System.out.println(stringArray[i] );
}
System.out.println("The max string is "+'"'+max(stringArray)+'"');
Rational [] rationalArray =new Rational[100];
for(int i = 0;i<=99;i++){
rationalArray[i]=new Rational((long)((Math.random()+1)*100),(long)((Math.random()+1)*100));
}
sort(rationalArray);
for (int i = 0;i<= rationalArray.length-1;i++){
System.out.print(rationalArray[i].toString()+' ');
}
System.out.print("\n");
System.out.print("The max rational is"+max(rationalArray).toString() +'\n');
Integer[] integerArray = new Integer[100];
for(int i = 0;i<=99;i++)
integerArray[i]=new Integer((int)(Math.random()*100));
sort(integerArray);
for (int i = 0;i<= integerArray.length-1;i++){
System.out.print(integerArray[i].toString()+' ');
}
System.out.print("\n");
System.out.print("The max integer is"+max(integerArray).toString() );
}
public static void sort(Object[] object) {
// Set the variables for the current min, minIndex, and compare value
Object currentMin;
int currentMinIndex;
int compareInt;
// Begin loop to work through the list.
for (int i = 0; i < object.length; i++) {
// Find the minimum in the list.
currentMin = object[i];
currentMinIndex = i;
for (int k = i + 1; k < object.length; k++) {
compareInt = ((Comparable) currentMin).compareTo(object[k]);
if(compareInt > 0) {
currentMin = object[k];
currentMinIndex = k;
}
}
// Swap list[i] with list[currentMaxIndex] if needed.
if (currentMinIndex != i) {
object[currentMinIndex] = object[i];
object[i] = currentMin;
}
}
} // End of instance method sort(Object[])
public static Object max (Object[] list){
sort (list);
return list [list.length-1];
}
}
class Name {
private String firstName;
private char mi;
private String lastName;
public Name (){
this("Jill",'S',"Barr");
}
//construct a name with firstname ,mi ,lastName
public Name(String firstName,char mi,String lastName){
this.firstName = firstName;
this.mi = mi;
this.lastName = lastName;
}
public String getFirstName(){
return firstName;
}
public void setFirstName (String firstName){
this.firstName = firstName;
}
public char getMi(){
return mi;
}
public void setMi(char mi){
this.mi = mi;
}
public String getLastName(){
return lastName;
}
public void setLastName(String lastName){
this.lastName = lastName;
}
public String getFullName (){
return firstName + ' '+mi + ' '+lastName;
}
}
class Person implements Comparable{
private Name name;
public Person(){
this (new Name("Jill",'S',"Barr"));
}
public Person(Name name){
this.name = name;
}
public Name getName(){
return name;
}
public void setName (Name name){
this.name = name;
}
public String toString(){
return '\n'+ name.getFullName() +'\n';
}
public boolean equals (Object object){
return (this == object);
}
public int compareTo (Object o){
int k = 0;
String a = this.getName().getLastName();
String b = this.getName().getFirstName();
char c = this.getName().getMi();
String a1 = ((Person)o).getName().getLastName();
String b1 = ((Person)o).getName().getLastName();
char c1 = ((Person)o).getName().getMi();
if (a.compareTo(a1)>0)
k = 1;
else if (a.compareTo(a1)<0)
k= -1;
else if (b.compareTo(b1)<0)
k= -1;
else if (b.compareTo(b1)>0)
k= 1;
else if (c <c1)
k= -1;
else if (c >c1)
k= 1;
return k;
}
}
class Student extends Person {
private String major;
public Student (){
super();
}
public Student (Name name,String major){
super(name);
this.major = major;
}
public String getMajor(){
return major;
}
public void setMajor(String major){
this.major = major;
}
public String toString (){
return this.getName().getFullName()+'\t'+ major +'\n';
}
public int compareTo(Object o){
int k = 0;
String a = this.getMajor();
String b = this.getName().getLastName();
String c = this.getName().getFirstName();
char d = this.getName().getMi();
String a1 = ((Student)o).getMajor();
String b1 = ((Student)o).getName().getLastName();
String c1 = ((Student)o).getName().getFirstName();
char d1 = ((Student)o).getName().getMi();
if (a.compareTo(a1)>0)
k=1;
else if (a.compareTo(a1)<0)
k=-1;
else if (b.compareTo(b1)<0)
k=-1;
else if (b.compareTo(b1)>0)
k=1;
else if (c.compareTo(c1)<0)
k=-1;
else if (c.compareTo(c1)>0)
k=1;
else if (d<d1)
k=-1;
else if (d>d1)
k=1;
return k;
}
}
class Rational extends Number implements Comparable{
private long numerator = 0;
private long denominator = 2;
public Rational(){
this(0,1);
}
public Rational(long numerator,long denominator){
long gcd = gcd(numerator,denominator);
this.numerator = ((denominator>0)?1:-1)*numerator/gcd;
this.denominator = Math.abs(denominator)/gcd;
}
public static long gcd(long n,long d){
long n1 = Math.abs(n);
long n2 = Math.abs(d);
int gcd = 1;
for(int k = 1;k<=n1&&k<=n2;k++){
if(n1%k==0&&n2%k==0)
gcd = k;
}
return gcd;
}
public long getNumerator(){
return numerator;
}
public long getDenominator(){
return denominator;
}
public Rational add(Rational secondRational){
long n = numerator * secondRational.getDenominator()+
denominator * secondRational.getNumerator();
long d = denominator * secondRational.getDenominator();
return new Rational(n,d);
}
public Rational subtract (Rational secondRational){
long n = numerator * secondRational.getDenominator()-
denominator*secondRational.getNumerator();
long d = denominator * secondRational.getDenominator();
return new Rational(n,d);
}
public Rational multiply(Rational secondRational){
long n = numerator * secondRational.getNumerator();
long d = denominator * secondRational.getDenominator();
return new Rational(n,d);
}
public Rational divide(Rational secondRational){
long n = numerator * secondRational.getDenominator();
long d = denominator * secondRational. getNumerator();
return new Rational(n,d);
}
public String toString (){
if(denominator==1)
return numerator + "";
else
return numerator+"/"+denominator;
}
public boolean equals(Object parm1){
if((this.subtract((Rational)(parm1))).getNumerator()==0)
return true;
else
return false;
}
public int hashCode (){
return new Double (this.doubleValue()).hashCode();
}
public int intValue(){
return (int)doubleValue();
}
public float floatValue(){
return (float)doubleValue();
}
public double doubleValue(){
return numerator * 1.0/denominator;
}
public long longValue(){
return (long)doubleValue();
}
public int compareTo(Object o){
if((this.subtract((Rational)o)).getNumerator()>0)
return 1;
else if ((this.subtract((Rational)o)).getNumerator()<0)
return -1;
else
return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -