-
[Java] 클래스 외부, 내부 구성 요소Java/Java 개념 2022. 7. 9. 16:28
- 클래스란 무엇인가?
- 클래스 구조 살펴보기
- 클래스 외부 구성 요소
- 클래스 내부 구성 요소
클래스란 무엇인가?
객체(Object)는 사용할 수 있는 실체를 의미하며, 클래스는 객체를 만들기 위한 설계도와 같다.
따라서 정의된 클래스를 이용해 여러 개의 객체를 만들 수 있다.
// 클래스 정의 class (클래스의 이름) { 내용... }
클래스 구조 살펴보기
package Example; // 1. 패키지 import java.util.*; // 2. import class A {} // 3. 외부 클래스 public class Practice { int a; // 1. 필드 int b; // 1. 필드 // 2. 메서드 void ab() { System.out.println("Practice 클래스 메소드 abc()"); } Practice() {} // 3. 생성자 // 4. 이너클래스 class InnerClass { void inner() { System.out.println(a); System.out.println(b); } } }
외부 구성 요소 3가지 (package, import, outer class)와
내부 구성 요소 4가지 (field, method, constructor, inner class)가 포함될 수 있다.
내부 구성 요소 중 생성자(constructor)를 제외한 3가지 요소를 클래스의 멤버라고 한다.
클래스 외부 구성 요소
- package(패키지)
- import(임포트)
- outer class(외부 클래스)
1. package(패키지)
프로젝트를 생성할 때 패키지를 지정하게 되면, 구성요소에 패키지명이 포함된다.
반드시 주석을 제외하고 첫 번째 줄에 위치해야 한다.
클래스의 생성 과정에서 패키지를 생성하지 않으면, 자동으로 default package가 사용되게 된다.
ex) package Example;
2. import(임포트)
다른 패키지의 클래스를 사용하기 위해 포함된다.
패키지의 다음에 위치한다.
ex) import java.util.*;
3. Outer Class(외부 클래스)
클래스의 외부에 또 다른 클래스가 포함할 수 있다.
=> 한 개의 자바 파일에 여러 개의 클래스가 존재할 수 있다.
ex) class A{}
- 외부 클래스에는 public 키워드를 붙일 수 없다.
클래스 내부 구성 요소
- field(필드)
- method(메서드)
- constructor(생성자)
- inner class(이너 클래스)
1. field(필드)
클래스의 속성을 나타내는 변수이다.
ex) int a = 3;
2. method(메서드)
클래스가 가지고 있는 기능(함수)을 나타낸다.
ex) void ab() { ... }
3. constructor(생성자)
생성자는 클래스의 객체를 생성하는 역할을 담당한다.
ex) Practice() {}
4. inner class(이너 클래스)
클래스의 내부에도 클래스가 포함이 될 수 있다.
이너 클래스는 외부 클래스가 가지고 있는 것들을 사용할 수 있다.
ex) class Inner class { ... }
자료 참고 : Do it! 자바 완전 정복
사진 출처 : https://mblogthumb-phinf.pstatic.net/MjAyMTAyMTlfNzQg/MDAxNjEzNzQwOTMxMTkw.jB062FlV3-WMS7ymiAN99tEeXD83hNI1uMJWeOmRkWcg.JKk1kmA5PUkxJBD8TdM18DTlZBVw55otoRn-fVT9xPUg.PNG.slykid/java.png?type=w800
'Java > Java 개념' 카테고리의 다른 글
[Java] 제어문(선택 제어문 / 반복 제어문), 제어 키워드 (0) 2022.07.15 [Java] this와 this()의 차이점 (0) 2022.07.10 [Java] 중첩 for문으로 별찍기 (1) 2022.07.06 [Java] 논리 연산자(&&, ||)와 비트 연산자(&, |)의 차이 (2) 2022.07.05 [Java] 객체 지향 프로그래밍(OOP)이란? (1) 2022.07.05