Java - 메소드와 생성자

자바로 배우는 자료구조

Posted by Yan on May 3, 2021

매소드와 생성자

  • 클래스는 서로 관련있는 데이터들을 하나의 단위로 묶어두기 위한 것이다. 서로 관련있는 데이터들뿐 아니라 그 데이터와 관련이 깊은 메소드를 함께 묶어둘 수 있다.
  • 이렇게 해서 응집도(cohension)를 높이고, 결합도(coupling)를 낮출 수 있다.
  • 연관성있는 모듈끼리 모아놓으면, 다른 모듈간의 상호의존성이 떨어져서 전체 구조가 단순해진다. (예시 : 친한 사람들끼리 한 방에 모아두어야 다른 방에 연락하는 등의 복잡도를 줄일 수 있다. 그리고 친한 사람들끼리 결합력이 높아진다.)

클래스, 참조변수, 객체

  • class는 여전히 설계도일뿐, 실체가 아니다.
  • Class1 c = new Class1();과 같이 new 명령어로 객체를 만들었을 때, 우리는 클래스가 아니라 각각의 객체 안에 있는 메소드를 실행하는 것이다.
  • Class1이라는 타입의 참조변수 c가 new 명령어로 만든 객체를 참조하도록 만든 후에, 참조변수.메소드이름 또는 참조변수.변수이름으로 호출한다.

객체란?

  • 객체지향 프로그래밍에서 객체란 데이터 + 메소드다. 데이터는 객체의 정적 속성을 표현하며, 메소드는 객체의 동적 속성(기능)을 표현한다.

생성자

  • 클래스와 동일한 이름을 가지며, return 타입이 없는 메소드
  • 객체를 생성할 때 자동으로 실행된다.
  • 생성자가 없는 클래스의 경우 객체를 생성한 후 따로 변수의 값을 초기화했었다.
  • 생성자가 있는 경우에는 객체를 생성할 때 인자로 변수를 초기화한다.
  • 생성자는 반드시 매개변수를 받아야하는 것은 아니다. (zero-parameter constructor)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    class Polynomial3 {
        int nTerms;
        int Term3 [] terms;
    
        public Polynomial3() {
            nTerms = 0;
            terms = new Term3[100];
        }
    
        //메소드들
    }