編輯:關於Android編程
instanceof關鍵字用於判斷一個引用類型變量所指向的對象是否是一個類(或接口、抽象類、父類)的實例。
instanceof是Java的一個二元操作符,和==,>,<是同一類東東。由於它是由字母組成的,所以也是Java的保留關鍵字。它的作用是測試它左邊的對象是否是它右邊的類的實例,返回boolean類型的數據。舉個例子:
String s = "I AM an Object!"; boolean isObject = s instanceof Object;
我們聲明了一個String對象引用,指向一個String對象,然後用instancof來測試它所指向的對象是否是Object類的一個實例,顯然,這是真的,所以返回true,也就是isObject的值為True。
instanceof有一些用處。比如我們寫了一個處理賬單的系統,其中有這樣三個類:
public class Bill {//省略細節} public class PhoneBill extends Bill {//省略細節} public class GasBill extends Bill {//省略細節}
在處理程序裡有一個方法,接受一個Bill類型的對象,計算金額。假設兩種賬單計算方法不同,而傳入的Bill對象可能是兩種中的任何一種,所以要用instanceof來判斷:
public double calculate(Bill bill) { if (bill instanceof PhoneBill) { //計算電話賬單 } if (bill instanceof GasBill) { //計算燃氣賬單 } ... }
這樣就可以用一個方法處理兩種子類。
然而,這種做法通常被認為是沒有好好利用面向對象中的多態性。其實上面的功能要求用方法重載完全可以實現,這是面向對象變成應有的做法,避免回到結構化編程模式。只要提供兩個名字和返回值都相同,接受參數類型不同的方法就可以了:
public double calculate(PhoneBill bill) { //計算電話賬單 } public double calculate(GasBill bill) { //計算燃氣賬單 }
所以,使用instanceof在絕大多數情況下並不是推薦的做法,應當好好利用多態。
談到android事件處理,最復雜的就是對Touch事件的處理,因為Touch事件包括:down, move, up, cancle和多點觸摸等多種情況,多點觸摸的情況先
package com.gc.tabhost; /** * @author Android將軍 * * * * 1、TabHost是一種非常實用的組件,T
簡介屬性動畫是API 11新加入的特性,和View動畫不同,它對作用對象進行了擴展,屬性動畫可以對任意對象做動畫,也不像View動畫只支持四種簡單的變化。屬性動畫的默認時
理解球坐標系首先看下球的坐標系 ,如圖 : (圖來自百度百科 ) 設球上有一點 A ,球心為O ,OA在 xOy上的投影與X軸夾角為φ (范圍