hayu's 개발 일지

[TIL]240711 자바 코드 구조 이해 본문

기술/java

[TIL]240711 자바 코드 구조 이해

hayu00 2024. 7. 11. 21:01

공부한 내용

자바 코드 구조 이해

[sample 코드]

/* 패키지 선언 */
package com.oracle.util;

/* 패키지 가져오기 */
import java.lang.*; // 해당 패키지 내 모든 클래스를 불러옴

/* 클래스 블록 */
public class Sample {

	/* 메인 메소드 블록 */
    // [public|private|protected] [static] (리턴자료형|void) 메소드명1(입력자료형 매개변수, ...)
    public static void main(String[] args) {  
    	/* 명령문(statement) */
    	int result = add(1, 2);
        System.out.println(result);
    }
    
    /* 메소드 블록 */
    public static int add(int a, int b) {
    	return a + b;
    }
}

패키지 선언

  • package 키워드란, 자바 클래스 파일들을 모아 기능별로 분류하기 위한 일종의 디렉토리이다. (파일 시스템 폴더)
  • 클래스를 컴파일하면 첫 줄에 자동 생성되며, 클래스를 식별하는 관리자 역할을 한다. 이외에도 클래스명이 충돌하지 않도록 카테고리화 한 것이다.
  • 패키지 이름으로는 모두 소문자로 작성해야 한다.
  • 패키지의 점(.)은 [상위패키지].[하위패키지].[클래스] 을 의미한다.
    • 예) 패키지명 com.oracle.util 은 폴더 파일 경로 com\oracle\util 와 같다.

패키지 가져오기

  • 다른 패키지의 자바 표준 API나 클래스 파일을 가져올 때 사용한다. (소스 코드 간략화가 목적임.)
  • 패키지 이름에는 패키지의 경로까지 포함한 풀 네임을 명시한다.
  • import 문을 선언할 때 별표(*)를 사용하면 해당 패키지에 포함된 모든 클래스를 사용 가능하다.
  • 코드에서 첫줄에는 package 를 사용하고, 다음 줄에는 import 를 사용할 수 있다.

import 주의점

  • import 문을 선언할 때 별표(*)를 사용하면 해당 패키지에 포함된 모든 클래스를 가져오지만, 모든 하위 패키지의 클래스까지 포함시켜주지 않는다.
  • 따라서 하위 클래스까지 가지고 오고 싶다면 직접 하위 도메인 경로를 지정해 표현 해야 한다.
import java.*;

// 하위 패키지 전체 불러오기
import java.awt.*;
import java.util.*;

클래스

  • 클래스란 JAVA에서 객체를 생성하기 위한 설계도(template)같은 개념이다.(ex) 붕어빵을 만들 때 붕어빵틀을 생각해보자)
  • 클래스명은 반드시 소스 파일명과 일치해야 한다. (파일명 : Test.java 일 때 public class Test {} 로 일치해야 한다.)
  • public 접근제어자가 지정된 클래스는 반드시 클래스 파일 내, 하나의 클래스만 존재할 수 있다.
  • public은 다른 패키지에서도 사용할 수 있다는 뜻이다.

클래스 구성은 필드, 생성자, 메서드, 내부 클래스가 있다.

  • 필드(field) : 객체의 데이터를 저장
  • 생성자(constructor) : 생성된 객체를 초기화
  • 메서드(method) : 객체의 동작을 실행
  • 내부 클래스(lnner class) : 클래스나 인터페이스의 내부에 선언

메인 메서드

  • main 메서드는 프로그램을 구동하는 메인 스레드이다.
  • 자바 프로그램을 실행하면 자바 가상 머신은 클래스 내에 포함되어 있는 public static void main(String[] args) 라는 시그니처를 갖는 메인 함수를 실행한다.
/* 메인 메소드 블록 */
// [public|private|protected] [static] (리턴자료형|void) 메소드명1(입력자료형 매개변수, ...)
public static void main(String[] args) {  
	// ...
}

[ 설명 ]

  • public : 모든 클래스에서도 해당 변수나 메서드가 접근이 가능하다는 의미로 프로그램의 시작은 main이기 때문에 다른 곳에서도 호출할 수 있도록 public을 사용한다. → 접근제어자이다.
  • static : 자바가 compile이 되는 순간 가장 빠르게 정의되어 별도의 객체 생성 없이 모든 객체와 공유가 가능하다.
  • void : 별도로 return 값 없이 메소드를 실행하고 끝난다는 의미이다.(반환값없음.)
  • main : 이 메서드가 main 메서드라는 의미이다.
  • string[] args : 연속적인 문자열 데이터가 들어가는 저장 공간. 터미널에서 자바프로그램을 실행할때 인수를 줄수있는데 이 값이 이곳으로 들어오게 된다.

 

 

회고

- 자바 코드에 대해 몰랐었는데 이렇게 하나씩 공부하다보니 내가 많이 성장했구나를 느꼈다. 

 

참고 자료

- https://blog.hexabrain.net/120

- https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%9E%90%EB%B0%94-%EC%86%8C%EC%8A%A4-%EC%BD%94%EB%93%9C-%EA%B5%AC%EC%A1%B0-%ED%95%9C%EB%88%88%EC%97%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0#%EB%AA%85%EB%A0%B9%EB%AC%B8_statement

 

'기술 > java' 카테고리의 다른 글

[TIL]240712 추상 클래스(Abstract)  (0) 2024.07.12
[TIL]240710 상속  (0) 2024.07.10
[TIL]240706 final  (0) 2024.07.06
[TIL]240705 static  (0) 2024.07.05
[TIL]240704 자바 메모리 구조  (0) 2024.07.04