CODEDRAGON ㆍDevelopment/Java
클래스의 이해
· 구조적으로 볼 때 자바 프로그램을 클래스들이 모여서 만들어진 프로그램이라고 할 수 있습니다. 이런 이유때문에 자바를 두고 “완전한 객체 지향적 언어”라는 호평이 생겼습니다.
· 기존 클래스들을 이해하고 때로는 새로운 클래스를 생성하여 얻어진 객체(Object)를 만들어 사용하는 것이 자바입니다.
https://docs.oracle.com/javase/tutorial/java/javaOO/index.html
클래스 구조
· 객체(Object)를 생성하기 위해서는 먼저 클래스의 구조를 알고 클래스를 작성 할 수 있어야 합니다.
· 클래스는 class 키워드를 사용하여 정의합니다.
· Java에서는 파일명과 클래스명이 일치해야 하지만 Kotlin에서는 일치하지 않아도 됩니다.
· 클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성됩니다.
· 필드(field)는 클래스에 포함된 변수(variable)와 상수(constant)를 의미합니다.
|
[접근제한자] class 클래스명 { [ 인스턴스 변수 정의] [ 메소드 정의] [ 생성자 정의] } |
클래스 헤더
· 클래스를 선언하는 부분
· class라는 예약어를 중심으로 오른쪽은 클래스 명이며
· 왼쪽은 접근 제한(Access Control/Access Modifier)과 클래스의 형태 및 클래스 종류를 나타내게 됩니다.
[접근제한자] [클래스 종류] class [클래스명] |
[접근제한] |
· 접근제한은 말 그대로 현재 클래스를 접근하여 생성하고 사용하는데 있어 제한을 두겠다는 의미에서 정의하는 것입니다. · 클래스에서 쓰이는 접근 제한은 public을 정의하는 방법과 아예 정의하지 않는 방법 두 가지가 있습니다. |
[클래스종류] |
· 현재 클래스가 어떤 클래스인지를 알리는 수식어의 일종으로 최종(final)클래스 또는 추상(abstract)클래스와 같은 클래스 종류를 의미하며 현재 클래스가 어떤 클래스인지를 알리는 수식어의 일종입니다. · 이 부분이 생략되게 되면 일반 클래스임을 의미 하게 됩니다. |
[클래스명] |
클래스의 이름을 의미 |
class Ex1{
}
|
멤버 필드 (Field)
· 변수와 상수(속성) 즉, '데이터'라고도 하는데 여기에 객체가 만들어질 때에 그 객체의 특징적인 속성을 담아두게(저장하게) 됩니다.
· 필드의 형태가 static이냐? instance냐?에 따라 필드개념이 달라집니다.
상수 |
· 상수라는 것은 고정된 값을 의미 · 프로그램이 종료 될 때까지 절대로 변하지 않는 값(속성) |
변수 |
· 변수는 상수와는 반대로 변경 가능한 값을 의미 · 프로그램이 종료 될 때까지 변경될 수 있는 값(속성) |
class Ex1{
int data; //변수
final double PI=3.14; //상수
}
|
클래스 변수 (static variable) |
· 초기화를 하지 않아도 변수의 타입에 맞게 자동으로 초기화됩니다. · 해당 클래스의 모든 인스턴스가 공유해야 하는 값을 유지하기 위해 사용됩니다. |
인스턴스 변수 (instance variable) |
· 초기화를 하지 않아도 변수의 타입에 맞게 자동으로 초기화됩니다. · 인스턴스마다 가져야 하는 고유한 값을 유지하기 위해 사용됩니다. |
class MyClass {
// 인스턴스 변수 선언
int instanceVar = 100;
// 클래스 변수 선언
static int classVar = 200;
} |
멤버 메서드 (Method)
· 메서드는 특정한 일을 수행하는 행위(기능, 동작)을 의미
· 멤버필드 들의 값을 가지고 작업을 수행합니다.
· 메서드도 static메서드(클래스 메서드)와 instance메서드 라는 2종류가 존재합니다.
static메서드 (클래스 메서드) |
메서드를 가지는 객체를 생성하지 않아도 사용할 수 있는 메소드
클래스명.static메소드명 |
instance메서드 |
객체를 생성해야만 사용이 가능한 것 메소드
객체명.instance메소드명 |
클래스 메소드 (static method) |
class Ex1{ int data;
public static void setData(int n){ data = n; } } |
instance메서드 |
class Ex1{ int data;
public void getData( ){ return data; } } |
멤버(Member)
· 클래스 내에 선언된 요소들을 지칭
· 멤버변수, 멤버상수, 멤버 메소드로 구성되어 집니다.
'Development > Java' 카테고리의 다른 글
관계 연산자(비교 연산자; comparison operator), 비교 연산자 종류 (0) | 2018.10.18 |
---|---|
The Java™ Tutorials (0) | 2018.10.16 |
불변 클래스(immutable class) vs 가변 클래스(mutable class) (0) | 2018.10.07 |
Joda-Time 라이브러리 다운받기 (0) | 2018.10.01 |
이벤트 처리 도식도, 자바에서의 이벤트 처리, 이벤트모델 구성요소 (0) | 2018.09.22 |