Java Programming

메소드 (Method)

mynameisjh 2022. 3. 27. 15:39

메소드

프로세스에서 기능을 수행하기 위한 명령문의 집합(Instruction Set) - 기계적 의미

Function 직관적 의미

메소드 컴파일 -> Instruction Set Function

 

▶ 좋은 메소드란? 
필요한 핵심 기능만 넣고, 함수를 만들었을 때, 다른 사람이 쓸 수 있는지(Reuse), 이름만 봐도 알 수 있고, 모듈화(결합도 ↓, 응집도 ↑)가 잘 되는가

 

• public static void main(String[] args) 메인 메소드

자바에서는 모든 Function이 메소드임.

클래스에 포함되어 있음

 

● 구성요소

- 리턴형 (void) : 기능(명령)을 실행한 결과

- 메소드 이름 (main) : 메소드를 호출하기 위한 이름

- 파라미터 (String[] args) : 기능을 수행하기 위해 필요한 데이터

*위 세 가지 구성요소는 반드시 있어야 한다.

 

public : 이 메소드를 공개, 즉 외부에서 접근이 가능하게 함. (접근 제어자)

- public, private, protected, default + 최신 자바에는 하나 더 추가

이 접근 제어자가 필요한 이유 ? 외부에 공개해도 되는 정보가 있고, 공개되면 곤란한 정보가 있는데, 그것들을 설정하는데 필요하다.

- 접근 제어자는 반드시 있어야한다. 아무것도 붙이지 않으면 defaultprivate로 판단한다. 이렇게 결정되는 옵션은 변경 할 수 있다.

static : 이 메소드를 클래스를 만들지 않아도접근가능 하도록 함. 이 함수는 전역화 되어 메모리에 올린다.

- class가 메모리에 올라가 있지 않아도 변수들이 메모리에 올라가도록 해주는 요소이다. static로 인해 메모리 영역으로 들어가면 Global Area에 올라간다.

class : 함수가 들어있는 꾸러미

public static void main(String[] args) 해석

public : 공개할거고, static : 클래스가 메모리에 올라가 있지 않아도 메모리에 올릴 수 있고 void : 리턴형은 없고, (뭐든 상관없고) main 이름이 메인이고, string[] args : 이런 파라미터로 구성 됐다.

 

 메모리 맵을 통한 스코프의 이해

 

▶ return a+b; ab 값을 더해서 add.b / add.a 값을 스택에서 pop 하고 main.b 에 전달한다. main.b에서 스택영역에 저장한다.

 코딩을 할 때 결합도는 낮고 응집도는 높여야 한다.

 

스코프

변수나 메소드가 호출되거나 I/O가 가능한 영역.

메소드, 키워드로 스코프를 구분 할 수 있다.