-
[자바의 정석] 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 붙임
123456789Class 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
'Programming Language > Java' 카테고리의 다른 글
[자바의 정석] ch6-30 ~ ch6-41 객체지향 개념 정리 (오버로딩, 생성자, 생성자 this(), 참조변수 this, 변수의 초기화) (0) 2021.07.16 [자바의 정석] ch6-22 ~ ch6-29 객체지향 개념 정리 (호출스택, static 메서드) (0) 2021.07.16 [자바의 정석] ch6-1 ~ ch6-10 객체지향 언어 정리 (0) 2021.07.13 [Java] 자바의 자료형 (식별자, 자료형, 래퍼클래스, 형변환) (0) 2021.05.27 [JAVA] JavaFX 위한 Scene Builder 설치과정 (0) 2021.05.26