일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데이터분석
- 자바
- 정보처리기사실기
- JSP
- 자바스크립트심화
- 정보처리기사필기
- 개발일기
- 연습문제
- 자바 실습
- 컴퓨터비전
- JDBC
- 데이터베이스
- 디버깅
- 컴퓨터구조
- 파이썬
- SQL
- 티스토리챌린지
- c언어
- CSS
- 상속
- 자바스크립트
- html/css
- 머신러닝
- 혼공머신
- 오블완
- 중학수학
- 문자와식
- 딥러닝
- 중학1-1
- JSP/Servlet
- Today
- Total
목록프로그래밍 언어/자바 (186)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
다음 문제도 이어서 풀어보겠다. 여기서부터는 묶음 문제는 없고 각각의 문제들이 있다. 연습문제 실습편 문제 풀기 네 번째 문제 9번 문제는 Stack 인터페이스를 구현하여 문자열을 저장하는 StringStack 클래스를 작성하고, StackApp 클래스의 main() 메서드를 통해 동작을 확인하는 것입니다. 요구사항 분석Stack 인터페이스length(): 현재 스택에 저장된 개수를 반환capacity(): 스택의 전체 저장 가능 개수를 반환pop(): 스택의 최상단 값을 제거하고 반환push(String val): 스택의 최상단에 값을 저장. 저장 실패 시 false 반환동작 시나리오사용자로부터 입력을 받아 스택에 문자열 저장"그만" 입력 시 프로그램 종료스택에 저장된 문자열을 모두 출력 ..
이번에 풀 문제는 4문제가 함께 묶여있는 문제들이다. 한 점의 좌표를 나타내는 문제인데 이제 풀어보기로 하자. 가능하면 빠른 시간 내에 풀어볼 것이다. 연습문제 실습편 문제 풀기 세 번째 문제 5번 문제 코드 문제 풀기 ColorPoint 클래스 Main 클래스 코드 설명 1. 클래스 구조Point 클래스2차원 좌표 (x, y)를 표현하는 클래스x, y는 private 멤버로 직접 접근은 불가하고, getX(), getY() 메서드를 통해 값을 가져온다.move() 메서드로 좌표를 변경할 수 있다.ColorPoint 클래스Point를 상속받아 좌표 외에 색상(color) 정보를 추가로 관리하는 클래스주요 메서드setColor() : 색상을 설정setXY() : 좌표를 변경한다. ..
새벽에 30분 정도는 어제 풀단 만 2번 문제를 마저 풀었고, 30분은 그동안 이수한 과목들을 정리하며 학습일지로 남겼다. 이제 하나의 예제로 이어지는 문제를 계속해서 풀어보려고 한다.3번 문제부터는 정말 어려워 보이지만 그래도 도전해 볼 것이다. 연습문제 실습편 문제 풀기 두 번째 문제 3번 문제 코드 주어진 추상 클래스 Converter를 상속받아 원화를 달러로 변환하는 Won2Dollar 클래스를 작성하는 문제이다. 문제 풀기 Won2Dollar 클래스 Main 클래스 코드 설명Won2Dollar 클래스Converter 추상 클래스를 상속받음생성자를 통해 환율(ratio)을 설정convert(double src): 원화에서 달러로 변환하는 로직(src / ratio) 구현sr..
오후에 이론편 연습문제까지 모두 풀었고 이제 실습편 문제가 남아있다. 어느 세월이 이 많은 문제를 다 풀까 모르겠지만 적어도 내일 새벽까지는 다 풀 수 있을 것 같다.그럼 1번 문제부터 풀어보겠다. 연습문제 실습편 문제 풀기 문제 1번 문제 코드 아직 ColorTV 클래스가 구현되어 있지 않아 오류가 뜬다. 이제 이 클래스를 만들어보겠다. ColorTV 클래스 Main 클래스 코드 설명TV 클래스size라는 필드를 가지며, 이는 TV의 크기를 나타냄getSize() 메서드로 size 값을 반환ColorTV 클래스TV를 상속받아 새로운 필드 color를 추가. 이는 컬러 개수를 나타냄생성자에서 super(size)를 사용하여 부모 클래스의 생성자를 호출printProperty() ..
이론 문제 마지막 학습이 될 것 같다. 문제가 정말 많지만 그래도 처음 접할 때보다 문제를 푸는 감이 생겼다. 연습문제 이론편 문제 풀기 네 번째 문제 12번 문제 코드 이 문제는 동적 바인딩이 적용된 코드에서 출력 결과를 예측한다. s.paint()의 결과를 Circle 또는 Shape로 출력되게끔 빈칸에 적절한 코드를 삽입해야 한다. 문제 풀기 (1) Shape s = new Circle(); s.draw()의 결과 코드 분석Shape s = new Circle();부모 클래스 Shape 타입의 참조 변수 s가 자식 클래스 Circle 객체를 참조한다(업캐스팅).s.draw()동적 바인딩에 의해, 실제 객체 타입인 Circle의 draw() 메서드가 호출된다. ..
추상 클래스에 대한 문제를 이어서 풀어보려고 한다. 문제를 풀수록 어려워지고 있지만 그래도 어려운만큼 배우는 것이 많으니 문제 푸는 것을 멈출 수 없다. 연습문제 이론편 문제 풀기 세 번째 문제 9번 (1)번 답안 틀린 답이다. void f();는 추상 메서드로 선언해야 한다.추상 클래스에서 추상 메서드는 반드시 abstract 키워드로 선언해야 한다. 이렇게 수정하면 코드가 문제 없이 실행된다. (2)번 답안 맞는 답이다. void f()는 추상 메서드가 아니며, 일반 메서드이다.추상 클래스 내에 일반 메서드를 선언하는 것은 허용된다. (3)번 답안 틀린 답이다. C1 클래스는 B1를 상속받았지만, B1의 추상 메서드 f()를 구현하지 않았다.추상 메서드를 구현하지 않으면 C1 클..
이어서 6번 문제부터 풀어보겠다. 연습문제 이론편 문제 풀기 두 번째 문제 6번밑줄에 맞는 답을 써서 코드를 완성해 보았다. TV 클래스의 생성자가 매개변수를 요구하기 때문에, ColorTV의 생성자에서 TV의 생성자를 명시적으로 호출해야 한다. 부모 클래스의 생성자를 호출할 때는 super 키워드를 사용한다. 코드 설명super(size)부모 클래스(TV)의 생성자를 호출하여 size 값을 초기한다.ColorTV 생성자가 호출될 때, 먼저 부모 클래스의 생성자가 실행된다.this.colors = colorsColorTV 클래스의 고유 멤버 변수 colors를 초기화한다. 하지만 이 코드에서는 경고가 발생한다. 선언만 하고 size와 colors를 사용하지 않았기 때문이다. 이 내용..
아침에 수학 공부를 2시간 정도 하고 이제 본격적으로 자바 공부를 하려고 한다. 3시간 정도 집중해서 공부를 할 생각이다. 연습 문제는 총 30문제나 되는데 이론편과 실습편으로 나누어져 있다.이론편은 조금 풀만 하고 실습편은 정말 어려워서 손도 못대는 경우가 많았다. 그래도 정답을 찾아가면서라도 풀어야 공부가 되는 걸 그동안의 경험으로 알게 되었다. 우선 이론 문제부터 풀어보려고 한다. 문제가 많으니 나누어서 한 포스트에 4~5개의 문제를 풀게될 것 같다. 새벽에 1번 문제를 풀려다가 너무 어려워서 시도만 했었다. 연습문제 이론편 문제 풀기 문제 1번처음에 이 문제를 이해하지 못해 한참을 헤맷는데 이제 알 것 같다. obj은 모든 자바 프로그램의 부모 클래스이다. 여기서 A라는 객체를 만들었으..
상속 단원을 마무리하며 도전 문제를 풀어보려고 한다. 문제가 정말 어려워서 지금 내 수준에서는 혼자서는 절대로 풀 수 없는 문제였다. 풀이를 참고하며 풀어볼 예정이다. 단원 마무리하기 Bear의 Fish 먹기 게임 만들기 문제 풀기 GameObject 클래스 Bear 클래스 fish 클래스 Game 클래스 이제 클래스별로 설명을 해보겠다. 코드 분석하기 1. Game 클래스이 클래스는 게임의 전체 로직을 관리한다.멤버 변수MAX_X, MAX_Y : 게임 맵의 크기를 나타낸다.map : 2D 배열로 게임의 상태를 저장. 기본 값은 '-'m : 게임 오브젝트를 담는 배열(Bear와 Fish)state : 게임 상태를 나타낸다.0 : 게임 진행 중1 ..
인터페이스에 관한 공부를 이어서 진행해 보겠다. 인터페이스의 목적자바에서 인터페이스를 두는 진정한 목적은 무엇일까? 그림 5-27과 앞의 모바일 전화기를 표현한 MobilePhoneInterface를 가지고 설명해 보자.MobilePhoneInterface 인터페이스는 모바일 전화기가 가지고 있어야 하는 기능(메서드)을 명시하며, 삼성은 MobilePhoneInterface 인터페이스를 구현하여 SamsungPhone 클래스를 만들고, LG는 LGPhone 클래스를 만든다.이 두 클래스는 모두 MobilePhoneInterface 인터페이스에 나열된 메서드와 동일한 이름의 메서드를 구현하겠지만, 삼성과 LG가 구현한 내용은 서로 다를 것이다. 인터페이스로 인한 다형성이 실현되는 것이다. 한편, 모바..