Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Java in 2 hours

137 views

Published on

start java programming language in 2 hours.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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) • 데이터베이스 연결 • 자바 오픈소스 프레임워크 • ...

×