⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testthepersonandstudentclass.java

📁 这是初学类的必看程序,是面向对象的编程实践
💻 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 + -