블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total662,015
Today10
Yesterday42

'메소드'에 해당되는 글 3건

  1. 2010.07.16 getter 와 setter. (1)
  2. 2010.07.13 클래스를 만들고 사용하기. (2)
  3. 2010.07.12 자바의 기본 형태와 접근 수정자.
자바를 처음 배울때 게터와 세터라고 말을 하는데, 이것이 무엇을 이야기 하는지 고이장히 궁금해 했었다. 다들 아무렇지도 않게, 당연하게 사용하고 있는 이것. 무엇이고, 왜 써야하는걸까?


맴버를 변수를 지켜라!
클래스를 새로 만들게 되면, 맴버 변수도 만들게 된다. 그리고 그 맴버 변수는 '닷' 연산자를 통해 접근이 가능하다.

class 사람 {
    int 키 = 170;
    int 몸무게 = 60;
}

이 클래스의 키와 몸무게를 사용하기 위해서는 '사람.키' 와 '사람.몸무게' 라는 이름으로 접근이 가능하다. 하지만, 이렇게 직접적으로 접근을 하게 될 경우에는 문제가 발생하게 된다. 사람의 클래스에서 사용되는 키와 몸무게는 위에서 명시간 상수가 일정하게 유지되어야 함에도 불구하고 아무나 접근을 해서 변경이 가능하다는 것이다. 보통의 사람인 키 = 170, 몸무게 = 60 의 사람을 만들려고 사람 객체를 생성했는데, 의도하지 않은 키 = 20, 몸무게 = 80 의 사람 객체가 만들어 질 수 있다는 것이다. 그래서 일반적으로 클래스의 맴버 필드에는 클래스에서만 접근하여 수정이 가능한 'private' 로 선언을 하게 된다.

class 사람 {
    private int 키 = 170;
    private int 몸무게 = 60;
}

하지만 이렇게 되면 객체에서는 키와 몸무게를 변경할 수 없다는 것이다. 이것을 가능하게 해주는 것이 케터와 세터 메소드의 사용이다.


게터와 세터
게터와 세터는 전혀 특별한 것이 아니다. 그냥 일반적인 클래스안에 포함된 메소드이다. 단지 그 열할이 맴버 필드의 변수를 변경해 주는 기능을 갖음으로써 클래스의 맴버 필드를 보호하는 것이다.

class 사람 {
     private int 키 = 170;
     private int 몸무게 = 60;
    public int get키() {
        return 키;
    }
    public void set키(int a) {
        키 = a;
    }
}

'get키()' 가 게터가 돠고 'set키'가 세터 메소드가 되는 것이다. 위의 클래스에서는 키를 변경하기 위해 '사람.키' 라는 이름으로 접근을 할 수 없고, 사람의 객체를 생성한 후 세터 메소드를 통해서만 접근이 가능하다.

사람 people = new 사람();
people.set키(180);

사람의 키를 알아내기 위해서는 게터 메소드를 통해 객체의 값을 가져올 수 있다.

System.out.println(people.get키());

어떻게 보면 굉장히 불필요한 작업이라고도 볼 수 있겠지만, 개발자의 의도를 표현하면서, 사용자에게 또 다른 가능성을 부여하는 발전적인 기능이라고 할 수 있다.

'Dev Center > JAVA start' 카테고리의 다른 글

이것 아니면 저것. if ~ else 문  (0) 2010.07.18
배열의 배열  (0) 2010.07.17
getter 와 setter.  (1) 2010.07.16
배열만 알아도 한단계 업그레이드!  (0) 2010.07.15
클래스를 만들고 사용하기.  (2) 2010.07.13
자바의 기본 형태와 접근 수정자.  (0) 2010.07.12
Posted by seanhigher

댓글을 달아 주세요

  1. 2020.05.07 18:17 신고 모딩  댓글주소  수정/삭제  댓글쓰기

    정리된 내용 잘 읽었습니다. 감사합니다.

자바에 있어서 클래스는 자바의 모든것이라고 할 수 있다. 자바를 시작하게 되면 다양한 기능을 가진 명령어들을 볼 수 있는데 이것들은 모드 클래스로 이미 만들어진 것이다. 그 형태에 따라서 우리가 알맞게 사용을 하고 있는 것이다. 클래스는 어떤 모양새를 가지고 있는지 알아볼 필요가 있다.


