일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- static import문
- webview_flutter
- 이것이코딩테스트다
- 객체 배열
- 운영체제의 예
- 클래스 변수
- 참조형 반환타입
- this()
- object클래스
- this()와 참조변수 this 차이점
- 조상의 생성자
- 운영체제의 분류
- stateless widget
- 운영체제의 구조
- 초기화 순서
- 프로그래머스
- 오버로딩
- stateful widget 생명주기
- static 메서드
- 호출스택
- PriorityQueue
- FLUTTER
- 명예의전당(1)
- 기본형 매개변수
- 인스턴스 메서드
- 운영체제의 목적
- 참조형 매개변수
- 오버라이딩과 오버로딩 차이점
- 운영체제란 무엇인가
- stateful widget
- Today
- Total
Coram Deo
ch 6-14~25 [객체지향 개념] - 메서드, 호출스택, 기본형 매개변수, 참조형 매개변수, 참조형 반환타입 본문
9/7/수
자바의 정석 ch6-14~31복습
ch 6-14 메서드란?
메서드 : 문장들을 묶어놓은 것 -> 작업단위로 문장들을 묶어서 이름 붙인 것
-> 값(입력)을 받아서 처리하고, 결과를 반환(출력)
메서드 = 함수(단 메서드는 클래스안에 있어야 한다. 함수는 상관없음.)
* 메서드의 장점 - 중복코드제거, 관리 용이, 재사용가능, 간결해짐
- 메서드의 작성
메서드는 1가지 기능만 수행하도록 작성
하나의 메서드안에 여러가지 기능이 있으면 안좋음.
메서드 = 선언부 + 구현부
반환타입 메서드이름 (매개변수){-> 선언부
// 메서드 호출시 수행될 코드 -> 구현부
}
int add(int a, int b){
int result = a+b;
return result;
}
* 메서드는 0 또는 1개의 값만 반환할 수 있다.
여러 개의 값을 반환하고 싶을 경우, 배열을 이용하여 객체로 묶어서 반환함.
반환값이 없을 경우 반환타입은 void이다.
ch6-15 메서드의 구현부
지역변수(lv) : 메서드 내에 선언된 변수
-> 메서드가 종료되면 모두 사라짐.
서로 다른 메서드의 지역변수 이름이 같아도 ok.
ch6-18 메서드의 실행흐름
1. 객체 생성
2. 메서드 호출
3. return값 반환
ch6-20 return문
실행 중인 메서드를 "종료"하고 호출한 곳으로 되돌아간다.
원래는 메서드 마지막에 return 써줘야하는데 반환 타입이 void일 때는 생략가능.
반환타입이 void가 아닌 경우, 반드시 return문 필요
int max(int a, int b) {
if(a > b) return a; // 조건식이 참일 때만 실행됨 -> 에러남
// 조건식이 거짓일 때 반환값도 필요
}
반환값의 타입은 메서드의 반환 타입과 일치해야함.
( int로 자동형변환 가능한 값 : char, byte, short )
메서드 반환값 타입은 "메서드 반환값을 담을 변수 타입"과도 일치해야 함.
int result = mm.add(3, 5);
int add(int x, int y) {
return x + y;
}
이 세가지 타입이 다 일치해야 됨.
ch6-22 호출 스택(call stack) 중요!
스택(stack) : 밑이 막힌 상자. 위에 차곡차곡 쌓인다.
호출 스택 : 메서드 수행에 필요한 메모리가 제공되는 공간.
-> 메서드가 호출되면 호출스택에 메모리 할당, 종료되면 해제
1. main 메서드가 println 메서드를 호출하면 main은 대기, println은 실행.
2. println 종료, main 실행
3. main 종료.
아래있는 메서드가 위에 있는 메서드를 호출한 것.
하나의 스택에서는 맨 위의 메서드 1개만 실행 중, 나머지는 대기중.
ch6-23 기본형 매개변수(중요!)
기본형 매개변수 - 변수의 값을 읽기만 할 수 있다.(read only)
참조형 매개변수 - 변수의 값을 읽고 변경할 수 있다.(read & write)
ch6-24 참조형 매개변수(중요!)
* 참조변수로 객체 생성하면 객체의 멤버 변수는 자동으로 0으로 초기화 되어있음.
참조형 매개변수를 사용하면 객체의 변수값을 바꿀 수 있다.
참조변수가 객체의 주소를 가지고 있기 때문.
ch6-25 참조형 반환타입(중요!)
참조형 반환타입은 객체주소를 반환함.(= 객체를 반환함.)
반환타입이 참조형일 경우, "메서드 반환값을 담을 변수 타입"또한 참조형 변수로 둘의 타입이 일치해야 함.
원래순서는 객체 생성후 메서드 호출임.
근데 static 메서드는 객체 생성 없이 사용가능함.
또한 같은 클래스 안에 있는 메서드는 참조변수 없이 사용가능함.
Data3 d2 = copy(d);
static Data3 copy(Data3 d){...}
'자바의 정석' 카테고리의 다른 글
ch 6-26~31 [객체지향 개념] - static 메서드, 인스턴스 메서드, 오버로딩 (0) | 2022.11.01 |
---|---|
코포자를 위한 코딩 공부법 #3 (0) | 2022.10.31 |
코포자를 위한 코딩 공부법 #1 (0) | 2022.10.31 |
코포자를 위한 코딩 공부법 #2 (0) | 2022.10.31 |
ch 6-1~12 [객체지향 개념] - 클래스, 객체, 인스턴스, 객체 배열, 클래스 변수, 인스턴스 변수, 지역변수 (0) | 2022.10.31 |