FlowerBombs
클래스/객체/생성자 본문
클래스
- 자바 프로그램의 최소단위.
- 같은 대상(기능)을 위해 존재하는 변수나 함수들을 그룹으로 묶은 단위.
<생성자 메서드>
클래스 -> 어떤 기능을 위한 변수와 함수를 그룹화
객체 -> 클래스의 기능을 부여한 특수한 변수
클래스 하나를 통해서 같은 형식(구조)를 갖지만 내용은 다른 객체를 여러개 생성할 수 있다.
ex) 글 목록에 속한 게시글들은 모두 같은 구조지만, 내용은 각자 다르다.
게시글 -> 제목, 작성자, 내용, 작성일시 ....
객체를 생성하고 나면 각 객체가 포함하는 멤버변수들의 값을 각각 다르게 할당해야 한다
메서드는 각 객체들이 수행해야 하는 기능
ex) 게시글 -> 읽기, 쓰기, 수정, 삭제 등 ..
객체 할당 후 각각 값을 다르게 설정해야 하므로
클래스 작성시 멤버변수를 선언하면서 값을 대입하는 것은 큰 의미 없음.
객체
클래스로 정의된 기능을 부여한 형태
1 2 3 4 | Foo foo = new Foo(); foo.num1 = 200; foo.plus(); int result = foo.getNum(); | cs |
생성자
- 객체가 생성될 때 자동으로 호출되는 특수 메서드
- 리턴형을 명시하지 않는다.
- 생성자의 이름은 클래스 이름과 동일해야 한다.
- 모든 클래스는 하나 이상의 생성자가 존재해야 한다.
1 2 3 | class Foo { Foo() {...} } | cs |
기본생성자
클래스 정의과정에서 생성자의 정의가 생략될 경우 자바 컴파일러가 자동으로 다음과 같은 생성자가 존재한다고 판단함.
1 2 3 | class Foo { Foo() {...} } | cs |
생성자 파라미터
- 객체를 초기화 하기 위해 전달하는 값
- 주로 멤버변수의 값을 초기화 하는데 사용함
- this : 현재 객체를 의미하는 키워드
= 변수 앞에 명시할 경우 멤버변수 의미
= 메서드 앞에 명시할 경우는 큰 차이 없음.
1 2 3 4 5 6 | class Foo { int bar; Foo(int b){ this.bar = b; } } | cs |
클래스
1) 표현하고자 하는 정보들을 멤버변수로 정의
2) 멤버변수에 할당할 값을 파라미터로 받는 생성자를 정의
->?