본문 바로가기
JAVA

[JAVA]클래스/ 메써드

by KhyeonS 2022. 7. 26.

클래스와 메써드에 대해서 알아보자.


클래스 : 

객체(object)를 만들기 위한 설계도라고 볼 수 있다. 클래스에는 객체를 생성하기        위한 속성(멤버 변수)과 기능(멤버 메써드)을 정의해 놓은 것. 
       클래스를 통해서 객체를 생성한다. 여기서의 메써드는 멤버 메써드(함수)이다. 
       보통 main() 메써드 위에 클래스가 자리한다. 
       메인 메써드에서 처리할 내용을 예상해서 클래스에 미리 정의해준다.
       이 클래스 안에서 자신의 변수나 메써드를 지정할 때 this.~ 를 사용한다. 

인스턴스 : 

클래스를 통해서 만들어진 객체, 또는 클래스로부터 객체를 만드는 것을 인스턴스         를 생성한다고 하며 이를 인스턴스화 한다고 한다. 
         인스턴스가 있어야(클래스에서 생성한 객체가 있어야) 클래스에 속한 멤버 변수와          멤버 메써드를 사용할 수 있다. '인스턴스(instance)=객체(object)'임
         객체 생성 방법은 '클래스_명 객체_명=new 클래스_명'식으로 해준다.
 
클래스는 객체를 생성하기 위한 틀, 변수(객체)와 메써드(기능)의 결합체이다. 사용자 정의  타입이다. 클래스 안에 클래스를 생성할 수 있다. 
인스턴스 변수는 자신만의 속성을 가지고 있는 변수이고, 클래스 변수는 모든 인스턴스가 공통으로 가지고 있는 속성의 변수이다. 클래스 메써드와 인스턴스 메써드가 있다.
객체란 물리적으로 존재하거나 추상적인 것에서 자신만의 속성을 가지고 있어서 다른 것들과  구별되는 것으로 속성(필드)과 동작(메써드)으로 구성됨
=>클래스에서 객체를 생성하면 이 객체는 클래스가 가지고 있는 모든 멤버(변수, 메써드)를 포함하므로 이 객체로 클래스의 멤버들을 이용할 수 있다.
객체와 객체끼리는 메써드를 통해서 상호 작용을 할 수 있다.

도트 연산자(.)는 객체의 필드와 메써드에 접근할 때 사용된다. 'static 클래스.변수'로 호출하거나 '객체.변수'로 호출한다. 다른 객체의 필드(멤버 변수와 멤버 메써드)를 참조하거나 대입하기 위해서 .을 사용한다. 

매개_값(parameter/argument)은 메써드를 실행하기 위한 입력 데이터이다.

객체 간의 상호작용은 메써드 호출이 있어야 하며 매개_값과 리턴_값을 통해서 데이터를 주고받는다.
상속: 상위(부모)객체를 기반으로 하위(자식)객체를 생성하는 것으로 객체의 재사용을 수행시킨다. 부모 클래스를 슈퍼 클래스라고 함. 
     overriding, B extend A; A부모에서 B자식으로 상속 
캡슐화: 객체의 필드, 메써드를 하나로 묶어서 실제 구현의 내용을 외부에 감추는 것을 말한다. 데이터 보호(변형을 막기)를 위해서 사용되는데 접근 제한자를 이용한다. 
      get(), set()...
다형성: 같은 타입이지만 실행 결과가 다양한 객체가 이용할 수 있는 성질을 말한다. 하나의  타입에 여러 객체를 대입해서 사용한다. overloading
인터페이스 : 클래스에서 반드시 구현해야할 메써드의 이름만 정의해 놓은 형식
추상 클래스 : 몇몇의 메써드는 구현되어 있고, 몇몇의 메써드는 인터페이스처럼 이름만 정의되어 있는 형식. 프로그램의 일관성을 유지하기 위해서 사용됨

메써드 : 특정한 작업을 수행하기 위한 명령문의 집합, 어떤 값(인자)을 입력 받아서 그 결과를 호출한 쪽에 돌려준다. 입력받는 값(인자)이 없을 수도 있고, 수행 결과를 돌려       주지(반환) 않을 수도 있다. 함수라고도 함
       메써드를 사용하면 반복적인 코드를 줄이고 관리가 용이하다. 
       반복적으로 수행되는 여러 문장을 하나의 메써드로 작성한다. 
       메써드 표시는 접근 권한 지정자인 리턴_타입을 써서
       리턴_타입 메써드_이름(입력_매개변수){  // 입력_매개변수는 메써드에 전달할 인자이다
          실행할_명령어들
          ~ ~ 
       }; 형식이다. 
=> public static void main(String[] args){ 
   ...
   } 도 메써드이다.
=>return type에서 void는 실행만 하고 수행 결과 값을 반환하지 않는다는 의미이다.

  그리고 main() 매써드가 있는 쪽에만 public class ~ 식으로 해주고 
나머지 클래스는 모두 public 없이 class ~ 식으로 해주어야 한다!!! 

- 인수와 반환 값
a) 메써드의 반환 값이 없으면 함수에서 반환 값의 데이터_형을 void로 해준다.
void disp (int a) {
  System.out.println("인수의 값은“ + a);
  return;
} 구문이다. 

함수에서 void 형으로 정의했기 때문에 반환 값이 없어서 return 뒤에 아무 것도 없다. 이런 경우 return을 생략해도 된다. 

b) 인수 없이 double 형 반환 값만 있으면
double half() {
  double b;
  b = a / 2.0;
  return b;
} 구문으로 해준다.

c) 인수도 반환 값도 없으면
void print() {
  System.out.println("Hello");
  // return;
} 구문으로 해준다. 여기서 System.out.println()도 함수이기 때문에 “Hello”를 인자로 해서 인쇄해준다. 

'JAVA' 카테고리의 다른 글

[JAVA] Overload/ Overriding  (0) 2022.07.26
[JAVA] 가변 인수  (0) 2022.07.26
[JAVA] do while 문  (0) 2022.07.26
[JAVA] 배열 / Scanner/ 난수  (0) 2022.07.22
[JAVA] 제어문/배열  (0) 2022.07.21

댓글