키보드워리어

【JAVA】자바 클래스에 메소드 생성 ~ 파일 실행까지 본문

JAVA/입문

【JAVA】자바 클래스에 메소드 생성 ~ 파일 실행까지

꽉 쥔 주먹속에 안경닦이 2022. 9. 25. 20:53
728x90

 

안녕하세요 【키보드 워리어】

 

⌨🗡🧑


블로그 방문자 여러분, 안경닦이입니다.

 

 


 

메소드를 만들어볼게요

 

이전 시간에 만들어 놓은 Planet클래스 안에 공전(revolve) 메소드를 만들어보겠습니다.

2022.08.28 - [JAVA 완전정복!!/JAVA] - 【JAVA】자바 플랫폼 소개 및 클래스를 만들어보기

 

【JAVA】자바 플랫폼 소개 및 클래스를 만들어보기

안녕하세요 【키보드 워리어】 ⌨🗡🧑 블로그 방문자 여러분, 안경닦이입니다. 오늘은 자바 플랫폼에 대해 소개하고, 클래스를 만들어보면서 앞으로 배울 내용들을 정리해보겠습니다~! 플랫

keyboardwarrior.tistory.com

revolve 메소드 만들기

Planet 클래스 안에 return 타입이 없음으로 void 타입으로 revolve() 메소드를 만들어 주고 "revolve"를 출력하게 해 주었습니다.

 

 

여기서 주의할 부분 있는데 클래스의 모든 변수를 초기화초기화시킬 때는 만들었던 인스턴스 역시 새로운 인스턴스로 다시 만들어주어야한다는 점입니다.

 

그래서 위 그림에서도 Planet을 이용한 earth()와 venus()메소드가 바뀌었다고 체크되는 게 보이죠?

 

 

그렇다면

해당 클래스에 메소드는 어떻게 부를까요?

 

 

※템플릿인 Planet 클래스에는 메소드를 사용할 수 없어요!

 

Planet.revolve()는 없고

earth.revolve() 사용 가능합니다.

 

오직 인스턴스화 시킨 오브젝트에만 메소드 사용이 가능합니다.

 

 

 

여러분들도 클래스를 만들어보고 메서드도 직접 넣어보세요!

 

 

 

 

Planet.java 파일을 만들어서 컴파일해보고

 

이제부터 jshell에서 작성한 자바 코드들을 jshell 밖으로 꺼내보겠습니다.

 

 

jshell 특징과 비교해보자면 제이쉘은 클래스의 코드를 짜고

바로 컴파일하는 거지만 파일을 직접 만들어보는건 어떻게 하는걸까요?

 

 

예를 들어 지금까지 만들어본 Planet 클래스를 사용하고 싶을 경우엔

Planet.java 텍스트 편집기 파일을 이용해서 만들어볼게요.

 

 

※클래스 이름과 파일이름을 같게해야 합니다.

 

만들어본 텍스트 파일을 원하는 폴더에 놓아요. 터미널을 통해 볼 때, 해당 폴더에 없는 건 컴파일이 되지 않아요.

 

cd명령어 [.java파일]이 있는 곳으로  Go Go ~!

만약 컴파일이 안된다면 터미널에 java -version을 쳐서 설치 확인   해보세요.

 

터미널에  javac Planet.java 입력해주면 컴파일이 됩니다!!

해당 폴더에 Planet.class 파일이 생성된 걸 확인해볼 수 있습니다.

 

컴파일이 되서 class 생성된 모습입니다.

 

여러분들도 Country.class 파일을 직접 만들어보세요.

위 모습과 같이 나온다면 컴파일 실습 성공입니다.

 

 

※잘 안된다면

 

  • 클래스 이름과 파일 이름이 맞는지 확인해보세요
  • 메소드 구문을 제대로 썼는지 확인해보세요

 

 

Planet 클래스를 실행해보세요

 

컴파일된 클래스를 실행시켜볼까요?

 

 

자바 코드 컴파일 시키기는 javac명령어 사용했고

javac 파일이름.java

이런 식으로 사용했어요

 

 

 

클래스를 실행 시켜보는건 간단해요

 

 

java 클래스이름 입력하면 끝이에요!

java 클래스이름

 

 

이러한 오류가 혹시 떴나요?

 

이건 메인 메소드를 class Planet에서 찾을 없다는 말이다.

 

메인 메소드가 있어야 실행 가능합니다. jshell은 이 부분을 생략했지만 앞으로 저희가 클래스 파일을 실행할 때는

public static void main(String[] args){
}

이 코드를 꼭 넣어주어야 해요

 

 

실행할 파일에 public static void main(String [] args)를그대로 복사해서 붙여주어 보세요.

 

※main 메소드 참고 내용

 

void는 아무것도 반환하지 않는다.

main은 메소드 이름이다.

String[] args 는 인수이다. 이게 문자열 타입이며 []은 배열을 뜻한다.

Public static은 공용 정적인데,

[]와 public static은 지금 신경 쓰진 않는다. 

 

 

아직도 Java Planet가 실행되지 않고 오류가 나는 이유는 뭘까요?

그건 우리는 Planet.java를 수정했지 class를 바꾸지 않았기 때문에

컴파일을 다시 해주어야 하기 때문입니다.

 

Javac Planet.java
Java Planet

 

다시 컴파일 후 java Planet 클래스를 실행시킵니다.

 

Planet.java 파일을

class Planet{

    void revolve(){

        System.out.println("revolve");

    }

    public static void main(String[] args){

    Planet earth = new Planet();

    earth.revolve();

  }

}

 

같이 변경해보겠습니다.

 

revolve 메소드를 쓰려면 견본이 아니라 사례에 써야합니다.

 

 

그래서 earth 인스턴스를 만들고 작성했습니다.

 

파일을 바꿔주니 작동하네요!👍

 

 

 

 참고하시면 좋은 글 

2022.11.05 - [JAVA입문/JAVA section 8 - 객체지향 프로그래밍 소개] - 【자바】객체지향 프로그래밍

 

【자바】객체지향 프로그래밍

안녕하세요 【키보드 워리어】 ⌨🗡🧑 블로그 방문자 여러분, 안경닦이입니다. 구조적 프로그래밍과 객체지향 프로그래밍의 차이점에 대해 살펴보고 객체의 측면에서 생각하는 법을 살펴보

keyboardwarrior.tistory.com

2022.09.26 - [JAVA입문/JAVA section 1~7 - 구구단표,자바 플랫폼 소개] - 【JAVA】 자바 클래스를 장난감처럼 이용해보기

 

【JAVA】 자바 클래스를 장난감처럼 이용해보기

안녕하세요 【키보드 워리어】 ⌨🗡🧑 블로그 방문자 여러분, 안경닦이입니다. 만들어본 Planet 클래스를이용해 보고학습해보세요! 프로그래밍 언어를 가장 좋은 장난감은 잘되는 코드를 망쳐

keyboardwarrior.tistory.com

 

728x90