티스토리 뷰


* 본 포스팅은 인피니티 북스의 Power JAVA 2판을 참고하여 작성되었습니다.

* 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다.



필드(field)

필드(field) : 클래스 안에서 선언되는 멤버 변수

지역 변수(local variable) : 메소드, 블록 안에서 선언되는 변수

매개 변수(parameter) : 메소드 선언에서의 변수

class 
{
    public int speed //필드
    {
        void start(int s) //매개 변수 
        {
            int t; //지역 변수
        }
    }
}


필드를 선언 할 때는 접근 지정자, 필드의 타입, 필드의 이름 세가지를 정해줘야 한다. 

접근 지정자에는 publicprivate가 있으며, public은 모든 클래스로 부터 접근 가능, private는 클래스 내부에서만 접근 가능.


접근자와 설정자

접근자(accessor) : 필드 값을 반환한다. 일반적으로 게터(getter) 라고 부르기도 한다.

설정자(mutator) : 필드 값을 설정한다. 일반적으로 세터(setter) 라고 부르기도 한다.


접근자와 설정자를 사용하면 다음과 같은 장점이 있다.

  1. 접근자에서 잘못된 값이 넘어오는 경우 필터링을 통해 사전 차단 가능
  2. 필요할 때 마다 필드 값 계산해서 반환 가능(?)
  3. 설정자를 제공하지 않을 경우 읽기만 가능한 필드 생성 가능


대충 다음과 같은 느낌이다.

class Car {

    String color;

    public String getColor() //접근자
    {
        return color;
    }
    public void setColor(String c) //설정자
    {
        color = c;
    }
}

public class CarTest1{

    public static void main(String[] args) {

        Car myCar = new Car();

        myCar.setColor = "RED"; //설정자 사용
        System.out.println(myCar.getColor); //접근자 사용
    }
}


메소드 (method)
public void setSize(int w, int l) {

    width = w;
    length = l;
}


메소드를 선언할 때는 접근 지정자, 반환형, 매개변수, 메소드 내부 내용이 필요하다.

위 소스에서는 접근 지정자 public, 반환형 void, 매개변수 int wint l, 메소드 내부 내용 width = w; length = l;


C에서 값을 전달할 때는 값에 의한 전달(Call by Value)와 참조를 통한 전달(Call by Reference) 두 가지가 있지만 자바에는 값에 의한 전달(Call by Value) 한 가지 밖에 없다.

매개변수의 자료형이 다르면 메소드의 이름은 같아도 된다. 이러한 메소드들을 중복 메소드라고 한다. 하지만 중복 메소드는 코드 해석을 어렵게 만들 수 있으므로 주의깊게 사용해야 한다.


가변 길이 인수(variable-length arguments) : JDK 5 부터 다수의 인수를 넘겨야할 때 인수의 총 갯수를 지정해주지 않고도 가변적 개수의 인수들을 전달할 수 있다. 가변 길이 인수를 사용하기 위해서는 다음과 같이 매개 변수 자리에 (자료형 ... 변수 이름) 이렇게 사용하면 된다.


VarArgsTest.java

class Test {
    void sub(int... v) { //가변 길이 인수 사용
        System.out.println("인수의 개수 : " + v.length);
        for (int x : v)
            System.out.print(x + " ");
        System.out.println();
    }
}

public class VarArgsTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Test c = new Test();
        c.sub(1);
        c.sub(2, 3, 4, 5, 6);
        c.sub();
    }

}



가변 길이 인수 기능은 확실히 나중에 유용하게 사용할 수 있을 것 같다.



'개인공부 > JAVA' 카테고리의 다른 글

Java 11 : 배열(Array)  (0) 2014.08.11
Java 10 : 생성자와 정적 메소드  (0) 2014.08.11
Java 09 : PowerJava2 p.192 LAB 1  (0) 2014.07.30
Java 08 : 필드와 메소드  (2) 2014.07.30
Java 07 : PowerJava2 p.169 LAB 1  (0) 2014.07.30
Java 06 : 문자열(String) 클래스  (0) 2014.07.30
Java 05 : 클래스와 객체  (0) 2014.07.30
Java 04 : 지나가는 switch 문 예제  (0) 2014.07.16
프로필사진

Yowu (Yu Yongwoo)

백엔드 개발 정점을 꿈꾸는 흔한 개발자입니다
우분투 데스크탑 개발 환경을 매우 선호합니다
최근에는 vscode에 vim 모드 올려서 쓰고 있습니다
개발용 키보드는 역시 해피해킹 프로2 무각입니다
락 밴드에서 드럼을 꽤나 오래 쳤었습니다