YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Chinese, Traditional subtitles

← What Are Java Objects

Get Embed Code
15 Languages

Showing Revision 1 created 10/11/2015 by sp14.

  1. 你還記得盒子嗎?
  2. >>什麼盒子?
  3. >>這些箱子。
  4. >>呵呵!
    >>你仍記得它們嗎?
  5. >>哦,是的,是的。
  6. 我當然還記得。
  7. 他們是變量,
    你可以把數值放進去。
  8. 對啊,
  9. 您可以將幾個這些
    變量合併成更大的Java物體。
  10. >>哦,這樣你就可以把
    多於兩個的變量,
  11. 變成一個更大的東西。
  12. >>沒錯。
    >>好
  13. >> [一些音效]像一個TextView
  14. >>對。
    因此,我們可以有一個整數。
  15. >>這是字體大小。
  16. >>沒錯。
  17. >>好。
    [聲音]
  18. >>然後你也可以有
  19. 一個字符串變量。
  20. >>而對於字符串變量中有著他
    實際的文字。
  21. >>是的,這些都可以放到TextView裡面
    成為TextView的狀態。
  22. >>我們可以使用我們將接下來要用的方法,
  23. 與這些東西互動。
  24. >>沒錯。
  25. >>好。
    讓我們開始做這一點。
  26. >>正如我們前面提到的,
    在屏幕上顯示一個TextView
  27. 實際上是透過在應用程序
    中的Java物件控制。
  28. 這是一個TextView Java
    物件的例子。
  29. 這就像一個盒子,在它的裡面,
    它擁有著一種狀態。
  30. 狀態是由一堆
    fields組成。
  31. fields是一個變量,
    就像在第二課提及的,
  32. 當時我們學了全局變量。
  33. 我們有一個文本text field
    存儲著today這字串,
  34. 這將最終顯示在屏幕上的文字。
  35. 我們還可以有一個整數fields
    用來存儲字體大小。
  36. 還很多方面的fields
  37. 例如文字顏色,字體
    等的TextView的狀態。
  38. 我只是沒有把它畫在這張照片中。
  39. 要使用此Java物件互動,
  40. 及在應用程序運行時改變它,
    我們稱為TextView上的methods
  41. 我們已在第三課了解過methods
  42. TextViewmethods
    的例子有setTextgettext
  43. 還有setTextSize
    getTextSize,等等。
  44. 所有這些methods只是
    執行的一些指令。
  45. 你可以有更複雜的
    methods,如OnDraw
  46. 它會把TextView繪畫到屏幕上。
  47. 總體來說,這個TextView的物件包含
    TextView的狀態信息,
  48. 並且可以用methods
    TextView的互動,
  49. 例如如修改狀態,
    或者做更複雜的動作。
  50. 要在屏幕上顯示一個ImageView
    實際上有一個
  51. ImageViewJava物件
    在應用程序中。
  52. 這個的ImageView的包含狀態
    信息,如應該顯示出
  53. 哪些圖像,以及它的大小,
    中心位置等。
  54. 同樣地,ImageView也有很多
    不同的field
  55. 我只是沒有把它們畫在這裡。
  56. 還有像setImagesetScaleType
    methods,甚至更複雜的也有。
  57. OnDraw這個methods,會把
    這個ImageView的繪畫到螢幕上。
  58. 需要注意的是,作為開發者,
  59. 我們並沒有明確地說明要用OnDraw
    來告訴它繪製到屏幕上。
  60. 雖然Android已自動為我們完成了,
  61. 但用這些methods來改變ImageView
    仍然是十分有用的。
  62. 那麼,我們如何知道ImageView
    入面所有的fields
  63. ImageView所有的methods呢?
  64. 要回答這個問題,我們要看看
    該對象的類定義。
  65. 這是一個名為TextView.java文件,
  66. 類似於我們定義
    MainActivity.java般。
  67. 在這個TextView的類文件,
    我們有一堆代碼
  68. 關於TextView的狀態及
    methods
  69. 它不是說明確切的狀態及methods
    只是列出它包含
  70. 的狀態信息,及它包含
    methods等相關資料。
  71. 這個你可以想像為一個為
    TextView下定義的規則。
  72. 而這個物件可以容納特定的
    文字串,例如today
  73. 或是文本大小18。
  74. 你也可以使用這類來創建
    更多TextView的物件,
  75. 他們可以有不同的文字串。
  76. 我覺得這個可以包含
    文字hello
  77. 而這一個可以容納
    文字goodbye
  78. 他們可以有不同的字體大小,
    不同的顏色等等。
  79. 然而,它們全都基於
    同一個類別模板。
  80. 你可能會發現很難區分
    一類別和一個物件,
  81. 不過沒關係。
  82. 這需要一定的時間來適應。
  83. 這裡有一個比喻。
  84. 你可以把它看成
    平面圖的房子。
  85. 您可以使用此平面圖
    來創建多個家。
  86. 每個家都可以
    略有不同。
  87. 但它們都基於
    這個平面圖。
  88. 要注意,這平面圖亦不等於房子本身。
  89. 這只是個計劃。
  90. 同樣,TextView的類也於
    創建這些對象。
  91. 因此,這些instances擁有著
    它本身的實際文字,
  92. 文字顏色和文字大小。
  93. 那麼,這個classes是什麼樣子?