Java/자바의 신 VOL.1

01. 프로그래밍이란 무엇인가?

h2boom 2024. 6. 17. 21:03

클래스(Class)

클래스란 무엇인인가?

  • 자바의 가장 작은 단위상태(변수)행동(메소드)를 가지고 있다.
  • (접근 제어자) + class + 클래스 명 { 클래스 내용 } 으로 작성
ex) Class example
public class School {
	~~~~~ 클래스 내용 ~~~~~~
}
  • 하나의 클래스 안에는 0개 이상의 메소드가 존재할 수 있다.

 

  • 클래스 명명규칙
    • 클래스 이름은 명사로 한다.
    • 대문자로 시작한다.
    • 여러 단어인 경우 각 단어의 첫 글자는 대문자 (파스칼 케이스, pascal case)

메소드(Method)

메소드란 무엇인가?

  • 어떤 값을 받아서 결과를 넘겨주는 행위
  • 중복된 계산을 쉽게 처리하고 재사용하기 위한 것.
  • 메소드 선언 시 작성 순서 및 포함 요소 => () 안의 내용은 필요하지 않다면 생략 가능
    • (접근제어자) + 리턴 타입 + 메소드 이름 + (매개 변수) { 메소드 내용 }
    • 메소드의 매개 변수는 없어도 되지만 () 소괄호는 생략하면 안됨!! 
    • 리턴 타입이 없는 경우 void로 작성
    • 리턴 타입이 있는 경우 결과를 돌려 받기 위해서 return 키워드 사용
      • 반환 타입 여부와 상관없이 return 문을 만나면 그 즉시 해당 메소드를 빠져나간다. 
      • 모든 메소드에는 return이 포함되어야 한다.
      • void 타입인 경우 컴파일러가 return을 자동으로 추가시켜주기에 생략해도 무방하다.
      • 반환 값이 있더라도 메소드 호출한 부분에서 따로 변수로 받아주지 않아도 (사용하지 않아도) 무방하다.
        = 단순히 메소드만 호출해도 상관없다.
ex) 메소드 정의
public int add(int a, int b) {
	return a + b; 
}

//메소드 선언 부분
public int add (int a, int b)

//메소드 본문 부분
return a + b;
  • 메소드 정의는 메소드 선언과 메소드 본문으로 나눠진다.
    • 선언부에는 접근 제어자, 리턴 타입, 메소드 이름, 매개 변수가 포함된다.
    • 본문에는 메소드가 수행해야 할 코드 블록이다.
      • 메소드 본문은 블랙박스와 같다
      • 호출하는 입장에서는 선언만 알 뿐 본문은 알지 못한다.
  • 메소드 호출 방법
    • 메소드 이름에 필요한 인수(인자)를 넘겨준다.
    • 메소드 호출 시 인수를 넘기면 그 인수가 파라미터에 대입된다.
    • 메소드 호출 시 인수와 파라미터 타입, 순서, 개수가 같아야한다.
  • 메소드는 무소속으로 존재할 수 없다. => 클래스 안에 포함되어야 한다.
메소드 용어 정리

매개 변수(parameter) : 메소드를 정의할 때 선언한 변수를 매개 변수, 파라미터라고 한다.

인수(argument) : 메소드 호출 시 메소드 명과 함께 넘겨주는 값을 인수, 인자, 아규먼트라고 한다.

 

  • 메소드 사용의 장점
    • 코드를 재사용할 수 있다.
      • 메소드는 특정 기능을 캡슐화하기에 기능을 필요로 할 때마다 해당 메소드를 호출해서 코드를 재사용할 수 있다.
    • 코드의 가독성 측면에서 좋다.
      • 메소드 명을 통해 코드가 수행하는 작업을 명확히 나타내므로 코드를 읽는 사람에게 추가적인 문맥을 제공한다.
    • 모듈성
      • 큰 프로그램을 관리 가능한 작은 부분으로 나눌 수 있다.
      • 코드의 가독성 향상과 디버깅을 쉽게 만든다.
    • 코드를 유지관리하는데 용이하다.
      • 메소드를 사용함으로 특정 부분에 문제 발생 / 업데이트 필요 시 해당 메소드만 수정함으로 전체 코드에 영향을 주지 않고 변경 사항을 적용할 수 있다.
    • 재사용성과 확장성
      • 잘 설계된 메소드는 다른 프로그램 / 프로젝트에서도 재사용 가능하며 새로운 기능을 추가 / 확장하는데 유용하다.
    • 추상화
      • 메소드를 호출 / 사용 시 메소드의 구현을 몰라도 상관이 없다.
      • 복잡한 내부 작업에 대해서 알 필요 없이 메소드를 사용할 수 있다.
    • 테스트와 디버깅 용이성
      • 개별 메소드는 독립적으로 테스트하고 디버깅할 수 있다.
      • 코드의 문제를 신속하게 찾아 수정하는데 도움이 된다.

 

  • 메소드 명명규칙
    • 메소드 이름은 동사로 한다.
    • 소문자로 시작한다.
    • 여러 단어인 경우 맨 첫 글자를 제외한 나머지 단어의 첫 글자는 대문자로 한다. (카멜 케이스, camel case) 

변수(Variable)

변수란 무엇인가?

  • 어떤 값을 포함하며 클래스의 특성을 결정짓는 상태
  • 변수에 값을 대입할 때
    • 왼쪽 - 대입할 변수
    • 오른쪽 - 계산식 (값)
ex) Variable example
int number;
number = 10;
number = 1 + 2;
  • 변수 선언 시
    • 타입 변수명;
선언 : 만드는 것.
변수 선언 = 변수를 만드는 것.
초기화 : 처음으로 값을 넣어주는 것.
변수 초기화 = 변수에 값을 처음으로 넣어주는 것.

 

 

int a;
a = 10;

int b, c;

int d = 5, e=3;
  • 변수의 선언과 초기화를 한 문장에 할 수도 있고 따로 할 수도 있다.
  • 한 번에 같은 타입의 여러 개의 변수들을 선언 및 초기화 할 수 있다.

세미콜론( ; )

세미콜론 역할

  • 모든 자바 코드의 한 줄이 끝날 때에는 세미콜론 ( ; )을 반드시 적어야 한다.
  • 컴파일러세미콜론이 나올 때까지 모두 한 줄로 인식
  • 자바에서 인덴트(tab을 이용한 공백)는 코드에 영향이 없다
    • 하지만 가독성이 안좋으므로 인덴트 필수!!!

간단 내용 정리

1. 클래스란? ㅡ> 상태와 행동을 갖고 있는 자바의 가장 작은 단위다.

2. 메소드란? ㅡ> 어떤 값을 받고 결과를 넘겨주는 행위다.

3. 메소드의 매개 변수의 위치는? ㅡ> 메소드 선언 시 메소드 명 뒤 () 소괄호 안에 변수 타입 + 변수명 순으로 적어준다.

4. 메소드 명 앞에 필수적으로 적어야하는 것은? ㅡ> 리턴 타입. (접근 제한자는 생략 가능)

5. 클래스가 가지고 있어야 하는 2가지는? ㅡ> 상태(변수)와 행동(메소드).

6. 메소드에서 결과를 돌려받기 위한 예약어는? ㅡ> return 키워드.



출처: 이상민, <자바의 신 VOL.1> 로드북 & [인프런] 김영한의 자바 입문