Java 繼承與多型實驗
實驗講義
上機題目一:試以Point類為例,嘗試對Object類的clone()方法和equal()方法進行覆蓋。
上機題目二:現在輸入n個數字,以逗號分開、放入一個字串中,然後按升序和降序排序,並顯示排序結果。
第一個實驗的程式碼
package com.whj.exam2;
public class Text {
public static void main(String[] args) throws CloneNotSupportedException
{
Piont p=new Piont(8,6);
Piont q=(Piont)p.clone();
System.out.println(p);
System.out.println(q);
System.out.println(q==p);
System.out.println(q.equals(p));
}
}
package com.whj.exam2;
public class Piont {
private int x;
private int y;
public int getX() {
return x;
}
public int getY() {
return y;
}
public Piont(int x, int y) {
super();
this.x = x;
this.y = y;
}
@Override
protected Object clone() throws CloneNotSupportedException {//異常化處理
return new Piont(x,y);
}
@Override
public boolean equals(Object obj) {
if(((Piont)obj).x==this.x&&((Piont)obj).y==this.y)
return true;
else
return false;
}
@Override
public String toString() {
return x+" "+y;
}
}
第一個實驗主要是對object類中的equals(),clone(),tostring()類進行覆蓋,覆蓋中沒有改變返回值的型別,所以我們就對他進行強制轉換。
下面是第二個實驗
package com.whj.exam2;
import java.util.Arrays;
public class NumerTest {
public static void main(String[] args) {
String [] str=splitstr.split("8,6,12,19,11,17");//定義分離字串的類
int []number=new int [str.length];
for(int i=0;i<str.length;i++)
{
number[i]=Integer.parseInt(str[i]);//把字元轉化為整型數
}
Arrays.sort(number);//進行排序
for(int i=0;i<str.length;i++)
{
System.out.println(number[i]);
}
System.out.println();
for(int i=(str.length-1);i>=0;i--)
{
System.out.println(number[i]);
}
}
}
package com.whj.exam2;
import java.util.StringTokenizer;//StringTokenizer 這個類 用來分割字串
public class splitstr {
public static String[] split(String str) {
if(str==null||str.trim().equals(""))//trim()方法是去掉字串前後的空格;
{
return null;
}
StringTokenizer s1=new StringTokenizer(str,",");//標記分離的標準,遇到,就分離;(分隔符)
String []s2=new String[s1.countTokens()];//計算在生成異常之前可以呼叫此 tokenizer 的 nextToken 方法的次數
int i=0;
while(s1.hasMoreTokens())//判斷s1物件裡的hasMoreTokens()方法是否有返回值(看有沒有下一個匹配的欄位)
{
s2[i]=s1.nextToken();//nextToken() 用於返回下一個匹配的欄位
i++;
}
return s2;
}
}
做第二實驗深刻感受到了 java語言與c語言的差別,java在寫程式的時候,先是看api裡面有沒有我們需要的類,然後再查詢裡面的方法,而不是一開始就自己動手去寫,用java還是有點不太適應,感覺java裡面的類和方法真的好多,還有好多都不熟悉,還要好好努力啊!!
相關文章
- java繼承與多型Java繼承多型
- 繼承與多型繼承多型
- Java中的類繼承與多型Java繼承多型
- JavaScript 的繼承與多型JavaScript繼承多型
- Javascript的繼承與多型JavaScript繼承多型
- 多繼承 與 多重繼承繼承
- 繼承和多型繼承多型
- 多型和繼承多型繼承
- 《Java從入門到失業》第五章:繼承與多型(5.1-5.7):繼承Java繼承多型
- C語言實現繼承多型C語言繼承多型
- Java基礎之淺談繼承、多型Java繼承多型
- 【Java學習筆記】繼承和多型Java筆記繼承多型
- 繼承+多型+抽象類繼承多型抽象
- Head First Java學習筆記(7):繼承與多型Java筆記繼承多型
- Java 繼承與多型:程式碼重用與靈活性的巧妙結合Java繼承多型
- aardio 實現封裝繼承多型封裝繼承多型
- Java入門教程九(封裝繼承多型)Java封裝繼承多型
- java封裝繼承以及多型(含程式碼)Java封裝繼承多型
- Java的三大特性:封裝、繼承、多型Java封裝繼承多型
- 學習部落格之Java繼承多型介面Java繼承多型
- Python 繼承 和 多型Python繼承多型
- OOP的多型和繼承OOP多型繼承
- TypeScript(5)類、繼承、多型TypeScript繼承多型
- 封裝、繼承和多型封裝繼承多型
- Java抽象類、繼承及多型和介面卡的實現Java抽象繼承多型
- Java:類與繼承Java繼承
- 繼承與派生,多繼承,函式過載,建構函式呼叫順序 靜態多型和動態多型繼承函式多型
- JAVA物件導向基礎--封裝 繼承 多型Java物件封裝繼承多型
- [JAVA] Java物件導向三大特徵:封裝、繼承、多型Java物件特徵封裝繼承多型
- C中的繼承和多型繼承多型
- 《Java從入門到失業》第五章:繼承與多型(5.8-5.10):多型與Object類Java繼承多型Object
- Java的類與繼承Java繼承
- 多繼承繼承
- Python 簡明教程 --- 21,Python 繼承與多型Python繼承多型
- 詳細介紹Python類的繼承與多型Python繼承多型
- js原型繼承與多型 How to apply virtual function in javascriptJS原型繼承多型APPFunctionJavaScript
- c++菱形繼承、多型與類記憶體模型C++繼承多型記憶體模型
- Python中的繼承和多型Python繼承多型