일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 정보처리기사필기
- rnn
- 자바 실습
- 혼공머신
- html/css
- c언어
- CSS
- 상속
- 순환신경망
- 딥러닝
- 자바스크립트심화
- JSP
- 데이터분석
- 파이썬
- 데이터베이스
- 자바
- 머신러닝
- 컴퓨터비전
- JDBC
- 개발일기
- 정보처리기사실기
- 중학수학
- 디버깅
- 컴퓨터구조
- 자바스크립트
- ChatGPT
- JSP/Servlet
- 연습문제
- SQL
- 중학1-1
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
객체 지향 프로그래밍과 클래스 2 - 클래스와 인스턴스 본문
두 번째 학습을 시작해 본다.
이론 2 - 클래스와 인스턴스
인스턴스는 실사례이다.
개별 객체, 사례이다. 클래스에서 객체를 생성하는 것을 말한다.
직접 멤버 변수를 호출하는 것은 특수한 경우를 제외하고 추천하지 않는다. 대부분 메서드를 사용한다.
int, double, boolean, float은 기본 자료형이고 클래스, String은 참조 자료형이다. 기본 자료형은 데이터의 길이가 고정되어 있지만, 참조 자료형은 설계하는 만큼 조절할 수 있다. 참조 자료형은 new를 통해서 생성해야 한다.
제공되는 것도 있고 내가 만들 수 있기 때문이다.
String은 수많은 메서드를 호출할 수 있다.
퀴즈 2 - 인스턴스란?
이렇게 어려운 퀴즈 문제는 처음이었다. 대부분 한 번에 맞추는데 이건 10번 이상 오답으로 체크해서 결국 헬퍼에게 물어봐서 풀었다.
아마도 아직 클래스에 대한 개념이 잡히지 않은 것 같다. 이 문제는 다음에 한번 더 복습해야 할 것 같다.
퀴즈 3 - 참조 자료형이란?
이 문제는 한번에 잘 풀었다.
실습 3 - 객체 사용하기
틀린 코드
이 문제는 한 번의 실수나 모르는 정도가 아니라 어떤 개념에 대한 이해가 부족한 것 같아 틀린 코드를 붙여보았다. 처음에 student 클래스를 생성하는 부분이 좀 어려워서 틀렸는데 거기에 또 괄호를 붙이는 거였다.
그리고 마지막에 함수를 호출하는 부분에서도 헷갈리고 왜 그런지 이유를 잘 모르겠다. 한번 이 부분을 찾아보려고 한다.
student.study() 호출 시 student라는 변수가 선언되어 있지 않아서 에러가 발생한다. 실제로는 s.study()를 호출해야 한다.
Java에서 메서드 호출 이해하기
- 클래스와 객체:
- Student는 클래스이다. 클래스는 객체를 생성하는 설계도와 같다.
- s는 Student 클래스의 인스턴스(객체)이다.
- 메서드 호출:
- 메서드는 객체에 속한다. 따라서 메서드를 호출하려면 클래스의 인스턴스(객체)를 사용해야 한다.
- 올바른 메서드 호출은 객체를 통해 이루어진다.
그러니까 student 변수는 선언된 적이 없으니까 호출할 수 없는 것이다. 프로그래밍에서는 클래스 이름이 아닌 변수로 접근해야 한다.
추가 설명
- 클래스 이름으로 접근:
- 클래스 이름을 통해 메서드를 호출할 수 있는 경우는 메서드가 static으로 선언되어 있을 때이다. static 메서드는 클래스에 속하며 객체의 생성 없이 호출할 수 있다.
- 예를 들어, Student.staticMethod() 형태로 호출할 수 있습니다. 그러나 study() 메서드는 static이 아니기 때문에 객체를 통해 호출해야 한다.
class Student {
static void staticMethod() {
System.out.println("Static method called.");
}
}
// 메서드 호출:
Student.staticMethod(); // 올바른 접근
문제 다시 풀어보기
이제 확실히 이해했다. 요즘 chat-gpt로 공부를 하는 게 너무나도 재미있다. 요즘처럼 공부하기 좋은 환경도 없는 것 같다. 하지만 그만큼 재미있는 것도 많아서 유혹도 많은 게 사실이다. 이 유혹만 잘 이길 수 있다면 공부하기에 최적의 환경이다. 올해 난 정말 열공을 해서 반드시 내년에 게임 회사에 취업하려고 한다.
학습을 마치고
두 번째 학습도 마쳤다. 이제 세 번째 이론 학습만 하면 이 단원도 끝이 난다. 그러면 조금 일찍 끝나면 수업을 들어도 좋을 것 같다. 내일 하루도 정말 기대가 된다.
'프로그래밍 언어 > 자바' 카테고리의 다른 글
객체지향 프로그래밍과 클래스 4 - 미션 문제 풀기 (0) | 2024.08.16 |
---|---|
객체 지향 프로그래밍과 클래스 3 - 객체 지향 프로그래밍 (0) | 2024.08.16 |
객체 지향 프로그래밍과 클래스 1 - 클래스 소개 (0) | 2024.08.15 |
메서드 13 - 문자열 클래스와 미션 문제 다시 풀어보기 (0) | 2024.08.15 |
메서드 12 - 완전수 구하는 5단계 다시 한번 풀어보기 (0) | 2024.08.15 |