클래스의 이해, 클래스의 구조 - 클래스 헤더, 멤버 필드 (Field), 멤버 메서드 (Method), 멤버(Member)

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)

·       클래스 내에 선언된 요소들을 지칭

·       멤버변수, 멤버상수, 멤버 메소드로 구성되어 집니다.