- 수백줄 규모의 객체지향 자바 프로그래밍을 할 수 있다.
- 주 1: 3-05화 3-07목 1 Hello Java
- 주 2: 3-12화 3-14목 2 Class, Objects 시작
- 주 3: 3-19화 3-21목 3 Variables, Operators
- 주 4: 3-26화 3-28목 4 Methods
- 주 5: 4-02화 4-04목 5 Package
- 주 6: 4-09화 4-11목
- 주 7: 4-16화 4-18목 6 Control Structure
- 주 8: 4-23화 4-25목 midterm
- 주 9: 4-30화 5-02목
- 주10: 5-07화 5-09목 7 Data Structure (Class revisted)
- 주11: 5-14화 5-16목
- 주12: 5-21화 5-23목 8 inheritance polymorphism (5-22 석가탄신일)
- 주13: 5-28화 5-30목 9 gui streams
- 주14: 6-04화 6-06목 10 io exception (6-6 현충일)
- 주15: 6-18화 6-20목 final
- 추가 Collection Generics Thread NW
- 클래스 5개 이상. LOC 300줄 이상.
- 상속, 다형성 사용.
- 파일 사용
- GUI 사용
- 7주 게임 Tetris
- 14주 GUI
-
Hello Java 1.1 학습내용 1.1.1 강의 목표 1.1.2 목표 1.1.3 문제 1.2 java 소개 1.3 프로그래밍이란 1.4 쉽게 배우는 자바 1.5 환경설정
-
Class and Objects 2.1 학습내용 2.1.1 목표 2.1.2 문제 2.2 글쎄 클래스가 뭐지? 문제 2-1: Hello 인사하는 프로그램 2.3 Object 문제 2-2: 지하철 클래스를 만들고, 몇 호선인지 정해서 운행하기 2.4 constructor 문제 2-3: 커피 원산지를 넣어서, 객체를 생성할 때 원산지를 가지고 있도록 구현한다. 2.5 visibility 문제 2-4: 몸무게를 자신 이외에는 알 수 없도록 구현한다.
-
Variables 3.1 primitive 3.2 reference
[미니 프로젝트 문제: 계산기 - 값을 받어서 연산/계산]
-
methods 4.1 함수의 signature 4.2 forward reference 문제 2-5: 사각형 클래스를 만들고, 면적을 계산하기 문제 2-6: 문장을 생성하기 phrase-o-matic 미니 프로젝트 문제: dice game
-
Package 3.1 학습내용 3.1.1 목표 1.1.2 문제 3.2 패키지란? 3.3 classpath 3.4 명령창 사용하기 3.4.1 java파일 만들기 3.4.2 컴파일하기 3.4.3 실행하기 3.4.4 디버깅하기 3.4.5 jar 파일의 생성 3.5 자신의 패키지 만들기 문제 package-1: ‘HelloWorld’ class를 com.j1.hello package로 만들어 보기. 문제 package-2: ‘HelloWorld’ class를 jar로 만들고, 실행하기 3.6 자바에서 제공하는 패키지 사용하기 Date and SimpleDateFormat time math random 문제 package-3: 자바 라이브러리 Calendar를 사용해서 일자 출력하기 3.7 main함수 3.8 다른 패키지 사용해보기 문제 package-4: turtle을 사용해서 4각형 이동하기 3.9 빌드 도구를 사용해 보기
-
제어흐름 5.1 학습내용 5.1.1 목표 5.1.2 문제 5.1.3 과제 5.2 제어 흐름 5.2.1 조건 4.3.2 반복 4.3.3 다이어그램 제어-1: 도형 그리기 제어-2: 삼각형, 사각형을 조건에 맞추어 그리기 switch문 제어-3 바람개비 도형 그리기 제어-4: 온도를 입력받아서 F-C 변환 변수의 이해 화면출력 형식의 이해 ‘==’, equals(), compareTo() 함수로 변환 고려할 점 제어-5: 성적을 입력받아 A
F 학점 처리 ‘성적’의 데이터 형 점수의 비교 함수로 변환 제어-6: 가위바위보 한글을 비교하기 제어-7: 삼각형 그리기 변수의 사용 함수로 만들 경우 제어-8: 구구단의 출력 제어-9: BMI 함수로 만들 경우 제어-9: 1100 더하기 제어-10: 3, 5배수의 합계 제어-11: 윤년인지 맞추기 제어-12: 20세기 100년 동안 매 월 1일이 일요일이 몇 일인지 구하기 Calendar를 이용하기 Calendar 사용하지 않고 하기 제어-13: 업다운 게임 제어-14 캘린더 만들기 -
데이터구조 6.1 학습내용 6.1.1 목표 6.1.2 문제 6.1.3 연습문제 6.2 데이터구조란? 6.2.1 왜 필요할까? 6.2.2 데이터 구조를 사용하기 6.3 많이 사용하는 데이터구조 6.3.1 Arrays 6.3.2 ArrayList 6.3.3 Queue 6.3.4 Set 6.3.5 Map 6.4 Generic type 6.5 복사의 문제 데이터구조-1 1-1. 배열 생성하기 1-2. 배열에 있는 수의 합계를 구하기 함수로 데이터구조-2: 거북이 트랙을 저장하기 프로그래밍 순서 데이터구조-3: 도형을 데이터구조로 저장하고 그리기 3-1 도형을 데이터구조로 저장하기 3-1 저장한 데이터구조를 사용해서 사각형을 그린다. 데이터구조-4: 거북이가 걸어간 트랙을 다시 걷게 하기 4-1 거북이가 걸어간 트랙을 저장하기 4-2 트랙을 자동으로 걷게 하기 데이터구조-5: 문자열에서 문자를 세기 Map 문자열의 문자 갯수 세기 데이터구조-6: 문자열 ‘hello’ 뒤집기 데이터구조-7: 문자열에 포함된 문자와 숫자의 개수 세기 isDigit의 구현원리 대소문자 판별 데이터구조-8: 우리 집에 없지만 친구집에 있는 가전제품 찾기. 데이터구조-9: 서울 경복궁 입구에서 제일 가까운 지하철 역 찾기 데이터구조-10: 서울에 거주하는 남녀의 구별 합계와 평균구하기 데이터구조-11: 커피에 Milk를 추가하는 비율 구하기 데이터 첫 행은 명칭을 가지고 있으므로 제거한다. 2차원 데이터 slicing 데이터구조-12: 성적데이터의 평균/합계를 구하기. 데이터구조-13: The Beatles ‘Let it be’ 가사에 자주 등장하는 단어는? 데이터구조-14: ‘학생’ 객체를 정렬하기 과제
[미니 프로젝트: 테스리스]
-
Classes 5.1 학습내용 5.1.1 목표 5.1.2 문제 5.2 클래스 찾기 클래스가 나누어 지면 관계가 발생하는 경우 문제: 가전매장에서 PC를 판매한다. 문제: 버스 도착 알람 문제: 이번 학기에 개설된 객체지향 교과목을 수강신청한다. 최대인원은 30명이다. 5.3 좋은 클래스란? 문제: 병원약속 - 약속에서의 약속장소 분리 문제: 커피 다시 생각하기 - HouseBlend. 커피를 브랜드별로 내리고, 커피를 어떤 바리스타가 내리는지 관리를 한다. 문제: 커피 주문 5.3 다시 생각하는 class 클래스는 무엇이나 될 수 있지만, 무엇이나 될 수 없다. hash code 복사의 문제 문제 Dog class를 deep clone한다.
-
inheritance 7.1 학습내용 7.1.1 목표 7.1.2 문제 7.1.3 연습 7.1 상속 7.1.1 상속이란? 7.1.2 단순한 상속의 구현 7.1.2 UML로 나타내기 7.1.3 상속 구현 7.2 Constructor 7.3 Fields 7.3.1 protected 상속 문제 oo-1: 도형을 선택하여 그룹을 만들 수 있다. 선택된 도형을 알아내기. 7.3.2 private의 상속 문제 oo-2: 상속을 사용하여 거북이를 구현한다. 문제 oo-3: 원의 면적을 계산하기. 7.4 Interface 상속 7.4.1 interface란 7.4.2 abstract class와 비교 7.5 abstract class 문제 oo-4: 클래스 상속을 사용하여 도형의 면적을 구하기 7.6 Polymorphism: 문제 oo-5: 객체를 배열로 저장해서, sayHello 하기 7.7 equals 문제 oo-6: 도형을 다형적으로 면적 계산하기 instanceof를 사용하는 경우와 다형성을 사용하는 경우 비교 다형성 문제 oo-7: equals를 구현한다. 문제 oo-8: 강의시간표를 구현한다.
-
GUI 8.1 학습내용 8.1.1 목표 8.1.2 문제 8.2 GUI 소개 8.2.1 GUI란? 8.2.2 GUI의 필수적 기능 8.3 Java의 GUI 8.4 화면의 구성 8.4.1 Swing containers의 종류 8.4.2 GUI를 만드는 일반적인 절차 문제 gui-1: Simple Window jshell session 매우 단순한 윈도우 조금 진화한 윈도우 문제 gui-2: 원 면적을 계산하는 화면을 만든다. 8.5 Event Handling 8.5.1 마우스 8.5.2 키보드 문제 gui-3: Event and Listener 문제 gui-4: 원 면적을 계산버튼을 누르면 면적을 계산한다. 8.6 그리기 8.6.1 paint 8.6.2 Graphics 문제 gui-5: 사각형을 그린다. 8.6.3 opaque 문제 gui-6: 버튼을 누르면 사각형을 그린다. 8.6.2 Simple Moving 문제 gui-7: 사각형을 선택하고 이동한다.
[미니 프로젝트: 테트리스] [미니 프로젝트: jhotdraw]
-
입출력 9.1 학습내용 9.1.1 목표 9.1.2 문제 9.2 java.io 9.3 I/O Stream 9.3.1 System.out 9.3.2 System.in 문제 io-1: 사용자가 원의 반지름을 입력하고, 면적을 출력하기 문제 io-2: 파일에서 내용을 읽어 화면에 출력하기 9.4 파일 9.4.1 파일 읽기 문제 io-3: 파일에서 읽어서 소문자로 출력하기 9.4.2 파일 쓰기 문제 io-4: 파일에 쓰기
-
예외 10.1 학습내용 10.1.1 목표 10.1.2 문제 10.2 프로그램 오류와 예외 10.2.1 오류 10.2.2 처리하는 구문이 필요없는 예외 10.2.2 처리하는 구문이 필요한 예외 10.3 예외의 구분 10.4 예외의 처리 문제 x-1: 파일을 읽어서 출력하는 경우, 존재하지 않아 발생하는 예외 처리 10.5 예외 만들어 보기 문제 x-2: 커피를 내리려고 한다. 커피가 없는 경우 예외로 처리하기.