JAVA method

이미 익숙한 메소드

수업소개

메소드를 사용하지 않고 자바로 프로그래밍을 하는 것은 불가능합니다. 이미 우리는 메소드를 사용해왔고, 메소드를 만들어왔습니다. 메소드를 공부하기에 앞서서 메소드와 친해지는 시간을 가져보겠습니다.

 

 

 

강의

소스코드

public class FirstMethod {

    public static void main(String[] args) {
		
		System.out.println("Hello Method");
		System.out.println(Math.floor(1.1));

	}

}

 

 

댓글

댓글 본문
  1. Sansol Park
    우리가 자바에서 `main` 메소드를 작성할 때 `public static void main(String[] args)`와 같이 작성하는 이유는 크게 세 가지로 나눌 수 있습니다. 이 설명을 이해하기 위해서, 먼저 메소드와 클래스, 그리고 `static` 키워드의 의미를 알아야 합니다.

    ### 1. `public`
    - `public`은 접근 제어자(Access Modifier)입니다. `public`으로 지정된 메소드는 다른 클래스나 패키지에서도 접근할 수 있습니다. `main` 메소드는 프로그램이 시작될 때 운영 체제가 호출하는 메소드이기 때문에, 어디서든지 접근할 수 있어야 합니다. 따라서 `main` 메소드는 `public`이어야 합니다.

    ### 2. `static`
    - `static`은 클래스 메소드로 선언된다는 의미입니다. 즉, 인스턴스(객체)를 생성하지 않고도 클래스 이름으로 직접 호출할 수 있는 메소드입니다.

    예를 들어, `FirstMethod` 클래스에서 `main` 메소드를 호출할 때, `FirstMethod` 클래스의 객체를 생성하지 않고도 바로 실행할 수 있습니다. 이는 프로그램 시작 시점에 `main` 메소드를 실행하기 위해 객체가 필요하지 않도록 설계된 것입니다.

    반면, `static`이 붙지 않은 메소드는 객체를 생성해야만 사용할 수 있습니다. 예를 들어, 인스턴스 메소드는 `FirstMethod` 클래스의 객체가 먼저 생성된 이후에 호출할 수 있는 메소드입니다.

    ### 3. `void main(String[] args)`
    - `void`는 메소드가 값을 반환하지 않는다는 뜻입니다. `main` 메소드는 프로그램의 진입점 역할만 하므로, 반환값이 필요하지 않기에 `void`로 선언합니다.

    - `String[] args`는 프로그램이 실행될 때 외부에서 전달받을 수 있는 인자(arguments)를 의미합니다. 예를 들어, 명령행에서 프로그램을 실행하면서 인자를 전달할 때 그 값들을 배열 형태로 받습니다.

    ### 인스턴스를 만들면 왜 `static`을 안 붙일까?

    클래스 내에서 인스턴스 메소드를 만들 때는 `static`을 붙이지 않는 경우가 많습니다. 이는 인스턴스 메소드는 해당 클래스의 객체를 통해 호출되기 때문입니다. 인스턴스 메소드가 객체와 연관된 동작을 수행하도록 설계된 반면, `static` 메소드는 클래스와 연관된 동작을 수행합니다.

    #### 예시:

    ```java
    public class MyClass {
    public void instanceMethod() {
    System.out.println("This is an instance method.");
    }

    public static void staticMethod() {
    System.out.println("This is a static method.");
    }
    }

    public class Main {
    public static void main(String[] args) {
    // static 메소드는 클래스 이름으로 호출 가능
    MyClass.staticMethod();

    // 인스턴스 메소드는 객체 생성 후 호출
    MyClass myObject = new MyClass();
    myObject.instanceMethod();
    }
    }
    ```

    위 예시에서 `staticMethod()`는 `MyClass`라는 클래스 이름으로 바로 호출할 수 있지만, `instanceMethod()`는 `MyClass`의 인스턴스를 생성한 후에 호출할 수 있습니다.

    이처럼 인스턴스 메소드는 특정 객체의 상태와 관련된 작업을 수행할 때 주로 사용되며, `static` 메소드는 전체 클래스와 관련된 작업을 수행할 때 사용됩니다.

    ### 결론
    - `main` 메소드가 `static`으로 선언되는 이유는 프로그램이 시작될 때 인스턴스 없이 호출할 수 있도록 하기 위함입니다.
    - 인스턴스 메소드는 객체와 관련된 동작을 수행하기 때문에 `static`이 필요하지 않으며, 객체 생성 후에 사용됩니다.
    대화보기
    • 240527
    • 당당
      2023.04.19
    • labis98
      20230202 완료
    • 자바뿌시기
      23.01.04
    • Min Jupiter
      221227
    • 보통사람 박코딩
      할수있다
    • 자바자바
      public class
      public static void main (String [] args);
      => 이미 여기에 메소드가 포함되어 있음
      class 안에 main이라는 메소드가 있고 그것은 String타입의 변수들을 배열로써 가진다라는 성격이 있음
      => 그래서 우리가 run configuration을 쓰면 string 타입으로만 출력이 되는구나, 그래서 스트링을 더블로 바꿔줘야 작동하는 경우가 생기는구나
      근데 왜 인스턴스를 만들면 static을 안 붙이지?
    • 후토마끼
      22.10.11
    • whoami
      9.12 완료
    • economin
      수강완료
    • public static void main(~~~~) {

      }
      이것역시 main이라는 메소드이다
    • 코딩이취미다
      클래스 -> main 메소드
    • 열정jk
      220220 감사합니다
    • 나연
      2022년 2월 10일 (목) 완료

      ```java
      // 메인 메소드
      public static void main(String[] args) {
      // 본문
      System.out.println("Hello, Method!");
      System.out.println(Math.floor(1.1));

      }
      ```

      자바 애플리케이션을 만들 때는 클래스를 만들어야 하고 그 클래스를 실행할 때는 반드시 약속된 이름인 `main`이라고 하는 특수한 메소드를 정의해 놓으면 자바는 클래스 실행 시 `main` 메소드를 실행하도록 약속되어 있음
    • 김보노
      22-01-22
    • 초보자바
      22-01-13
    • 주간식당메뉴
      21.11.01.
    • 성치
      2021-10-24일 완료
    • won4175
      2021.10.18
    • 3초컷
      1005 메소드란 함수이다. 함수는 코드의 재사용성을 극대화시키기 위해 사용한다.
    • 2021.08.28 완료
    • kylim
      2021.08.18 완료
    • labis98
      20210811 completed!!!
    • 이마누
      완료
    • super1Nova
      210807
    • Jaemin Lim
      2021.07.24
    • B=loom
      2021.07.17
    • Docta_yangban
      자바 서적들을 볼 때마다 Method bla-bla 하고 나오는 내용들에서 항상 막혔었는데
      Method = Function이라 생각하니 이해가 되었습니다.
    • 초딩 개발자
      2021/06/22
    • 도공우승9
      ok
    • jeisyoon
      2021.05.01 이미 익숙한 Method - OK
    • Sunho Kim
      완료(2021.04.17.토)
    • anya422
      done!
    • 레이
      21.04.11
    • chimhyangmoo
      21.04.08
    • 김우중
      감사합니다
    • boat
      감사합니다
    • oyuiw
      20201213
    • 실리콘밸리로가자
      Dec/03/2020, Thursday
    • 안광민
      완료
    • thebluerat
      감사합니다.
    • hyuna lee
      감사합니다.
    • 뉸찡
      2020.04.02 완료 감사합니다
    • 빙빙
      학원수업듣다가 이해안되서 들어왔는데 너무쉽게설명 잘해주셔서 너무기분좋아요!!!
    • yyrr
      완료
    • 임지수
      2020.01.31 완료
    • 라또마니
      감사합니다. 이걸로 누적봤어요 200번 돌파 했네요~~
    • 이기호
      감사합니다!^^
    • 쑤우
      수강완료. 감사합니다.
    graphittie 자세히 보기