ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자바의 정석] ch6-11 ~ ch6-21 객체지향 개념 정리 (선언위치, 변수종류, 메서드, return문)
    Programming Language/Java 2021. 7. 14. 23:17

    ch6-11 선언위치에 따른 변수의 종류

     

    영역은 크게 두 가지로 나뉨

    1. 클래스 영역 - iv, cv(static+iv)

    2. 메서드 영역 - lv

    변수의 종류 선언위치 생성시기
    클래스 변수 (class variable) 클래스 영역 클래스가 메모리에 올라갈 때
    인스턴스 변수(instance variable) 클래스 영역 인스턴스가 생성되었을 때
    지역변수(local variable) 클래스 영역 이외의 영역
    (메서드 생성자, 초기화 블럭 내부)
    변수 선언문이 수행되었을 때

    *클래스변수는 객체 생성이 필요 없음. 아무때나 사용 가능

    *인스턴스 변수는 객체 생성 필요. 객체 생성을 해야 사용 가능

    *지역변수는 메서드 종료 시 자동제거됨

    *프로그래밍 관점에서 객체는 iv(인스턴스 변수) 를 묶어 놓은 것

     

     

    ch6-12 클래스 변수와 인스턴스 변수

     

    iv 인스턴스 변수(개별 속성)

    cv 클래스 변수(공통 속성) - static 붙임

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    Class Card {
     
        String kind; //무늬
        int number; //숫자
     
        static int width = 100; //폭
        static int height = 250; //높이
     
    }
    cs

     

     

    [아래와 같이 사용하면 되는데 클래스 변수의 경우 클래스명 전체를 사용해 주는 것을 권장 (c.width 로 해도 작동하나 권장안함. iv로 오해할 수 있음)]

    Card c = new Card();

    c.kind = "HEART";

    c.number = 5;

    c.width = 200;     -> Card.width = 200;

    c.height = 300;    -> Card.height = 300;

     

     

    ch6-13 클래스 변수와 인스턴스 변수 - 예제

    - 예제 설명

     

     

    ch6-14 메서드란?

    1. 문장들을 묶어놓은 것

    - 작업단위로 문장들을 묶어서 이름 붙인 것

    2. 값(입력)을 받아서 처리하고, 결과를 반환(출력)

     

    ===================================================================

    메서드 = 선언부 + 구현부

    ->

    선언부: 반환타입 메서드이름 (타입 변수명, 타입변수명, ...)

    {

         구현부: 메서드 호출 시 수행될 코드

    }

    ex ->

    int add(int a, int b)

    {

         int result = a + b;

         return result; //호출한 메서드로 결과 반환 (반환 값이 없을 경우 반환타입을 void 로 적어줌)

    }

    ===================================================================

     

    [메서드의 장점] : 중복코드 제거, 관리 용이, 재사용 가능

    - 코드의 중복 줄일 수 있음

    - 코드의 관리 쉬움

    - 코드 재사용 가능

    - 코드가 간결해서 이해 쉬움

     

    [메서드의 작성]

    - 반복적으로 수행되는 여러 문장을 메서드로 작성

    - 하나의 메서드는 한 가지 가능만 수행하도록 작성

     

     

    ch6-15 메서드의 구현부

     

    지역변수(lv) : 메서드 내에 선언된 변수 (메서드 내에서만 쓰기 때문에 이름 겹쳐도 상관 없음)

     

     

    ch6-16

     

     

    ch6-17 메서드의 호출 (메서드 call) 

     

    메서드이름(값1, 값2, ...); //메서드를 호출하는 방법

    *괄호 안에 작업에 필요한 값들 넣어줌 

     

    print99danAll(); //void print00danAll()을 호출

    int result = add(3, 5); //int add(int x, int y)를 호출하고, 결과를 result에 저장 x와 y는 중간역할을 한다고 하여 매개변수(parameter)라고 부름

    -> result는 작업 결과를 저장한 변수

     

    *메서드는 클래스 영역에만 정의 가능

     

     

    ch6-18 메서드의 실행흐름

     

    ch6-19

     

     

    ch6-20 return문

    - 실행중인 메서드를 종료하고 호출한 곳으로 되돌아간다.

    - 반환타입이 void가 아닌 경우, 반드시 return문 필요

    *참과 거짓일 때 모두 return문 필요

     

     

    ch6-21 반환값

    - 반환값: return 옆에 써주는 값 (return result;  에서 result 가 반환값)

    - 반환 타입이 void가 아닐 때 반환값의 타입이 일치하거나 자동형변환(ex char,byte,short) 가능해야함

     

     

     

    ============================================================================https://youtu.be/qA0D-nAcAvQ

     

    댓글

Designed by Tistory.