본문 바로가기
프로그래밍/java

java 클래스, 메소드, 인스턴스 정리

by 뜨끔쓰 2019. 4. 20.
728x90
728x90
안녕하세요.

오늘은

java의 클래스, 메소드, 인스턴스에 

대하여 정리 하려고합니다.


java는 객체지향언어로서 클래스, 메소드, 인스턴트라는 개념이 있는데요

처음 접할때는 매우 생소합니다.

지극히 제 기준으로 설명하자면, 일단 자동차를 빗대어 설명해보겠습니다.

클래스란?

자동차의 설계도 즉 구조나 기능등을 명세하는 것을 클래스라고합니다.

소스코드를 예시로 들어볼께요


public class Car{
      String name;     //자동차 이름
      String color;    //자동차 색깔
      int createYear;  //제조년도       
}

감이 오셨나요?

Car라는 클래스를 작성하고 자동차의 이름, 색깔, 제조년도를 넣어주는 변수들을 선언해주었습니다.

이것이 기본적인 Car라는 이름을 가진 Class의 구조입니다.

메소드란?


일단 자동차가 있으면 전진,후진,정지 등등 이런 기능들이 있죠??

이런 기능들을 메소드라고 합니다.

소스코드를 예시로 들어볼께요




public class Car{
      String name;     //자동차 이름
      String color;    //자동차 색깔
      int createYear;  //제조년도       

      void carUp(){
          System.out.println("전진합니다.");
      }
      void carDown(){
          System.out.println("후진합니다."); 
      }
      int carCreateYear(){
          return createYear;
      }
      void getCarCreateYear(int year){
          createYear = year;
      }
}

보시면 carUp, carDown, carCreateYear, getCarCreateYear 이 네가지를 메소드라고 합니다.

C언어나 다른 언어의 함수와 생김새가 비슷하죠?? java에서는 함수를 메소드라고 부른다고 생각하시면 됩니다.

자 그럼 하나하나 한번 봐볼까요

void carUp()

앞의 void는 리턴값의 종류를 정의하는 곳인데 void는 리턴값이 없다는 말입니다.

carUp은 이 메소드의 이름이 되는 부분이구요

마지막 ()는 파라미터 값을 받는 곳인데 정의되어 있지 않으므로 

파라미터가 없다는 말입니다.

carDown도 비슷한 구조이니 이름만 다른 메소드입니다.

int carCreateYear()

자동차의 제조년도를 리턴해주는 메소드입니다.

앞의 int는 리턴값이 int형(정수)의 값을 반환해주어야 한다는 말입니다.

그래서 메소드 내의 return문이 보이시죠? 

return createYear;  <--을 통하여 자동차의 제조년도를 리턴해주고있습니다.

리턴값이 명시된 경우에는 꼭 return문을 적어주셔야 합니다.!


void getCarCreateYear(int year)

자동차의 제조년도를 담아주는 메소드입니다.

앞의 void는 리턴값이 없다는 뜻이겠지요??

뒤의 (int year)부분은 int형(정수)의 값을 파라미터로 받아서 

createYear = year;  <---을 통하여 자동차의 제조년도의 값을 담아주고 있습니다.

함수를 호출할때 꼭 파라미터를 넘겨주셔야해요!



인스턴스란?

인스턴스는 클래스라는 설계도에 따른 객체(Object)를 만든 것을 인스턴스라고 합니다.

예를들어 소나타라는 큰틀의 설계도를 클래스라고 하며, 거리에 소나타가 많죠?

그 각각의 소나타 한대한대를 인스턴스라고 생각하시면 될 것 같습니다.

소스코드를 예시로 들어볼께요.




public class Main {
    public static void main(String[] args) {
          Car sonata = new Car();
          sonata.name = "애마";
          sonata.year = 2019;
          sonata.color = "흰색";
    }
}

Car sonata = new Car(); 이렇게 써주었죠?

이게 Car라는 자료형을 가진 sonata라는 이름의 인스턴스를 생성해주는 방법입니다.

생성한 sonata라는 인스턴스 만들어 주었으면 이름,제조년도,색깔을 지정해주어야겠죠?

인스턴스의 변수값에 접근할때는 .을 이용하여 접근하시면 됩니다.

sonata.name <--- sonata라는 인스턴스의 name 변수에 접근한다는 의미입니다.

메소드에 접근할때도 동일한 방법으로 접근하시며 됩니다.

sonata.carUp(); 이렇게 작성하시면

결과값으로 전진합니다. 라고 콘솔창에 표시 될꺼에요.

이처럼 클래스, 메소드, 인스턴스에 대하여 정리하였는데요.

이해가 잘 되었을까요??

자바의 객체지향프로그래밍을 하기 위해선 매우매우 중요한 내용이기 때문에

꼭 이해하고 넘어가야할 부분이라고 생각합니다.

물론 저도 개념과 사용방법을 정리하기 위해 작성한 것이므로

여러분들도 개념과 사용방법을 숙지하신 후 자신만의 방법으로 정리해보는게

좋을꺼라고 생각됩니다.

그럼 오늘도 즐거운 코딩되시고 좋은하루 보내세요!!

😁😏😏😏😏😏😏😏😀


728x90
반응형

댓글