반응형

[Oracle Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.]

[Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼]

진정 자바 프로그래머라면 이제부터 잘 봐야 한다. 이번 포스팅은 객체지향 프로그램인 자바(Java)에서 사용하는 각종 변수들(Variables)에 대해 알아본다.

클래스 (Classes)

맴버 변수 선언(Declaring Member Variables)

변수는 다음과 같이 구분해서 알아 두면 좋다.

  1. 클래스의 맴버 변수(클래스 변수) = 필드(fields)

  2. 메서드나 코드의 블록(분기문 등) 안에서의 변수 = 지역 변수(local variables)

  3. 메서드 선언에 사용되는 변수 = 파라메터(parameters)

필드는 다음 3가지 요소로 구성된다.

  1. Public 또는 private 같은 접근자(수식어) 를 붙이거나 아예 없기도 한다.

  2. 필드의 타입

  3. 필드의 이름

접속 수식어 (Access Modifiers)

가장 왼쪽에 붙이는 첫 번째 수식어는 다른 클래스의 맴버 필드를 접속해서 컨트롤할 수 있는 조건을 만든다. 현재로서는 그냥 publicprivate 두개만 생각해 보자. 다른 수식어는 나중에 논의하기로 한다.

 

 

  1. Public 수식어 – 모든 클래스들이 접속할 수 있는 필드(field)

  2. Private 수식어 – 오직 자신이 속한 클래스 내에서만 접속 가능한 필드(field)

캡슐화에서는 일반적으로 필드를 private로 선언한다. 그 의미는 클래스 내에서만 직접 접속할 수 있도록 클래스 내에 숨겨둔다는 의미이다. 하지만 이 private 변수를 이용해 데이터를 할당하고 꺼내 쓸 수 있어야 한다. 그 역할은 클래스 내의 메서드가 하는데 간접적으로 메서드를 통해서 클래스 변수(field)에 접근해서 활용할 수 있다. 다음 예를 보자.

    public class Car { // 클래스 명은 대문자로 시작

       private int speed; //클래스 변수 (field)private 선언으로 외부 접근 안됨

       public Car(int carSpeed){ // 생성자로 파라미터 carSpeed 받음

          speed = carSpeed; //private speed에 생성 시 입력받은 carSpeed값 할당

       }

      public int getSpeed(){ // public 메서드를 통해 private 변수 speed 값 얻음.

          return speed;

     }

  }

 

타입(Types)

모든 변수는 반드시 타입(type)이 있어야 한다. 바로 원시 데이터 타입인 int, long, float, Boolean 등으로 사용할 수 있다. 또는 string, array, object 같은 참조형 변수(reference types)로 사용할 수 있다.

변수명(Variable Names)

필드(클래스 변수), 지역 변수 또는 파라미터와 같은 모든 변수들은 변수 명명 규칙에 따라 이름을 지을 수 있다. 메서드나 클래스도 명명 규칙에 의해 이름을 지어야 하지만 다음처럼 다른 점이 있다.

첫 글자는 대문자로 써야 한다. 그리고 메서드의 첫 단어는 동사여야 한다.

지금까지 변수 선언에 대해 알아보았다.

다음 포스팅은 메서드 선언에 대해 알아본다.

반응형
반응형

[Oracle Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.]

[Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼]

진정 자바 프로그래머라면 이제부터 잘 봐야 한다. 객체지향 프로그램인 자바(Java)는 클래스(Class)를 잘 이해하고 다뤄야 한다. 이번 포스팅부터 클래스에 대해 파헤쳐 본다. 물론 자바 튜토리얼을 기반으로 한다.

클래스 (Classes)

클래스 선언 (Declaring Classes)

객체지향 개념 때 이미 클래스 구조에 대해 알아보았다. 클래스를 정의하는 방법은 아래와 같다.

class TestClass{

//필드, 생성자 그리고 메서드 구현 (fields, constructor and method)

}

이 클래스를 이용해서 객체를 생성하고 그 객체의 생명 주기를 위한 모든 소스 코드를 클래스 내에 구현한다. 생성자는 객체를 초기화해서 생성할 때 사용하고 클래스의 상태를 제공하는 필드를 선언하고 클래스와 그 객체의 행위를 구현한 메서드들이 바로 클래스의 소스 코드들이다.

 

 

위의 클래스 선언은 아주 기본적인 부분이다. 사실 클래스를 만들 때 단순하게 이름과 해당 코드만 코딩하는 경우는 드물다. 관련 슈퍼클래스(superclass)를 선언하고 상속(extends)받고 인터페이스(interface)를 구현(implements)하기도 한다.

class TestClass extends TestSuperClass implements TestInterface {

//필드, 생성자 그리고 메서드 구현 (fields, constructor and method)

}

또한 클래스 선언부 제일 앞쪽에 public, private같은 접근 관련 수식어를 사용할 수 있다. 이는 다른 클래스의 접근권한에 대한 정의로 다음 포스팅에서 다뤄볼 것이다.

클래스를 선언할 때 아래와 같은 컴포넌트를 사용할 수 있다.

  1. public, private 등 접근권한 수식어를 사용할 수 있다.

  2. 클래스명은 대문자로 시작한다.

  3. 클래스는 오직 1개의 슈퍼클래스만 확장(extends)할 수 있고 extends 뒤에 슈퍼클래스를 선언한다.

  4. 클래스는 1개 이상의 인터페이스(Interface)를 구현할 수 있고 “,”를 사용해서 여러 개의 인터페이스를 implements 키워드 뒤에 나열해서 사용한다.

  5. 클래스의 몸체는 중괄호 { } 로 감싼다.

지금까지 클래스의 선언하는 방법에 대해 알아보았다. 그리 어려운 부분은 없지만 잘 숙지해야 한다. 자바 프로그래머는 항상 클래스를 다뤄야 하기 때문이다.

반응형