클래스의 모습.
클래스의 형태는 매우 간단하다. 맴버 필드와 메소드의 형태이다. 어떠한 클래스 파일을 보더라도 이것은 동일하다. 만일 개발자가 강아지라는 클래스를 만들고자 한다. 강아지는 얼굴, 다리, 몸통, 꼬리, 털의 색 등의 다양한 외형적인 모습을 가지고 있는데 단편적인 정보를 가지고 있으므로 맴버 필드로 표현하는 것이 가능하다. 그리고 이것은 모든 강아지들에게 동일하게 적용된다. 물론 가끔은 다리를 다쳤다거나 꼬리가 없는 등의 특별한 경우가 있겠지만, 기본적인 경우에는 모두 꼭 가지고 있는 것이 강아지들으 일반적인 모습이다.  강아지는 먹기, 짖기, 달리기 등의 다양한 행동을 할 수 있다. 이러한 행동들은 움직임, 변화를 나타내기 때문에 메소드로의 표현 할 수 있다. 강아지에 따라서 짖는 형태나 달리는 모습들은 달라질 수 있겠지만, 그런것들은 좀더 나중에 오버로딩과 오버라이딩을 통해서 변경하는 것이 가능하다. 맴버 필드와 메소드로 다양한 형태의 강아지라는 객체를 만들어 낼 수 있는 것이다.


public class 강아지 {
    private 얼굴 = 둥글둥글;
    private int 다리 갯수 = 4;
    private 몸통 = 홀쭉;
    private boolean 꼬리 = true;
    private 털의 색 = brown;
    public void 짖기() {
    }
    public void 먹기() {
    }
    public void 달리기() {
    }
}


클래스 사용하기.
강아지 클래스를 실제로 코디아면 위와 같은 형태를 갖게 될 것이다. 이 클래스를 만들어 놓은 후 이것을 사용하기 위해서는 다음과 같이 입력할 수 있다.

강아지 dog = new 강아지();

이것은 dog 라는 이름을 가진 강아지 객체를 만드는 것이다. 자세하게 풀어서 설명을 하면, 강아지라는 이름을 가진 클래스의 복사본을 dog 라는 이름으로 새롭게 만들어 저장한다는 뜻이다. 이렇게 강아지 객체는 만들어내면 dog 는 강아지 클래스가 갖는 모든 정보와 기능을 사용하는 것이 가능하다. dog 는 강아지 클래스가 가지고 있는 얼굴, 몸통 등의 정보를 가지고 있으며, 짖기, 먹기, 달리기 등의 행동을 메소드를 통해서 할 수 있게 되는 것이다. 만일 dog 를 달리게 하고 싶다면 dog.달리기(); 라고 호출하는 것 만으로 달리게 하는 것이 가능하다.


클래스 파일.
자바 프로그래밍을 하면 가장 먼저 main 메소드가 포함된 클래스를 만들게 된다. 그리고 필요에 따라 정보와 기능을 가지고 있는 클래스를 만들게 되는데, 이 클래스들은 컴파일을 실행함과 동시에 하나의 클래스 파일로 생성된다. 하나의 자바 파일에 여러개의 클래스를 만들었다면 컴파일을 하고 난 후에는 여러개의 클래스 파일들이 클래스 명으로 만들어지는 것이다. 하나의 프로그램을 하나의 자바 파일에 만드는 것도 괜찮은 방법이기는 하지만, 하나의 자바 파일에 하나의 클래스를 선언하는 것을 추천한다. 그래야 나중에 유지 보수를 하는데도 좀더 수월하게 할 수 있다.

Posted by seanhigher

댓글을 달아 주세요

  1. 2010.07.16 10:16 닉쑤  댓글주소  수정/삭제  댓글쓰기

    요즘 블로그 스킨 자꾸 건드리느라 테이블 태그도 써보고 HTML코드 건드려보고 있는데요.ㅎ
    스킨 코드를 볼때마다 조금은 다르지만..
    자바나 C++, C 언어 다루던?때가 생각나네요.
    잘 안풀릴땐 짜증만빵이지만 생각한데로 코딩해서 잘 돌아가면 완전 기분 좋았던.. ㅋㅋㅋ
    잘 봤습니다. 하지만 다시 돌아가고 싶지 않은... ㅡㅡ; ㅋ

자바에서는 프로그램을 작성하면서 기본적으로 작성해야 하는 것들이 있다. 이것들은 자바를 시작함에 있어서 이것이 자바로 작성된 언어이고, 자바 컴파일러가 해석을 하기 위해서 꼭 있어야 하는 요소이기도 하다.


자바의 기본적인 폼.

public class Exam {
    public static void main(String[] args) {
        System.out.println("Hi~!");
    }
}

