앱, 어플리케이션 만드는 법 - [Java] 모듈, 패키지, 클래스, 함수 그리고 메서드
#주의#
이 글은 강의 글이 아닙니다.
틀린 부분, 깔끔하지 못한 부분 있을 수 있습니다.
지적해 주시면 저도 공부가 되고, 앞으로 이 글을 보실 분들에게도 도움이 될 거라 생각합니다.
모듈이란?
Java에서 모듈은 Java 9에서 추가된 개념으로, 프로그램을 논리적으로 분리하고 관리하기 위한 단위입니다. 모듈은 기능적으로 완전한 프로그램 단위로, 다른 모듈과 독립적으로 컴파일하고 실행할 수 있습니다. 모듈은 다른 모듈에서 사용할 수 있는 패키지와 클래스를 포함하며, 다른 모듈에서는 모듈 내부의 패키지와 클래스에 직접 접근할 수 없습니다. 모듈은 모듈 디스크립터(module descriptor) 파일(module-info.java)을 사용하여 정의되며, 이 파일에는 모듈의 이름, 의존성, 내보내는 패키지 등의 정보가 포함됩니다.
모듈은 다른 모듈과의 의존성을 관리할 수 있으며, 이를 통해 모듈 간의 충돌을 방지하고, 더욱 안정적인 프로그램을 개발할 수 있습니다. 또한 모듈은 라이브러리와 같은 외부 모듈과의 의존성도 관리할 수 있으며, 이를 통해 프로그램의 종속성을 최소화할 수 있습니다. Java에서 모듈은 프로그램을 논리적으로 분리하고, 의존성을 관리하는 데에 중요한 역할을 합니다. 모듈을 잘 활용하면, 더욱 유지보수가 용이하고 안정적인 프로그램을 개발할 수 있습니다.
패키지란?
Java에서 패키지는 클래스와 인터페이스를 그룹화하는 데에 사용되는 논리적인 단위입니다. 패키지는 클래스와 인터페이스를 서로 구분하고, 중복된 클래스 이름을 피하는 데에 중요한 역할을 합니다. 패키지는 패키지 이름과 패키지 내에 포함된 클래스와 인터페이스로 구성됩니다. 패키지 이름은 일반적으로 도메인의 역순으로 작성되며, 각 패키지는 점(.)으로 구분됩니다. 예를 들어, com.example.project 패키지는 com.example.project 패키지 이름을 가진 패키지를 나타냅니다.
패키지는 클래스와 인터페이스를 그룹화하는 데에 사용됩니다. 클래스와 인터페이스는 패키지 내에 정의되며, 패키지 이름을 사용하여 서로 구분됩니다. 예를 들어, com.example.project 패키지 내에 MyFirstClass와 MySecondClass 클래스가 있다면, 이 두 클래스는 com.example.project.MyFirstClass와 com.example.project.MySecondClass로 구분됩니다.
패키지는 패키지 내에 포함된 클래스와 인터페이스를 보호하는 데에도 사용됩니다. 패키지 내에 있는 클래스와 인터페이스는 같은 패키지 내에 있는 다른 클래스와 인터페이스에서만 접근할 수 있으며, 다른 패키지에 있는 클래스와 인터페이스에서는 접근할 수 없습니다. 이를 통해 클래스와 인터페이스의 접근성을 제어할 수 있습니다.
패키지는 패키지 디렉토리에 대응됩니다. 패키지 이름과 일치하는 디렉토리를 생성하고, 패키지 내에 포함된 클래스와 인터페이스를 해당 디렉토리에 저장합니다. 예를 들어, com.example.project 패키지 내에 MyFirstClass와 MySecondClass 클래스가 있다면, 이 두 클래스는 com/example/project/MyFirstClass.class와 com/example/project/MySecondClass.class 파일에 저장됩니다.
Java에서 패키지는 클래스와 인터페이스를 그룹화하는 데에 사용됩니다. 패키지는 패키지 이름과 패키지 내에 포함된 클래스와 인터페이스로 구성되며, 패키지 이름은 일반적으로 도메인의 역순으로 작성됩니다. 패키지는 클래스와 인터페이스의 접근성을 제어하는 데에도 사용됩니다.
클래스란?
클래스는 객체 지향 프로그래밍에서 가장 기본적인 개념 중 하나입니다. 클래스는 객체를 생성하기 위한 설계도와 같은 역할을 합니다. 객체는 클래스의 인스턴스로, 클래스에 정의된 속성과 메서드를 가집니다. Java에서 클래스는 다음과 같은 내용으로 구성됩니다.
1. 클래스 이름: 클래스를 정의하는 데 사용되는 이름입니다. 클래스 이름은 대문자로 시작하며, 관례적으로 카멜 케이스(camelCase)를 사용합니다.
2. 필드: 클래스 내에서 선언된 변수를 의미합니다. 필드는 클래스의 상태를 나타내며, 클래스 내에서 사용됩니다.
3. 메서드: 클래스 내에서 선언된 함수를 의미합니다. 메서드는 클래스의 동작을 정의하며, 객체에 대한 작업을 수행합니다.
4. 생성자: 클래스를 인스턴스화할 때 호출되는 특수한 메서드입니다. 생성자는 클래스의 필드를 초기화하고 객체를 초기화합니다.
5. 접근 제어자: 클래스의 필드와 메서드에 대한 접근 권한을 제어하는 데 사용됩니다. Java에서는 public, private, protected,
default(접근 제어자를 사용하지 않은 경우) 네 가지 접근 제어자가 있습니다.
6. 상속: 클래스는 다른 클래스를 상속할 수 있습니다. 상속은 부모 클래스의 속성과 메서드를 자식 클래스에서 사용할 수 있게 합니다.
7. 인터페이스: 클래스는 인터페이스를 구현할 수 있습니다. 인터페이스는 클래스가 구현해야 하는 메서드를 정의합니다.
함수란?
Java에서 함수는 메서드(Method)라고 불리며, 객체 지향 프로그래밍에서 가장 기본적인 개념 중 하나입니다. 함수는 클래스 내에서 선언되며, 클래스의 동작을 정의합니다. 함수는 인자를 받아들이고, 결과를 반환합니다. Java에서 함수는 다음과 같은 내용으로 구성됩니다.
1. 함수 이름: 함수를 정의하는 데 사용되는 이름입니다. 함수 이름은 소문자로 시작하며, 관례적으로 카멜 케이스(camelCase)를 사용합니다.
2. 반환 타입: 함수가 반환하는 값의 타입을 나타냅니다. 반환 타입이 없는 경우 void를 사용합니다.
3. 매개 변수: 함수가 필요로 하는 입력 값을 나타냅니다. 매개 변수는 함수 선언부에서 정의됩니다.
4. 메서드 본문: 함수의 동작을 정의하는 코드 블록입니다. 메서드 본문은 중괄호({})로 묶여 있습니다.
Java에서 함수는 클래스 내에서 선언되며, 클래스의 동작을 정의합니다. 함수는 클래스의 필드와 메서드에 접근할 수 있으며, 필드와 메서드를 조작할 수 있습니다. 함수는 객체 지향 프로그래밍에서 가장 중요한 개념 중 하나이며, Java에서는 모든 코드가 클래스 내에 포함되어야 합니다. Java에서 함수는 다른 함수나 클래스와 함께 패키지 내에서 정의됩니다. 함수는 패키지 내에서 유일한 이름을 가져야 합니다. 함수는 객체 지향 프로그래밍에서 가장 중요한 개념 중 하나이며, Java에서는 모든 코드가 클래스 내에 포함되어야 합니다.
메서드란?
Java에서 함수(Function)와 메서드(Method)는 비슷한 개념이지만 약간의 차이가 있습니다.
함수는 일반적으로 프로그램에서 독립적으로 존재하며, 특정 클래스에 속하지 않습니다. 함수는 프로그램의 어디에서나 호출될 수 있으며, 일반적으로 입력 값을 받아들이고 결과를 반환합니다. 반면에, 메서드는 클래스 내에서 정의됩니다. 메서드는 클래스의 속성에 접근하고 조작할 수 있으며, 객체 지향 프로그래밍에서 가장 기본적인 개념 중 하나입니다. 메서드는 클래스의 동작을 정의하며, 객체에 대한 작업을 수행합니다. Java에서는 메서드(Method)라는 용어를 사용하여 함수를 설명합니다. 즉, Java에서 함수와 메서드는 동일한 개념입니다. 따라서 Java에서 함수와 메서드는 같은 것으로 간주됩니다.
정리
Java에서 모듈, 패키지, 클래스, 함수, 메서드는 다음과 같은 관계를 가집니다.
1. 모듈(Module): Java 9부터 도입된 개념으로, 관련된 패키지와 클래스를 그룹화하는 데 사용됩니다. 모듈은 패키지와 클래스의 접근성을 제어하고, 의존성을 관리합니다.
2. 패키지(Package): 관련된 클래스와 인터페이스를 그룹화하는 데 사용됩니다. 패키지는 클래스의 이름 충돌을 방지하고, 코드의 구성을 단순화합니다.
3. 클래스(Class): 객체 지향 프로그래밍에서 가장 기본적인 개념 중 하나입니다. 클래스는 객체의 속성과 동작을 정의하는 데 사용됩니다. 클래스는 패키지 내에서 정의되며, 인스턴스화하여 객체를 생성할 수 있습니다.
4. 함수(Function)/메서드(Method): 클래스 내에서 정의되며, 클래스의 동작을 정의하는 데 사용됩니다. 함수는 클래스 외부에서도 호출될 수 있으며, 함수의 입력 값을 받아들이고 결과를 반환합니다. 메서드는 클래스 내에서만 호출될 수 있으며, 클래스의 속성에 접근할 수 있습니다.
따라서, 모듈은 패키지와 클래스를 그룹화하고, 패키지는 클래스를 그룹화하며, 클래스는 함수/메서드를 정의하는 데 사용됩니다. 함수/메서드는 클래스 내에서 정의되며, 클래스의 동작을 정의합니다.
'개발 이야기 > [Java]' 카테고리의 다른 글
앱, 어플리케이션 만드는 법 - [Java] Layout, View, Fragment, AsyncTask, SQLite (2) | 2023.05.13 |
---|---|
앱, 어플리케이션 만드는 법 - [Java] Android Framework, Activity, Intent (4) | 2023.05.13 |
앱, 어플리케이션 만드는 법 - 안드로이드 스튜디오(android studio) 설치 방법 (2) | 2023.05.12 |
앱, 어플리케이션 만드는 법 - JDK, JRE, JVM의 개념과 특징 그리고 관계 (6) | 2023.05.11 |
앱, 어플리케이션 만드는 법 - Swift와 Objective-C (3) | 2023.05.11 |
댓글