일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- c언어
- 중학수학
- 파이썬
- ChatGPT
- 자바스크립트심화
- 연습문제
- CSS
- rnn
- 디버깅
- JSP
- 컴퓨터비전
- 정보처리기사실기
- 딥러닝
- SQL
- 혼공머신
- 중학1-1
- html/css
- 데이터분석
- 머신러닝
- 정보처리기사필기
- JSP/Servlet
- 데이터베이스
- 컴퓨터구조
- JDBC
- 자바스크립트
- 순환신경망
- 상속
- 개발일기
- 자바 실습
- 자바
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
객체를 만드는 생성자 1 - 생성자에 대하여 본문
드디어 3주 차 학습이 시작되었다. 이 단원은 생성자에 대해서는 두 단원밖에 없고 나머지는 static에 관한 부분이다. 이건 책에서도 맨 뒤에 나오는 부분이라 여기까지만 학습하고 책으로 다시 넘어가려고 한다.
아침 수업 시간이 얼마 남지 않았지만 할 수 있는 데까지 공부를 진행해 볼 것이다.
이론 1 - 생성자
생성자도 메서드의 일부이다. 생성자 이름은 클래스 이름과 동일해야 한다.
이름은 생략 가능하다.
String형 변수는 별도의 초기값을 지정해야 한다.
this는 객체 자신을 의미한다.
소멸되는 지역 변수가 최우선이고 그 다음이 멤버변수이다. 즉 지역변수를 지역변수로 업데이트하게 된다.
인자를 별도로 tname이라고 설정하지 않아도 불러올 수 있다.
this는 편의상 사용하는 것이다.
동일한 이름을 사용할 수 있으므로 편리하다.
퀴즈 1 - 생성자란? 1
한번 틀렸는데 두번째는 맞추었다. 조금 알쏭달쏭한 답들도 있었는데 이 부분은 다시 한번 풀어보는 게 좋을 것 같다.
퀴즈 2 - 생성자란? 2
이 문제도 잘 풀었다.
실습 1 - 생성자 구현하기
생성자를 만드는 건 조금 어려웠다. 접근지정자도 반환값도 명시하지 않고 그냥 Student 클래스만 하나 쓰는 게 맞는 건지 지금도 의문이 든다.
코드 해석
- Student 클래스
- String name;: Student 클래스의 필드이다. 학생의 이름을 저장한다.
- void study(): Student 클래스의 메서드이다. name 필드를 사용하여 "Studying"이라는 메시지를 출력한다.
- Student(String name): 이 부분이 생성자이다. 생성자를 통해 Student 객체가 생성될 때 name 필드를 초기화한다.
- Main 클래스
- public static void main(String args[]): 자바 프로그램의 진입점입니다. 여기서 프로그램이 시작된다.
- Student student = new Student("Elice");: Student 클래스의 객체 student를 생성합니다. 생성자를 호출하여 name 필드를 "Elice"로 초기화한다.
- student.study();: student 객체의 study() 메서드를 호출하여 "Elice Studying"이라는 메시지를 출력한다.
생성자의 특징
- 이름:
- 생성자의 이름은 클래스의 이름과 동일해야 한다. 이 코드에서 Student(String name)의 이름이 Student인 이유는 이 메서드가 생성자이기 때문이다.
- 접근지정자와 반환값:
- 생성자는 접근지정자를 가질 수 있지만, 반환 타입이 없다. 예를 들어, public, protected, private 같은 접근지정자를 사용할 수 있습니다. 하지만 반환 타입(void, int 등)은 선언하지 않습니다.
- 이 코드에서는 Student(String name) 생성자가 public 접근지정자를 사용하지 않았지만, 기본 접근지정자(default, 패키지 프라이빗)가 적용된다. 이 경우, 동일한 패키지 내에서 접근이 가능하다.
- 매개변수:
- 생성자는 매개변수를 가질 수 있다. 이 매개변수를 통해 객체를 초기화할 수 있다. 여기서 Student(String name) 생성자는 name이라는 매개변수를 받아 this.name = name;을 통해 클래스의 name 필드를 초기화한다.
생성자의 역할
생성자의 역할은 객체가 생성될 때 필드를 초기화하는 것이다. 이 코드에서 Student 객체가 생성될 때, 생성자가 호출되어 name 필드를 "Elice"로 설정한다. 그 후 student.study();가 호출될 때, "Elice Studying"이 출력된다.
학습을 마치고
아직 생성자에 대해 잘은 모르겠지만 그래도 조금은 알 것 같다. 오늘은 공부하기 싫은 날이었지만 그래도 오후까지 수업에 나가 잘 출석하였다. 이번주 월요일부터는 파이썬으로 하는 데이터 분석 수업은 듣지 않고 내가 하고 싶은 공부를 진행하니 훨씬 나은 것 같다.
그전까지만 해도 너무나도 수업에 듣기가 싫고 쓸모없는 걸 배우는 것 같아 무의미했었다. 난 해보니 인공지능보다는 게임 쪽이었다. 두 가지 모두 해보면서 내게 어떤 것이 더 맞는지 알게 되는 것 같다. 그래도 벡엔드 개발 쪽은 배우면 도움이 되고 꼭 필요한 것 같아 열심히 배우고 있다.
오후에는 JSP 수업이라 수업을 들을만 했다. 아직까지 큰 재미는 느끼지 못하고 있지만..
'프로그래밍 언어 > 자바' 카테고리의 다른 글
클래스와 객체 4 - 생성자 1 : 기본 생성자 (0) | 2024.08.17 |
---|---|
객체를 만드는 생성자 2 - 생성자 오버로드 (0) | 2024.08.16 |
클래스와 객체 3 - 자바 클래스 만들기 2 : 책 학습 및 예제 풀기 (0) | 2024.08.16 |
클래스와 객체 2 - 자바 클래스 만들기 1 : 객체 생성에서 생성자까지 실습 (0) | 2024.08.16 |
클래스와 객체 1 - 객체 지향과 자바 (0) | 2024.08.16 |