java/객체지향

[객체지향] 객체

2021. 7. 5. 21:01

속성과 기능

 

 객체는 속성과 기능, 두 종류의 구성요소로 이루어져 있다. 앞서 클래스와 객체를 설명한 것과 같이 클래스는 객체를 만들기 위한 설계도이고 클래스에는 객체의 모든 속성과 기능이 정의되어 있다. TV를 예로 들어보면, TV의 속성으로는 전원상태, 크기, 길이, 높이, 색상, 볼륨, 채널과 같은 것들이 있으며, 기능으로는 켜기, 끄기, 볼륨 높이기, 채널 변경하기 등이 있다.

 

속성 기능
켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경하기 크기, 길이, 높이, 색상, 볼륨, 채널

 

객체지향 프로그래밍에서는 속성과 기능을 아래와 같이 변수와 메서드로 표현할 수 있다.

 

속성(property) -> 멤버변수(variable)

기능(function)->메서드(method)

 

채널 -> int channel

채널 높이기 -> channelUp(){...}

 

위에서 분석한 내용을 토대로 Tv클래스를 만들어 보면 다음과 같다.

 

class Tv {
    String color; //색깔
    boolean power; //전원상태
    int channel; //채널
    
    void power()     {power = !power;}
    void channelUp() {channel++;}
    void channelDown() {channel--;}

 

위에 있는 멤버변수(color, power, channel)은 '변수'라 하고 아래에 있는 멤버변수(power, channelUp, channelDown)는 '메서드'라고 한다. 객체는 일반적으로 '클래스생성 -> 객체생성 -> 객체사용'의 순으로 생성 및 사용된다.

 

객체배열

 

 많은 수의 객체를 다뤄야할 때, 배열을 다루면 편리할 것이다. 그래서 객체 또한 배열로 다루는 것이 가능하며 이를 '객체배열'이라 한다.

객체를 배여한다는 말의 의미는 배열안에 객체가 저장되는 것이 아니다. 객체의 주소가 저장된다. 객체 배열은 참조변수들을 하나로 묶은 참조변수 배열이다.

 

 Tv tv1, tv2, tv3; -> Tv[] tvArr = new Tv[3];

 

 

 객체 배열을 생성하는 것은, 그저 객체를 다루기 위한 참조변수들이 만들어진 것일 뿐, 아직 객체가 저장되지 않았다. 객체를 생성해서 객체 배열의 각 요소에 저장하는 것을 잊으면 안 된다. 

 

Tv[] tvArr = new Tv[3]; // 참조변수 배열(객체 배열)을 생성

//객체를 생성해서 배열의 각 요소에 저장
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();

 

출처:자바의 정석 기초편(저자: 남궁성, 출판사: 도우출판)

'java > 객체지향' 카테고리의 다른 글

[객체지향] static 메서드와 인스턴스 메서드  (0) 2021.07.09
[객체지향] return문과 반환값  (0) 2021.07.09
[객체지향] 메서드  (0) 2021.07.08
[객체지향] 변수  (0) 2021.07.06
[객체지향]객체지향 언어, 클래스와 객체  (0) 2021.07.05
'java/객체지향' 카테고리의 다른 글
  • [객체지향] return문과 반환값
  • [객체지향] 메서드
  • [객체지향] 변수
  • [객체지향]객체지향 언어, 클래스와 객체
각시탈코더
각시탈코더
각시탈코더
각시탈코더
각시탈코더
전체
오늘
어제
  • 분류 전체보기 (203)
    • java (46)
      • 객체지향 (20)
      • 기본문법 (8)
      • 자바의 정석 연습문제 오답노트 (9)
      • 백준 알고리즘 (9)
    • Spring (17)
      • SpringMVC (8)
      • Spring DI와 AOP (5)
      • REST API와 Ajax (1)
      • Spring 프로젝트 (1)
      • Spring Security (0)
    • DB (47)
      • Oracle (15)
      • SQL오답노트 (25)
      • 튜닝 (0)
      • ERD (1)
      • DB 모델링 (5)
    • Servlet & JSP (3)
    • JDBC (2)
      • 기본 (1)
      • 스프링JDBC (1)
    • MyBatis (2)
    • JavaScript (2)
      • 코딩애플 (0)
      • 문법 (1)
    • React (0)
      • 코딩애플 (0)
    • HTML (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • CSS (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • Linux (0)
    • Git & GitHub (2)
      • Git (1)
    • CS (19)
      • 네트워크 (6)
      • HTTP (7)
      • 컴퓨터구조 (0)
      • 자료구조와 알고리즘 (2)
      • 기타 (4)
    • 개발설정 (2)
    • 기술면접 (0)
      • JAVA (0)
      • Spring (0)
      • DB (0)
      • 네트워크 (0)
      • 공통 (0)
    • 프로젝트 (2)
      • 게시판만들기 (2)
    • 기혁씨의 삽질표류기 (28)
    • 참고자료 (2)
      • 국비수업 (0)
      • 당당 프로젝트 (1)
    • 뉴렉처 (17)
      • 자바 (11)
      • 자바스크립트 (3)
      • 키워드 (0)
      • 숙제 (0)
      • CSS (0)
      • DB (3)
      • 서블릿 (0)
      • 스프링 (0)
      • DOM (0)
    • 내가 만든 학습그림 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • It
  • 웹프로그래밍
  • Oracle
  • 서브쿼리
  • 연습문제
  • 배열
  • 백준
  • Java
  • 자바
  • 자바의정석기초편
  • 오류
  • 쿼리
  • 뉴렉처
  • SQL
  • 모두의네트워크
  • 개발자
  • 에러
  • 오라클
  • 객체지향
  • 알고리즘
  • 코딩
  • 프로그래머스
  • 스프링
  • 자바의정석
  • 네트워크
  • 공부
  • db
  • spring
  • 백엔드
  • 국비수업

최근 댓글

최근 글

hELLO · Designed By 정상우.
각시탈코더
[객체지향] 객체
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.