처음 자바를 시작하는 사람들로써는 생각보다 간단하지 않은 문장들이다. 더욱이 그 의미를 모른다면 단지 외계어처럼 보일 것이다. 하지만, 이것은들 자바언어에 있어서 필수적으로 기억해야 할 것들이다. 각각 매우 중요한 의미를 가지고 있다. 간단하게 설명을 하자면 맨 처음에 나오는 'public' 은 접근 수정자라고 하여 클래스의 공유정도(?)를 이야기한다. 객체라는 것을 생성해서 사용하는 객체지향적 언어에서는 필수적이고 중요한 개념이라고 할 수 있다. class Exam 은 쉽게 예측할 수 있겠지만, Exam 이란 이름을 가진 클래스를 만든다는 것이다. 각각의 클래스에는 기능(?)을 같는 메소드가 포함되게 되는데 자바 프로그램을 실행하기 위해서는 반드시 main이라는 이르을 갖는 메소드가 있어야 한다. 자바가 실행됨과 동시에 가장먼저 자동으로 실행되는 메소드이다. 만일 main이라는 이름을 갖는 메소드가 없다면 아무리 프로그램을 잘 만들었다고 한들 절대로 결과물을 볼 수 없을 것이다. main 메소드는 바로 뒤에 괄호"()" 를 포함하고 있다. 이것은 인자값을 전달하기 위한 용도로도 사용되지만, 컴파일러에 이것이 메소드임을 말해주기도 한다. 'static' 키워드는 상속과 관련한 키워드로 우선은 'static' 이라는 것이 클래스에서만 사용가능하다는 것으로 이해하면 될 것이다. 'void'는 main 메소드가 반환하는 값이 없음을 알려주는 것이다. 각 메소드는 'return' 값을 갖게 되는데 기본 자료형을 포함한 모든 클래스의 형태로 값을 반하는 것이 가능하다. 'String[] args' 는 String 형태의 배열을 이야기 한다. 이것은 main 메소드를 실행할때 String 형태의 인자값을 입력받을 수 있다는 것이다. 이것은 자바 프로그램에 있어서 가장 기본적으로 갖는 형태를 나타낸다. 이중에서 하나라도 빼먹거나 잘못 입력을 하게 된다면 자바 프로그램을 실행되지 않을 것이다.


접근 수정자!
기본적인 자바의 폼에서 'public' 이라는 접근 수정자를 보았다. 그럼 이것은 어떠한 의미를 갖고 접근 수정자에는 어떠한 것들이 있을까? 접근 수정자의 가장 큰 기능은 접근 수정자로 선언된 모든 것들에 대해, 외부, 내부에서의 접근 정도를 차단하는 것이다. 이것은 마치 놀이동산에서 위험한 놀이기구를 타기 위해서는 어느정도의 키이상의 기준을 유지해야 하는 것과 같다. 만약 기준이 150, 170으로 되어 있다면 150 이하가 하나의 그룹이고, 170이하가 또 하나의 그룹이되고 그 이상이 되는 것이다. 만약 자신의 키가 165라면 모두가 탈 수 있는 놀이기구과 150이상이 탈 수 있는 놀이기구를 탈 수 있는 것과 같다. 접근 수정자가 적용되는 것은 클래스, 메소드 인데, 이 두가지에서 사용이 가능하다는 것은 자바의 모든 영역에서 사용이 가능하다는 것과 같다. 자바의 자료형 역시나 클래스의 형태로 되어 있기 때문이다. 접근 수정자로 사용되는 키워드에는 4가지로 'public', 'protected', 'default', 'private' 가 있다. 이것들은 각각 다른 클래스, 서브 클래스, 같은 패키지, 같은 클래스로 그 사용범위를 한정 지을 수 있다. 만일 접근 수정자를 명시하지 않을 경우에는 기본적으로 'default' 가 선언되며 이것은 같은 패키지 내에서의 사용이 가능하다는 것을 의미한다.

자바의 기본 폼에는 자바에서 추구하는 객체 지향적 언어의 정신이 포함되어 있다. 자신이 만들어낸 객체를 다른 사람이 쓸 수 있도록, 그리고 접근 제한을 통해 각각의 객체들이 제작자의 의도를 벗어나지 않도록 만드는 것도 가능하다. 이것은 또한 자바 프로그램의 보안성을 향상시키는 또 하나의 방법이 되기도 한다. 이러한 기능은 별로 대단해 보이지 않지만, 자바를 더욱 빛나게 하는 또 하나의 요소이기도 하다.

Posted by seanhigher

댓글을 달아 주세요

최근에 달린 댓글

글 보관함