매소드와 생성자
- 클래스는 서로 관련있는 데이터들을 하나의 단위로 묶어두기 위한 것이다. 서로 관련있는 데이터들뿐 아니라 그 데이터와 관련이 깊은 메소드를 함께 묶어둘 수 있다.
- 이렇게 해서 응집도(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]; } //메소드들 }