Successfully reported this slideshow.

Java in 2 hours

0

Share

1 of 49
1 of 49

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Java in 2 hours

  1. 1. 2시간 만에 자바를 쉽게 배우고 싶어요. OKdevTV.com/mib/java kenu.heo@gmail.com
  2. 2. 첫 시간 1. 구구단을 만들자 (변수, 반복문, 조건문) 2. 관등성명을 대라 (메소드와 클래스, 패키지) 3. 이용하자. 자바 라이브러리 (jar)
  3. 3. 프로그램이란 •컴퓨터에게 일 시키기 위한 명령 집합 •소스와 바이너리 •소스를 바이너리로 만드는 컴파일러
  4. 4. java? 뭘 자바? •coffee? •프로그램 언어 •1995년 제임스 고슬링
  5. 5. •James Gosling •Sun Microsystems •Java Creator
  6. 6. Java is NOT JavaScript
  7. 7. 구구단을 만들자 •2 x 1 = 2 •System.out.println("2 x 1 = 2");
  8. 8. 기본 틀 public class Gugudan { public static void main(String[] args) { System.out.println("2 * 1 = 2"); } }
  9. 9. keyword •클래스 (class) •메소드 (method) •명령문 (statement)
  10. 10. 기본 틀 public class Gugudan { public static void main(String[] args) { System.out.println("2 * 1 = 2"); } } 클래스 메소드 명령문
  11. 11. 컴파일 •java compiler •javac •JAVA_HOME/bin/javac.exe or javac •javac -d . simple.Gugudan.java •tool super easy
  12. 12. 실행 •java simple.Gugudan 2 * 1 = 2
  13. 13. 문자열 (String) public class Gugudan { public static void main(String[] args) { System.out.println("2 * 1 = 2"); } }
  14. 14. 문자열 더하기 public class Gugudan { public static void main(String[] args) { System.out.println("2" + " * 1 = 2"); } }
  15. 15. 문자열 더하기 public class Gugudan { public static void main(String[] args) { System.out.println( 2 + " * 1 = 2"); } }
  16. 16. 변수 public class Gugudan { public static void main(String[] args) { int i = 2; System.out.println( i + " * 1 = 2"); } }
  17. 17. 변수 public class Gugudan { public static void main(String[] args) { int i = 2; int j = 1; System.out.println( i + " * " + j + " = 2"); } }
  18. 18. 반복(loop) public class Gugudan { public static void main(String[] args) { int i = 2; for (int j = 1; j <= 9; j = j + 1) { System.out.println( i + " * " + j + " = 2"); } } }
  19. 19. 실행 •java simple.Gugudan 2 * 1 = 2 2 * 2 = 2 2 * 3 = 2 2 * 4 = 2 2 * 5 = 2 2 * 6 = 2 2 * 7 = 2 2 * 8 = 2 2 * 9 = 2
  20. 20. 연산 (operation) •더하기 •빼기 •곱하기 •나누기 •나머지
  21. 21. 연산 (operation) •더하기 + •빼기 - •곱하기 * •나누기 / •나머지 % (5 % 3 = 2)
  22. 22. 연산 public class Gugudan { public static void main(String[] args) { int i = 2; for (int j = 1; j <= 9; j = j + 1) { int k = i * j; System.out.println(i + " * " + j + " = " + k); } } }
  23. 23. 실행 •java simple.Gugudan 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18
  24. 24. 구구단 완성 public class Gugudan { public static void main(String[] args) { for (int i = 2; i <= 9; i = i + 1) { for (int j = 1; j <= 9; j = j + 1) { int k = i * j; System.out.println( i + " * " + j + " = " + k); } } } }
  25. 25. 실행 •java simple.Gugudan 2 * 1 = 2 2 * 2 = 4 ... 2 * 8 = 16 2 * 9 = 18 3 * 1 = 3 3 * 2 = 6 ... 9 * 8 = 72 9 * 9 = 81
  26. 26. 관등성명을 대라 package simple; public class Gugudan { public static void main(String[] args) { for (int i = 2; i <= 9; i = i + 1) { for (int j = 1; j <= 9; j = j + 1) { int k = i * j; System.out.println( i + " * " + j + " = " + k); } } } } 클래스 메소드 명령문 명령문 명령문 명령문 패키지
  27. 27. 패키지(package) •김 영수 •김 : package, family group •영수 : class •고 영수, 이 영수, 최 영수
  28. 28. 클래스 (class) •Type •도장 •Object •attributes •methods
  29. 29. 클래스 (class) •메모리 할당 필요 (static, new) •인스턴스: 메모리 할당 받은 객체
  30. 30. 메소드 (method) •do •f(x) •명령문 그룹 •입력과 반환
  31. 31. 메소드 (method) package simple; public class Gugudan { public static void main(String[] args) { for (int i = 2; i <= 9; i = i + 1) { printDan(i); } } ...
  32. 32. 메소드(method) ... public static void printDan(int i) { for (int j = 1; j <= 9; j = j + 1) { int k = i * j; System.out.println( i + " * " + j + " = " + k); } } } // class end
  33. 33. 메소드 Outline package simple; public class Gugudan { public static void main(String[] args) {...} public static void printDan(int i) {...} }
  34. 34. 메소드 signature •public static void main(String[] args) •public: 접근자 private, protected •static: 메모리 점유 (optional) •void: return type 없음 •main: 메소드 이름 •String[] args: 파라미터
  35. 35. Bonus public static void main(String[] args) { System.out.println("gugudan from:"); Scanner sc = new Scanner(System.in); int i = sc.nextInt(); for (; i <= 9; i = i + 1) { printDan(i); } }
  36. 36. 이용하자 자바 라이브러리 jar •클래스 모음 •jar: Java ARchive(기록 보관) •zip 알고리즘 •tar와 유사 (Tape ARchive)
  37. 37. jar 만들기 •jar cvf gugudan.jar * •jar xvf: 풀기 •jar tvf: 목록 보기 •META-INF/MANIFEST.MF •jar 파일의 버전 등의 정보 •실행 클래스 설정 •제외 옵션: cvfM
  38. 38. MANIFEST.MF • Manifest-Version: 1.0 • Class-Path: . • Main-Class: simple.Gugudan
  39. 39. jar 활용 •java -jar gugudan.jar •java -classpath .;c:libsgugudan.jar; okjsp.chap01.Gugudan
  40. 40. 두번째 시간 •아빠가 많이 도와줄께 (상속) •클래스 간의 약속 (인터페이스) •잘 안될 때, 버그 잡는 법 (예외 처리, 디버깅)
  41. 41. 아빠가 많이 도와줄께 (상속) •여러 클래스의 공통 부분 •java.lang.Object •equals(), toString(), hashCode()
  42. 42. Father, Son, Daughter • Father class • Son, Daughter classes • Son extends Father {} • Daughter extends Father {} • 아빠꺼 다 내꺼
  43. 43. 클래스 간의 약속 (인터페이스) •interface •구현은 나중에 •파라미터는 이렇게 넘겨 줄테니 •이렇게 반환해 주세요 •실행은 안 되어도 컴파일은 된다
  44. 44. 인터페이스 구현 implements •클래스 implements PromiseInterface •이것만 지켜주시면 됩니다 •이 메소드는 이렇게 꼭 구현해주세요
  45. 45. 인터페이스 장점 • interface가 같으니까 • 테스트 클래스로 쓱싹 바꿀 수 있어요 • 바꿔치기의 달인 • 전략 패턴, SpringFramework, JDBC Spec
  46. 46. 잘 안될 때, 버그잡는 법 (예외 처리, 디버깅) •변수가 •내 생각대로 움직이지 않을 때
  47. 47. 디버그 (debug) •de + bug •약을 뿌릴 수도 없고
  48. 48. 디버그 (debug) •중단점 (break point) •변수의 메모리값 확인 •한 줄 실행 •함수 안으로 •함수 밖으로 •계속 실행
  49. 49. 더 배워야 할 것들 • 배열 • 데이터 컬렉션 프레임워크 • 객체지향의 특성 • 자바 웹 (JSP/Servlet) • 데이터베이스 연결 • 자바 오픈소스 프레임워크 • ...

×