자바로 프로그램 작성하기

Dubiju·2022년 11월 8일
0

JAVA

목록 보기
2/2
post-thumbnail

문자열 출력

java 파일을 javac.exe가 컴파일 -> 생성된 class 파일을 java.exe가 실행 -> 문자열 출력

public class Hello {  
    public static void main(String[] args) {  
        System.out.println("Hello, world!");  
    }  
}
  • 자바의 모든 코드는 반드시 클래스 안에 존재해야 함
    • 서로 관련된 코드들은 그룹으로 나누어 별도의 클래스를 구성
    • 이 클래스들이 모여 하나의 Java 애플리케이션을 이룸
  • 모든 클래스가 main 메서드를 갖고 있어야 하는 것은 아니지만, 하나의 Java 프로그램에서는 main 메서드를 포함한 클래스가 반드시 하나는 있어야 함
  • 하나의 소스코드에 둘 이상의 클래스를 정의하는 것도 가능
    • 그러나 소스파일의 이름은 public class의 이름과 일치해야 함
    • 소스코드 내에 public class가 없다면 소스코드의 이름은 소스코드 내의 어떤 클래스의 이름으로 해도 상관없음
      • 하나의 소스코드에 둘 이상의 public class가 존재하면 안 됨
  • 소스코드인 java파일과 달리 class 파일은 클래스마다 하나씩 만들어짐

메서드

A main(B C) { D }메서드를 정의하는 문법

  • 어떠한 기능을 수행하기 위한 일련의 코드들의 집합체

함수: 특정 기능을 수행하는 코드들을 묶은 것
메서드: 클래스 내에 포함되어 있는 함수

자바는 객체지향 언어이며, 모든 코드를 클래스 내에 작성하기 때문에 보통 함수라는 용어보다 메서드라는 용어를 사용 ( 메서드 > 함수)

어떤 기능을 수행한다 ▶️ 데이터를 입력 받아 해당 데이터에 일련의 처리를 가함으로써 만들어낸 결과값을 반환

메서드 정의

  • ‘어떤 기능을 수행하기 위한 코드들을 묶어놓은 것’
    -> ‘어떤 기능을 수행한다’는 것: 데이터를 입력받아 입력 받은 데이터에 일련의 처리를 가한 후, 그 결과값을 반환하는 것을 의미
A main (B C) {
	D
}

A: 반환타입, B: 매개변수 타입, C: 매개변수 이름, D:메서드 바디

메서드 호출

  • 메서드를 정의한다는 것은 그저 어떤 메서드가 어떻게 동작해야 하는지를 기술한 것에 불과함
  • 메서드를 실행하기 위해서는 메서드를 호출해줘야 함 > 메서드_이름 호출연산자();
add(1,2);

main 메서드

public static void main(String[] args){

}
  • 가장 먼저 실행되는 메서드

  • 자바에서 main메서드는 진입점 함수이며, 자바로 어떤 소스 코드를 작성할 때 반드시 main 메서드가 있어야 하고, main메서드로부터 코드의 흐름이 시작

    	진입점 함수: 프로그램이 실행될 때 가장 먼저 실행되는 메서드 또는 함수

자바 프로그램 실행과정

  1. 프로그램의 실행에 필요한 클래스를 로드한다.(*.class file)
  2. 클래스 파일을 검사한다.(파일 형식, 악성 코드 체크)
  3. 지정된 클래스에서 main(String[] args)를 호출한다.

main메서드의 첫 줄부터 코드가 실행되기 시작하여 마지막 코드까지 모두 실행되면 프로그램이 종료되고, 프로그램에서 사용했던 자원들은 모두 반환 됨


주석

  • 컴파일러는 주석을 무시
  • 프로그램 코드에 대한 설명
  • 프로그램의 작성자, 작성일시, 버전과 그에 따른 변경 이력 등의 정보를 제공

범위 주석: '/* ' 이 사이의 내용은 주석으로 처리' */ '
한 줄 주석: '//' 부터 라인 끝까지의 내용은 주석으로 간주
문서 주석: '/** ~ */', Java API문서와 같은 형식의 문서를 자동으로 만들어주는 주석


자주 발생하는 에러와 해결방법

→ 자바는 대소문자를 구별하므로 대소문자의 일치여부 확인하기

💡 에러 메시지를 잘 읽고 해당 부분과 주위의 코드를 살펴보기!!

⚠️ cannot find symbol , cannot resolve symbol

→ 지정된 변수나 메서드를 찾을 수 없음

⚠️ ‘;’ expected

→ 자바의 모든 문장 끝에는 ‘;’ 을 붙이기!

⚠️ Exception in thread “main”java.lang.NoSuchMethodError:main

→ main 메서드를 찾을 수 없음

→ main 메서드가 클래스에 정의되어 있는지, 오타는 없는지 확인하자

⚠️ Exception in thread “main” java.lang.NoClassDefFoundError:Hello

→ 클래스를 찾을 수 없다.

⚠️ illegal start of expression

→ 문법 오류, 에러가 발생한 곳이 문법적으로 옳은지 확인

⚠️ class, interface, or enum expected

→ 클래스, 인터페이스, 이넘이 없다.

→ ( ), { } 를 잘 확인해보자

profile
Backend Developer

0개의 댓글