YouTube

Got a YouTube account?

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

Korean subtitles

← What Are Java Objects

Get Embed Code
15 Languages

Showing Revision 1 created 10/18/2015 by sp11.

  1. 이 박스들 기억하세요?
  2. >> 무슨 박스 말인가요?
  3. >> 이거요.
  4. >> 아!
    >> 이제 기억나세요?
  5. >> 오 예, 예.
  6. 이제 기억났어요.
  7. 변수라고 하잖아요.
    특정한 값을 저장할 수 있는 곳이죠.
  8. 맞아요. 그리고
  9. 이 변수들을 여러 개 조합해서
    자바 객체를 만들 수 있죠.
  10. >> 오, 그러니까 두 개 이상의
    변수를 가지고
  11. 더 큰 뭔가를 만들 수 있다는 말이죠.
  12. >> 맞아요.
    >> 알겠어요
  13. >> [SOUND] 텍스트뷰처럼 말이죠.
  14. >> 그래요.
    이제 정수형 변수를 만들 수 있어요.
  15. >> 이건 폰트 사이즈고요.
  16. >> 맞아요.
  17. >> 알겠어요.
    [SOUND]
  18. >> 이렇게 문자형 변수를
  19. 가질 수도 있어요.
  20. >> 문자형 변수 안에는 실제 텍스트가
    들어가는 거네요.
  21. >> 그래요, 텍스트뷰 안에
    스테이트 형태로 들어갈 수 있어요.
  22. >> 그리고 다음에 등장하는
    다양한 메소드를 이용해서
  23. 이 변수들과 교류할 수 있는 거로군요.
  24. >> 바로 그래요.
  25. >> 좋아요.
    한 번 해봅시다.
  26. >> 이미 설명드린 대로, 텍스트 뷰를
    이렇게 스크린 상에 표시하는 것은
  27. 앱 안의 자바 객체를 통해
    컨트롤 합니다.
  28. 이것은 텍스트뷰 자바 객체를
    예로 들어본 것인데요.
  29. 이렇게 상자처럼 그 안에
    스테이트를 저장하는 거죠.
  30. 스테이트는 여러 개의
    필드로 구성됩니다.
  31. 필드는 2과에서 배운 대로
    변수의 하나예요.
  32. 글로벌 변수를 공부할 때 설명했었죠.
  33. 여기 '투데이' 스트링을
    이 텍스트 필드에 저장할 수 있어요.
  34. 이 필드에 저장한 텍스트가
    나중에 스크린 상에 표시되는 거죠.
  35. 이 텍스트의 폰트 사이즈를 저장할
    정수 필드를 설정할 수도 있어요.
  36. 여러 가지 다른 필드도 있어요.
  37. 텍스트 색이나 폰트 종류처럼 말이죠. 이들이
    텍스트뷰 내의 스테이트를 구성합니다.
  38. 이 그림에는 다 그리지 않았어요.
  39. 자바 객체와 교류하고 앱이 실행중일 때
  40. 이를 변화시키기 위해서,
    텍스트뷰 상에서 메소드를 호출할 수 있습니다.
  41. 3과에서 이미 메소드에 관해
    배운 바 있죠.
  42. 텍스트뷰 상에서의 메소드에는
    setText와 getText 등이 있습니다.
  43. setTextSize 혹은 getTextSize 등의
    메소드도 역시 사용 가능합니다.
  44. 각각의 메소드는 일군의 지시사항만을
    수행합니다.
  45. 더 복잡한 형태의 메소드를 사용할 수도
    있어요.예를 들어 onDraw는
  46. 텍스트뷰를 스크린 상에
    표시하는 역할을 수행하죠.
  47. 요약하자면, 이 텍스트뷰 객체는
    그 내용을 스테이트에 저장하며,
  48. 메소드를 호출하여 이 텍스트뷰의
    스테이트를 수정하거나,
  49. 더 복잡한 액션을 수행하도록
    텍스트뷰와 교류할 수 있는 것입니다.
  50. 이미지뷰를 스크린에 구현하기 위해,
    이미지뷰 용의 자바 객체가
  51. 이미 앱 안에 자리하고 있죠.
  52. 이 이미지뷰에는 이미지를 어떻게
    표시할 것인가에 대한 정보 및
  53. 가운데 정렬과 같은 텍스트 구성 관련
    스테이트 정보가 들어 있습니다.
  54. 이미지뷰의 스테이트를 구성하는
    다른 필드들도 있어요.
  55. 여기에는 그리지 않았습니다.
  56. setImage이나 setScaleType 같은
    메소드, 그리고 onDraw처럼
  57. 이 이미지뷰를 스크린에 그려내 주는
    더 복잡한 메소드도 있습니다.
  58. 명심하실 것은, 우리 같은 개발자들의 경우
  59. 스크린에 구현하기 위해 onDraw를
    굳이 호출할 필요는 없다는 겁니다.
  60. 안드로이드에서는 자동으로 호출이
    이뤄집니다. 하지만 이런 메소드를
  61. 호출하여 이미지뷰를 바꾸는 법을 알면
    확실히 유용하겠죠.
  62. 그럼 어떤 필드가, 그리고 어떤
    메소드가 이미지뷰 스테이트에
  63. 들어가 있는 지를 우리는 어떻게
    알 수 있을까요?
  64. 이 질문에 답하려면, 해당 객체의
    클래스 정의를 살펴볼 필요가 있습니다.
  65. 이건 TextView.java.라고 하는 파일인데,
  66. 우리가 MainActivity.java.를
    정의한 방식과 유사합니다.
  67. 이 클래스 텍스트뷰 파일에는,
    코드 덩어리가 들어 있습니다.
  68. 메소드 뿐만 아니라 텍스트뷰의
    스테이트도 알려주죠.
  69. 지금 상황에선 스테이트나 메소드를
    정확히 알려주는 게 아니라, 그에 관한
  70. 정보만을 담고 있을 뿐입니다.
  71. 텍스트뷰가 작동하는 규칙만 정의해
    놓은 걸로 생각하시면 돼요.
  72. 이 객체 변수는 'today'라고 적힌 텍스트, 혹은
    텍스트 사이즈 18과 같은
  73. 특정한 정보를 저장할 수 있습니다.
  74. 이 클래스를 사용하여 더 많은 텍스트뷰
    객체 인스턴스를 만들 수 있으며,
  75. 여기에는 다른 텍스트 값이
    들어갈 수 있죠.
  76. 여기에 'hello'라는 텍스트 값이
    들어갈 수 있을 것 같고,
  77. 여기엔 'goodbye'라는 텍스트가
    들어갈 수 있겠네요.
  78. 폰트 크기나 글자색을 다르게 지정하는
    등의 일이 가능합니다.
  79. 하지만, 이들은 전부 클래스 템플릿을
    기반으로 합니다.
  80. 클래스와 객체 인스턴스를 구분하는 게
    좀 어렵게 느껴지실 지도 모르겠군요.
  81. 하지만 괜찮아요.
  82. 익숙해 지는덴 시간이 걸리는 법이죠.
  83. 이렇게 비유하면 이해가 쉬울 거예요.
  84. 집의 평면도를 설계하는 것과 같다고
    생각하시면 돼요.
  85. 평면도를 사용해서 실제 집을
    만들잖아요.
  86. 각각의 집 구조는 다 조금씩
    달라질 수 있죠.
  87. 하지만 그 모두는 평면도에 기반해서
    만들어지는 겁니다.
  88. 평면도가 집 그 자체는 아니라는 걸
    인지하는 게 중요해요.
  89. 그건 설계도일 뿐이죠.
  90. 마찬가지로, 텍스트뷰 클래스는
    객체 인스턴스를 만드는 데 사용됩니다.
  91. 실제 텍스트 값이나 텍스트 색 혹은
    사이즈 등의 정보를 지니고 있는 건
  92. 이 인스턴스 들이예요.
  93. 그럼 각각의 클래스는 어떤
    모습일까요?