일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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언어
- 데이터베이스
- 자바스크립트
- 자바
- 중학수학
- 상속
- 컴퓨터비전
- 연습문제
- 파이썬
- 정보처리기사실기
- JSP
- html/css
- JDBC
- 데이터분석
- 문자와식
- CSS
- 오블완
- 중학1-1
- 딥러닝
- 티스토리챌린지
- SQL
- 개발일기
- JSP/Servlet
- Today
- Total
목록2024/12/01 (13)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
추상 클래스는 상속에서 슈퍼 클래스로 사용된다. 지금부터 추상 메서드와 추상 클래스에 대해 알아볼 것이다. 추상 메서드추상 메서드란 선언은 되어 있으나 코드가 구현되어 있지 않은, 즉 껍데기만 있는 메서드이다. 추상 메서드를 작성하려면 abstract 키워드와 함께 원형만 선언하고 코드는 작성하지 않는다. 다음은 추상 메서드를 선언한 예이다.public abstract String getName();public abstract void setName(String s); 다음은 코드가 작성되어 있기 때문에 추상 메서드가 될 수 없다.public abstract fail() { return "Good Bye"; } // 컴파일 오류 추상 클래스 만들기추상 클래스가 되는 경우는 다음 2가지로서,..
메서드 오버라이딩에 대한 학습을 이어서 진행해보겠다. 벌써 11시 반이 다 되었지만 앞으로 3시간 안에 상속 단원의 개념 학습을 모두 마칠 생각이다. 그래야 오늘 새벽에 연습문제를 대부분 풀고 상속 학습을 마칠 수 있을 것 같다. 오늘은 가능하면 JDBC 공부를 시작해보려고 한다. 동적 바인딩 : 오버라이딩된 메서드 호출동적 바인딩(dynamic binding)은 실행할 메서드를 컴파일 시(compile time)에 결정하지 않고 실행 시(run time)에 결정하는 것을 말한다. 자바에서는 동적 바인딩을 통해 오버라이딩된 메서드가 항상 실행되도록 보장한다.다음 그림은 동적 바인딩의 두 사례를 보여준다. 그림 의 왼쪽에서 main()에서 shape() 객체를 생성하고, paint() 메서드를 호출하..
이번에는 메서드 오버라이딩에 대해서 공부해 보겠다. 메서드 오버라이딩의 개념메서드 오버라이딩은 슈퍼 클래스와 서브 클래스의 메서드 사이에서 발생하는 관계이다. 슈퍼 클래스에 선언된 메서드와 같은 이름, 같은 리턴 타입, 같은 매개 변수 리스트를 갖는 메서드를 서브 클래스에서 재작성하는 것이다. 다음 그림은 메서드 오버라이딩의 개념을 보여준다. 서브 클래스에서 슈퍼 클래스의 메서드2()를 무시하기 위해 새로 메서드2()를 재작성한 사례이다. 외부에서나 내부에서 메서드2()를 호출하면 슈퍼 클래스의 메서드는 절대로 실행되지 않고 반드시 서브 클래스의 메서드2()가 실행된다. 메서드 오버라이딩은 슈퍼 클래스 메서드 무시하기 혹은 덮어쓰기로 표현할 수 있다. 이는 슈퍼 클래스의 메서드를 무시하고 서브 클..
새벽에 수업으로 들었던 업캐스팅과 다운캐스팅에 대한 학습을 진행해 보겠다. 캐스팅(casting)이란 타입변환을 말한다. 자바에서 클래스에 대한 캐스팅은 업 캐스팅(upcasting)과 다운 캐스팅(downcasting)으로 나뉜다. 업 캐스팅다음 그림을 살펴보자. 사람을 생물이라고 불러도 되며, 생물을 넣는 박스에 코끼리나 사람을 넣고 박스에 생물을 가리키는 팻말을 사용해도 무방하다. 왜냐하면 사람은 생물을 상속받았기 때문이다. 이와 비슷하게 자바에서 서브 클래스는 슈퍼 클래스의 속성을 상속받기 때문에 서브 클래스의 객체는 슈퍼 클래스의 멤버를 모두 가진다. 그러므로 서브 클래스의 객체를 슈퍼 클래스의 객체로 취급할 수 있다. 서브 클래스의 객체에 대한 레퍼런스를 슈퍼 클래스 타입으로 변환하는 ..
오후에 너무 졸려서 낮잠을 조금 잔다는 게 3시간도 넘게 잠을 잤다. 계속 더 자고 싶었으나 세수를 하지 않은 게 생각나서 졸린 눈을 부비며 겨우 일어났다. 그리고 이제 공부를 다시 시작해본다. 서브 클래스와 슈퍼 클래스의 생성자 호출 및 실행서브 클래스와 슈퍼 클래스는 각각 생성자를 갖고 있다. 이와 관련된 질문에 대한 답은 다음과 같다. 질문 1) 서브 클래스 객체가 생성될 때 서브 클래스의 생성자와 슈퍼 클래스의 생성자 모두 실행되는가?둘다 실행된다. 서브 클래스의 객체가 생성되면 이 객체 속에 서브 클래스와 멤버와 슈퍼 클래스의 멤버가 모두 들어있다. 생성자의 목적은 객체 초기화에 있으므로 서브 클래스의 생성자는 생성된 객체 속에 들어 있는 서브 클래스의 멤버 초기화나 필요한 초기화를 수행..
점심을 먹고 더 쉬고 싶은 유혹을 받기도 했지만 마음을 잡고 다시 공부를 시작하기로 했다. 오늘 공부할 것도 정말 많다. 앞으로 3시간 동안 오후 공부를 진행하고 저녁식사 전에 30분 정도는 운동을 해야겠다.운동도 정말 습관이 잘 들지 않는다. 하지만 내 경험상 보통 하나의 습관을 만드는데 1년 정도 걸렸다. 개발 공부도 한 1년 정도 하니 이젠 습관이 되어 거의 숨을 쉬는 것만큼 자연스러운 일이 되었다. 다른 습관도 마찬가지이니 길게 잡고 가려고 한다. 자취를 하며 1년 정도는 엄마가 해주시는 반찬들 위주로 먹고 인스턴트 음식을 많이 사다 먹었지만 요즘에는 스스로 요리를 해먹는 기쁨도 느끼듯이 차츰 좋은 습관을 넓혀 나가게 될 것 같다.그러니 지금 잘 안된다고 해서 낙담하지 않기로 했다.이어서 접근 지..
조금 전에는 상속의 개념에 대해서 개괄적으로 살펴보았다면 여기서부터는 직접 클래스를 만들며 상속을 자세히 알아보기로 하자. 1. 자바의 상속 선언자바에서는 부모 클래스는 슈퍼 클래스, 상속 받는 자식 클래스를 서브 클래스라고 부른다. 상속을 선언할 때 확장한다는 뜻을 가진 extends 키워드를 사용한다. 다음은 상속 관계의 일부이다. Student 클래스는 Person 클래스의 멤버를 물려받았으므로, Person 클래스에 선언된 필드나 메서드를 다시 반복하여 작성할 필요가 없고, 필드나 메서드를 추가 작성하면 된다. StudentWorker가 Student를 상속받으면 Person 클래스의 멤버로 자동 상속받는다. 2. 상속과 객체다음 예제를 통해 상속의 실제 사례와 상속과 객체 사이의 관..
이제부터 자바 책으로 돌아와 상속의 처음부터 공부해보려고 한다. 아침에 주일 예배도 잘 드리고 집에 와서 바로 공부를 시작해본다. 오늘 설교 말씀은 투자에 대한 말씀이었는데 그중에서 가장 귀한 것이 시간을 투자하는 것이라고 하셨다. 지금처럼 시간을 아껴서 열심히 공부하고 나 자신의 미래를 위해 투자한다면 난 1, 2년 후에 얼마나 크게 성장해 있을지 기대가 되었다.그럼 공부를 시작해보겠다. 상속의 개념현실 세계에서 상속은 부모의 재산을 자식이 물려받는 것이다. 하지만 객체 지향 언어에서 상속은 재산 상속이 아니라 부모의 생물학적 특성을 물려받는 유전에 가깝다. 정확이 말하면 부모 클래스에 만들어진 필드와 메서드를 자식 클래스가 물려 받는 것이다.상속 선언만 하면 자식 클래스는 부모 클래스에 만들어..
앞 시간에 월급 계산 프로그램 문제에서 클래스에 객체를 생성하고 사람들의 월급을 출력해보았다. 선생님은 여기서 한 단계 더 나아가 상속으로 클래스 하나를 더 만들도록 하셨다.이제 이 문제를 풀어보려고 한다. 월급 계산 프로그램 만들기 두 번째 지금까지 작성한 코드 전체 살펴보기 RegularEmployee 클래스 TempEmployee 클래스 PartTimeEmployee 클래스 main 클래스 문제 풀어보기 1. 공통적으로 갖고 있는 필드와 메서드 살펴보기상속을 하기 위해서는 공통적으로 어떤 것을 갖고 있는지 살펴봐야 한다. 이렇게 중복되는 부분을 빨간 네모로 표시해보니 상당히 많음을 알 수 있다. 하지만 getMoneyPay()의 경우 리턴하는 값이 모두 다르다. 즉..
그동안 배운 내용을 정리하며 문제를 풀어보려고 한다. 문제는 월급을 계산하는 프로그램이다. 이 문제는 6월 중순 무렵에는 어려워서 문제 자체도 이해하지 못했었다. 지금은 한번 도전해 볼 만할 것 같다. 월급 계산 프로그램 만들기 문제 설명주어진 문제가 많은데 3개의 클래스를 만드는 것이다. RegularEmployee, TempEmployee, PartTimeEmployee이다. 이 세 개의 클래스에는 모두 getMoneyPay라는 메서드를 갖고 있는데 이 기능은 월급을 계산해서 결과값으로 돌려주는 것이다. 이들의 공통적인 부분을 모아서 Employee라는 클래스를 하나 더 생성해야 한다. 중복되는 부분은 필드, 메서드가 있다. 정리해보면 이렇게 된다. 월급..