JAVA

[JAVA] 메서드와 클래스

shb 2021. 10. 5. 11:02

1. 메서드(method)
  1-1. main( ) 메서드
   - java프로그램이 시작되는 시작점을 의미하는 main은 'public', 'static', 'void', 'main', '(String[] args)'라는 키워드로

    구성된 하나의 {...} 블록이다.

  1-2. 메서드
   - f(x) = x + 1
   - 위와 같이 정의된 함수는 다음과 같이 여러번 재사용이 가능하다.
   - f(1) -> 2
     f(2) -> 3
     f(5) -> 6
   
   - 프로그램의 함수 = 메서드
    -> 특정 기능(=연산)을 그룹화 해서 재사용하기 위한 단위

public static void 메서드이름( ){
.. 수행할 연산식 ..
}

- 메서드의 호출
-> 정의된 메서드는 다른 메서드를 구성하는 {...} 안에서 다음의 형식으로 사용될 수 있으며, 

이를 메서드를 호출한다고 한다.

메서드이름( );

 


  1-3. 메서드 파라미터
   - 수학의 매개변수
   - 함수 f(x)는 주어지는 x값에 따라서 각각 다른 결과를 만들어 낸다.
   - 수학에서는 함수 f가 연산을 수행하기 위해서 주어지는 조건값을 매개변수라고 한다.

   - 메서드 파라미터
   - java프로그램의 메서드(=함수)는 자신이 실행되는데 필요한 조건값을 메서드
   이름 뒤의 괄호안에서 변수 형태로 선언한다. 이를 메서드 파라미터 라고 한다.

public static void 메서드이름( 변수형 변수이름 ){
....
}

   - 다중 파라미터
   - 메서드가 연산을 수행하는데 두 개 이상의 파라미터가 필요하다면 콤마(,)로
   구분하여 선언할 수 있다.

public static void 메서드이름( 변수형 변수이름, 변수형 변수이름 ){
...
}

   - 파라미터를 갖는 메서드의 호출
   - 메서드 정의하면서 파라미터가 명시되어 있다면 해당 메서드를 호출하면서
   파라미터를 전달해 주어야 한다.

메서드이름(값1, 값2);
   
  1-4. 값을 반환하는 메서드
   - 함수의 결과값
   - 함수는 자신이 포함하고 있는 수식에 대한 결과를 반환한다.

f(x) = x + 1
y = f(5) // y에는 6이라는 결과값이 대입된다.

   - 메서드의 리턴값
   - 메서드가 연산 결과를 자신이 호출된 위치에 반환하는 것을 "리턴" 이라고 하며,
     반환되는 값을 "리턴 값" 이라고 한다.
   - 메서드 안에서 값을 리턴하기 위해서는 "return"이라는 키워드가 사용된다.
   - 값을 리턴하는 메서드는 선언시에 "void"키워드 대신, 리턴하는 값에 대한 변수형이 명시된다.

     void는 리턴값이 없다는 의미이다.

public static 리턴형 메서드이름(변수형 파라미터1, 변수형 파라미터2, ..){
....
return 리턴값;
}

  1-5. 메서드간의 상호 호출
   - JAVA의 메서드 역시 서로 호출하는것이 가능하다. 호출된 메서드가 값을 리턴하는 경우,
   리턴받은 값을 다른 연산에 사용할 수 있다.

public static 리턴형 메서드1(변수형 파라미터1, .., 변수형 파라미터n){
return 리턴형;
}

public static 리턴형 메서드2이름(변수형 파라미터1, .., 변수형 파라미터n){
int k = 메서드1(파라미터1, ..., 파라미터2);
return k;
}

 

 


2. 클래스
  2-1. 객체(=Object)
    - 프로그래밍에서의 객체 : 프로그램에서 표현하고자 하는 기능을 묶기 위한 단위

  2-2. 객체를 구성하는 단위
    - 객체를 이루는 것은 데이터와 기능이다.
  -> 데이터는 변수로 표현된다.
  -> 객체안에 포함된 변수를 '멤버변수' 혹은 '프로퍼티'라 한다.
    - 기능은 메서드(=함수)로 표현된다.

객체 - 프로퍼티=멤버변수(변수)
       - 함수=메서드

  2-3. 클래스와 객체의 관계
   - 객체를 생성하기 위해서는 객체의 설계도가 필요하다.
   - 클래스(=class)
    -> 객체의 설계도 역할을 하는 프로그램 소스
   - 공장에서 하나의 설계도를 사용하여 여러 개의 제품을 생산할 수 있는 것처럼
   하나의 클래스를 통해 동일한 구조를 갖는 객체를 여러 개 생성할 수 있다.

  2-4. 자동차 클래스의 예
   - 자동차의 엔진, 문, 바퀴 등과 같이 명사적인 특성은 멤버변수로 존재한다.
   - 전진, 후진 등과 같이 동사적인 특성은 메서드의 형태로 표현된다.
   - 동일한 설계로 만들어진 자동차라 하더라도 각각의 자동차를 구성하는 부품들은 그 형태만 같을 뿐,

     실제로는 각각 존재하게 된다.
   - 클래스를 작성하면서 그 안에 생성되는 멤버변수들은 여러 개의 객체간에 서로
   동일한 이름으로 존재하지만 실제로는 서로 다른 값이라는 의미

 


  2-5. 클래스의 기본 작성 방법
  
class 클래스 이름{
멤버변수;

void 메서드이름(){
...
}
}
 
  - 'class'라는 예약어와 클래스의 이름을 명시하고 {...} 블록을 구성한다.
  - 멤버변수는 여러개 존재할 수 있다. 이 때, 값을 선언과 동시에 할당할 수도 있고,
  객체를 통해 간접적으로 할당할 수도 있다.
  - 메서드는 여러개 존재할 수 있다.
  - 클래스 안에 포함된 멤버변수와 메서드를 특성에 따라 그룹화 하기 위한 기법이 
  클래스를 작성하는 것이라고 이해할 수 있다.

  2-6. 객체의 생성 방법
    - 객체의 선언

클래스이름 객체이름;

    - 객체의 할당

객체이름 = new 클래스이름();

    - 선언과 할당의 통합

클래스이름 객체이름 = new 클래스이름();

  2-7. 객체의 사용
    - 객체 안에 포함된 변수나 메서드는 점(.)으로 연결하여 접근한다.
-> 객체 안에 포함된 변수의 값을 다른 변수에 복사하는 경우

값 = 객체이름.멤버변수;

-> 객체 안에 포함된 변수의 값에 다른 값을 대입하는 경우

객체이름.멤버변수 = 값;

-> 객체 안에 포함된 메서드를 호출하는 경우

객체이름.메서드이름();

-> 객체안에 포함된 메서드에 파라미터를 전달하는 경우

객체이름.메서드이름(값1, 값2, ..., 값n);

 

 

'JAVA' 카테고리의 다른 글

[JAVA] 생성자와 은닉성  (0) 2021.10.09
[JAVA] 클래스와 this  (0) 2021.10.07
[JAVA] Scanner  (0) 2021.10.04
[JAVA] 배열  (0) 2021.10.01
[JAVA] 반복문  (0) 2021.09.28