자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : http://www.GodOfJava.com 자바의 신 페이스북: http://www.facebook.com/GodOfJavaBook 자바의 신 문제 풀이 : https://sites.google.com/site/godofjavabook 자바의 신 카페 : http://cafe.naver.com/godofjava Ver. 2014.09. 본 문서의 저작권은 “자바의 신” 저자에게 있습니다. 본 문서는 나눔 고딕과 Consolas 체에 최적화 되어 있습니다.
목차 1장 프로그래밍이란 무엇인가? 2장 Hello Basic Java 3장 자바를 제대로 알려면 객체가 무엇인지를 알아야 해요
1부 1장 프로그래밍이란 무엇인가?
Programming의 P 디지털 도어락에서 비밀번호를 확인하는 절차를 생각 1 장 Programming의 P 디지털 도어락에서 비밀번호를 확인하는 절차를 생각 미리 만들어 놓은 어떤 프로그램에 비밀번호를 전달하여 결과를 기다림 비밀 번호가 맞는지 확인하는 것을 직접 작성
Programming의 P 사람과 컴퓨터 사이 언어 == 프로그래밍 언어(Programming Language) 1 장 Programming의 P 사람과 컴퓨터 사이 언어 == 프로그래밍 언어(Programming Language) 프로그래밍 언어 종류 C Java Python 등 매우 많음
Programming의 P 웹 페이지는 HTML, JavaScript 등이 복합적으로 구성 1 장 Programming의 P 웹 페이지는 HTML, JavaScript 등이 복합적으로 구성 웹 페이지에서 어떤 정보를 얻는 절차 클릭 서버에 데이터를 요청 서버에서 필요한 데이터 가공 사용자에게 전달 서버의 “프로그램”에 해당하는 부분에서 데이터를 가공하여 화면에 제공
자바 프로그램의 메소드는 이렇게 구성되어 있어요 1 장 자바 프로그램의 메소드는 이렇게 구성되어 있어요 public boolean checkPassword(String password) { //중간 내용 } 그림으로 나타내면 …
자바 프로그램의 메소드는 이렇게 구성되어 있어요 1 장 자바 프로그램의 메소드는 이렇게 구성되어 있어요 public boolean checkPassword(String password) { //중간 내용 } 그림으로 나타내면 …
자바 프로그램의 메소드는 이렇게 구성되어 있어요 1 장 자바 프로그램의 메소드는 이렇게 구성되어 있어요 메소드method : 어떤 값을 주고 결과를 넘겨주는 것 메소드 이름 : checkPassword() “checkPassword 메소드”라고 읽음 매개 변수parameter : password 매개 변수가 없는 메소드도 있고 여러개가 있는 메소드도 있다. 리턴 타입return type : boolean
자바의 가장 작은 단위는 클래스랍니다 public class DoorLockManager { //중간 생략 } 1 장 자바의 가장 작은 단위는 클래스랍니다 public class DoorLockManager { //중간 생략 } 자바 프로그램의 메소드는 무소속으로 존재 불가 클래스 이름class name : DoorLockManager라고 적혀있는 것 클래스 이름 앞에는 반드시 class라는 단어가 있어야 함
자바의 가장 작은 단위는 클래스랍니다 public class DoorLockManager { 1 장 자바의 가장 작은 단위는 클래스랍니다 클래스 안에 메소드를 위치. public class DoorLockManager { public boolean checkPassword(String password) { }
자바의 가장 작은 단위는 클래스랍니다 public class DoorLockManager { 1 장 자바의 가장 작은 단위는 클래스랍니다 아래와 같이 하나의 클래스 안에는 여러 개의 메소드 존재 가능 setPassword() : 패스워드 수정 기능 제공 resetPassword() : 패스워드 초기화 기능 제공 public class DoorLockManager { public boolean checkPassword(String password) { //중간 생략 } public void setPassword(String password) { public void resetPassword() {
자바의 가장 작은 단위는 클래스랍니다 public void setPassword(String password) { 1 장 자바의 가장 작은 단위는 클래스랍니다 리턴 타입이 void 인 메소드는 리턴을 하지 않음 public void setPassword(String password) { //중간 생략 }
1 장 클래스는 상태를 갖고 있어야 합니다 자바 == 객체지향 프로그래밍 언어 (Object Oriented Programming Language) 객체지향 언어는 현실 세계를 프로그램으로 표현 클래스 현실에 있는 사물 (예:도어락) 추상적인 것 (예:쇼핑몰의 장바구니) 클래스의 조건 행동 == 메소드 상태 == 변수 클래스 안, 메소드 밖에 선언
클래스는 상태를 갖고 있어야 합니다 public class DoorLockManager { 1 장 클래스는 상태를 갖고 있어야 합니다 public class DoorLockManager { String currentPassword; public boolean checkPassword(String password) { //중간 생략 } //이하 메소드 생략 currentPassword 가 변수 (variable)
프로그램의 가장 기본은 =를 이해하는 것 int a; a=1+2; 변수 선언은 타입 변수명; 순 1 장 프로그램의 가장 기본은 =를 이해하는 것 int a; a=1+2; 변수 선언은 타입 변수명; 순 위의 예에서는 a에 1+2의 값을 더한 결과가 저장
1 장 프로그램의 가장 기본은 =를 이해하는 것 이 내용을 코드로 나타내면 ?
프로그램의 가장 기본은 =를 이해하는 것 public class Calculator { 1 장 프로그램의 가장 기본은 =를 이해하는 것 public class Calculator { public int add(int num1, int num2) { int sum; sum=num1 + num2; return sum; } num1에는 5, num2에는 2가 넘어온다면 sum에는 어떤 값이 할당되고, 어떤 값이 리턴될까?
1 장 프로그램의 가장 기본은 =를 이해하는 것 public int addAll(int num1, int num2, int num3) { int sum; return sum; } 안에 들어갈 코드는 ?
1 장 프로그램의 가장 기본은 =를 이해하는 것 public int addAll(int num1, int num2, int num3) { int sum; sum=num1 + num2 + num3 ; return sum; }
1 장
한 줄을 의미하는 세미콜론 public int add(int num1, int num2) { int sum; 1 장 한 줄을 의미하는 세미콜론 public int add(int num1, int num2) { int sum; sum=num1 + num2; return sum; } 두번째에서 네번째줄에 항상 나오는 기호는 ?
한 줄을 의미하는 세미콜론 public int add(int num1, int num2) { int sum; sum= 1 장 한 줄을 의미하는 세미콜론 public int add(int num1, int num2) { int sum; sum= num1 + num2; return sum; } 자바에서는 컴파일러라는 것이 세미콜론이 나올 때까지는 한 줄이라고 생각 자바에서는 인덴트indent를 별로 신경 쓰지 않는다. 인덴트 : 코드 앞의 공백 보통 탭키를 눌러서 이러한 공백을 만든다(탭키는 키보드에 Q키 왼쪽에 있다)
1 장 한 줄을 의미하는 세미콜론 중괄호가 한 번 시작하면 탭을 한 번씩 더 입력해 주는 것이 보통
모든 프로그래밍 언어에는 예약어라는 것이 있어요 1 장 모든 프로그래밍 언어에는 예약어라는 것이 있어요 public class Calculator { public int add(int num1, int num2) { int sum; sum=num1 + num2; return sum; } 예약어(reserved word) : 예약되어 있으니까 다른 용도로 쓰지 못하는 단어 예약어는 클래스, 메소드, 변수의 이름으로 사용 불가