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 start01 in 2hours

14,156 views

Published on

super easy start java in 2 hours
source code in http://www.okjsp.pe.kr/seq/183450

Java start01 in 2hours

  1. 1. 2시간만에 자바를쉽게 배우고 싶어요. okjsp 기본 세미나 kenu@okjsp.pe.kr
  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. 기본 틀클래스 class Gugudan {public 메소드 static void main(String[] args) { public 명령문 System.out.println("2 * 1 = 2"); }}
  11. 11. 컴파일• java compiler• javac• JAVA_HOME/bin/javac.exe or javac• javac -d . okjsp.chap01.Gugudan.java• tool super easy
  12. 12. 실행• java okjsp.chap01.Gugudan 2*1=2
  13. 13. 문자열 (String)public class Gugudan { public static void main(String[] args) { System.out.println("2 * 1 = 2"); }}
  14. 14. 문자열더하기publicclassGugudan{ publicstaticvoidmain(String[]args){ System.out.println(2+*1=2); }}
  15. 15. 문자열더하기publicclassGugudan{ publicstaticvoidmain(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 okjsp.chap01.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 okjsp.chap01.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 okjsp.chap01.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. 관등성명을 대라패키지 okjsp.chap01; package클래스 class Gugudan { public 메소드 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 okjsp.chap01;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. 메소드 Outlinepackage okjsp.chap01;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. 자기 클래스 반환 함수• 생성자 함수• 리턴 타입 표시 안 함• 왜? 자기 스스로를 반환하니까• public void Gugudan() {} (x)• public Gugudan() {} (O)
  36. 36. 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); }
  37. 37. 이용하자 자바 라이브러리 jar• 클래스 모음• jar: Java ARchive(기록 보관)• zip 알고리즘• tar와 유사 (Tape ARchive)
  38. 38. jar 만들기• jar cvf gugudan.jar * • jar xvf: 풀기 • jar tvf: 목록 보기• META-INF/MANIFEST.MF • jar 파일의 버전 등의 정보 • 실행 클래스 설정 • 제외 옵션: cvfM
  39. 39. MANIFEST.MF• Manifest-Version: 1.0• Class-Path: .• Main-Class: okjsp.chap01.Gugudan
  40. 40. jar 활용• java -jar gugudan.jar• java -classpath .;c:libsgugudan.jar; okjsp.chap01.Gugudan
  41. 41. 두번째 시간• 아빠가 많이 도와줄께 (상속)• 클래스 간의 약속 (인터페이스)• 잘 안될 때, 버그 잡는 법 (예외 처리, 디버깅)
  42. 42. 아빠가 많이 도와줄께 (상속)• 여러 클래스의 공통 부분• java.lang.Object• equals(), toString(), hashCode()
  43. 43. Father, Son, Daughter• Father class• Son, Daughter classes• Son extends Father {}• Daughter extends Father {}• 아빠꺼 다 내꺼
  44. 44. 클래스 간의 약속 (인터페이스)• interface• 구현은 나중에• 파라미터는 이렇게 넘겨줄테니• 이렇게 반환해주세요• 실행은 안 되어도 컴파일은 된다
  45. 45. 인터페이스 구현 implements• 클래스 implements PromiseInterface• 이것만 지켜주시면 됩니다• 이 메소드는 이렇게 꼭 구현해주세요
  46. 46. 인터페이스 장점• interface가 같으니까• 테스트 클래스로 쓱싹 바꿀 수 있어요• 바꿔치기의 달인• 전략 패턴, SpringFramework, JDBC Spec
  47. 47. 잘 안될 때, 버그잡는 법 (예외 처리, 디버깅)• 변수가• 내 생각대로 움직이지 않을 때
  48. 48. 디버그 (debug)• de + bug• 약을 뿌릴 수도 없고
  49. 49. 디버그 (debug)• 중단점 (break point)• 변수의 메모리값 확인• 한 줄 실행• 함수 안으로• 함수 밖으로• 계속 실행
  50. 50. 더 배워야 할 것들• 배열• 데이터 컬렉션 프레임워크• 객체지향의 특성• 자바 웹 (JSP/Servlet)• 데이터베이스 연결• 자바 오픈소스 프레임워크• ...

×