Java는 객체 지향언어로서 클래스, 메소드, 인스턴스라는 개념있다.
자동차에 빗대서 생각해보면,
클래스란?
클래스란, 자동차의 설계도 즉, 구조나 기능등을 명세하는 것을 클래스라고 한다.
소스코드로 예사를 들면
이런식으로
Car라는 클래스를 작성하고 자동차의 이름, 색깔, 제조년도를 넣어주는 변수들을 선언해준다.
이것이 기본적인 Car라는 이름을 가진 Class의 구조이다.
메소드란?
메소드는 자동차가 있으면 전진 추진 정지 등 이런 행동적인 기능들을 말한다고 보면된다.
소스 코도를 예시로 들어보면,
위와 같은식으로 carUp, carDown, carCreateYear, getCarCreateYear 이 네가지를 메소드라고 부른다. 즉 옆에 ()와 같이 파라미터를 넣을수 있는 괄호가 있으면 그러하다.
void carUp()
에서 보면 앞의 void는 리턴값의 종류를 정의하는 곳인다. void는 리턴값이 없다는 말이다.
carUp은 이 메소드의 이름이 되는 부분이다.
마지막 ()는 파라미터 값을 받는 곳인데 정의되어 있지 않으므로 현재 파라미터가 없다는 말이다.
carDown도 비슷한 구조이다. 이름만 다른 메소드 이다.
int carCreateYear()
자동차의 제조년도를 리턴해주는 메소드이다.
앞의 int는 리턴값이 int형(정수)의 값을 반환해주어야 한다는 말이다.
그래서 메소드 내의 return문을 보면,
return createYear; <<을 통하여 자동차의 제조년도를 리턴해주고 있다.
리턴 값이 명시된 경우에는 꼭 return문을 적어야 된다.
void getCarCreateYear(int year)
자동차의 제조년도를 담아주는 메소드이다.
앞의 void는 리턴값이 없다는 뜻이고,
뒤의 (int year)부분은 int형(정수)의 값을 파라미터로 받아서
createYear = year; << 을 통하여 자동차의 제조년도의 값을 담아주고 있다.
함수를 호출할때 꼭 파라미터를 넘겨주어야한다.
인스턴스란?
인스턴스는 클래스라는 설계도에 따른 객체를 만든 것을 인스턴스라고 한다.
예를들어 소나타라는 큰틀의 설계도를 클래스라고 하며, 거리에 소나타가 많은데 그 차들을 각각의 인스턴스라고 생각하면된다.
소스코드를 예시로 들어보면,
Car sonata = new Car(); 이렇게 써줬다.
이게 Car라는 자료형을 가진 sonata라는 이름의 인스턴스를 생성해주는 방법이다.
생성한 sonata라는 인스턴스 만들어 주었으면 이름, 제조 년도, 색깔을 지정해주어야하는데, 인스턴스의 변수 값에 접근할때는
점 ( . )을 이용하여 접근하면된다.
sonata.name << sonata라는 인스턴스의 name변수에 접근한다는 의미이다.
메소드에 접근할때도 동일한 방법으로 접근하면 된다.
sonata.carUp(); 이렇게 작성하시면
메소드에 접근할때도 동일한 방법으로 접근하면 된다.
sonata.carUp(); 이렇게 작성하면
결과값으로 (전진합니다.) 라고 콘솔창에 표시될것이다.
이처럼 클래스, 메소드, 인스턴스에 대해 정리해봤다.
자바의 객체지향 프로그래밍을 하기 위해서 매우 중요한 내용이다.
꼭 이해하고 넘어가자.
'workSpace > JAVA' 카테고리의 다른 글
[Java][JDBC][Insert][Update][Delete]자바에 MYSQL(workbench) 데이터베이스에 추가, 수정, 변경 하기 (0) | 2020.12.07 |
---|---|
[Java][JDBC][Connection]자바에 MYSQL(workbench) 데이터베이스 연동하기 (0) | 2020.12.07 |
[Java]About GUI (0) | 2020.09.01 |
[Java]자바에서 클래스를 생성하고 사용하는법 (0) | 2020.06.24 |
[Java]객체란 무엇인가? (0) | 2020.06.24 |