WAP Java Seminar 2017-10-02
자바란 무엇인가?
Java 란? 누가 만들었나? 창시자 제임스 고슬링
Java 란? 어떤 언어인가? 번역기(컴파일러) 통역기(인터프리터) 중간언어(바이트코드언어)
자바를 설치하자
Java설치 오라클 들어가서 JDK를 설치
Java설치 JAVA_HOME 환경변수 설정
Java설치 Path 환경변수에 추가
IDE를 고르자
Java IDE IDE의 종류
Java IDE Eclipse 설치
프로젝트를 만들자
Java Project 자바 프로젝트 생성
Java Project 자바 프로젝트 생성
Java Project 자바 프로젝트 생성
Java Project 자바 프로젝트 생성
Java Project 자바 클래스 생성
Java Project 자바 클래스 생성
Java Project 자바 클래스 생성
프로젝트를 실행 하자
Run Java Project 프로젝트 실행 ▶버튼을 누르거나 ctrl+f11
Run Java Project 프로젝트 실행
자바의 세계로
자바의 세계로 자바 콘솔 프로그래밍
자바의 세계로 자바 콘솔 프로그래밍 : 출력 System.out.println(“문장”) : 문장을 출력하고 한칸 띄움 System.out.format(“문장”) : 문장을 특정 포매팅 형식으로 출력 , C언어의 printf와 동일한 사용법 System.out.printf(“문장”) : format과 완전 동일한 메소드 Tip - System.out.println은 자주쓰지만 너무길다. 따라서 IDE에서는 예약어로 저장되어 있는 경우가 많다. ecilse : sysout을 타이핑 한 후 ctrl+enter intellij : sout을 타이핑 한 후 enter netbeans : sout을 타이핑 한 후 tab
자바의 세계로 자바 콘솔 프로그래밍 : 입력 Scanner라는 타이핑 복제기를 만든다. int,short,long,float,double,byte는 nextX꼴의 함수로 받는다. char는 next().charAt(0)로 받는다. String은 next나 nextLine으로 받는다. next : 한 단어를 받음 nextLine : 한 문장을 받음 문자열
C에서 Java로 변경점
VS C vs Java 문자열 정의 In C In Java char a[] = "Hello"; or String a=”Hello”;
sprintf(result,"%s%s",a,b); C vs Java 문자열 사용법 In C In Java 문자열 복사(a->b) strcpy(b, a); 문자열 복사(a->b) b=a; VS 문자열 붙히기(a=a+b) strcat(a,b); 문자열 붙히기(a=a+b) a=a+b; 문자열 붙히기(reust=a+b) sprintf(result,"%s%s",a,b); 문자열 붙히기(result=a+b) result=a+b; 널문자 문자열의 끝을 알리기 위해 널문자 존재(’\0’) 널문자 그런거 없음
VS C vs Java 문자형 변화 In C In Java 1바이트 짜리 char와 2바이트 짜리 wchar_t가 공존
VS C vs Java 논리값형 변경 In C In Java bool b = true; (stdbool.h 헤더 추가 필요) boolean b = true; (헤더 필요 없음)
함수의 중복선언(Overloarding) C vs Java 논리값형 변경 함수의 중복선언(Overloarding) In C In Java int sum(int a, int b){ return a+b; } float sum(float a, float b){ ※위 와같이 함수 이름이 같은 경우는 절대 있을 수 없다. 무조건 달라야한다. int sum(int a,int b){ return a+b; } float sum(float a,float b){ ※몇 가지 조건 내에서 함수 중복선언 가능 1.파라메터의 갯수 2.파라메터의 타입 VS
객체(Object)
객체 객체란? 뚜렷하게 뭐라고 해야 할지 모르겠다. 그냥 변수와 함수를 논리적인 단위로 비슷하다고 생각한 애들끼리 묶어 놓은 것을 객체라고 함. 가장 단순하게 설명하면 물건이라고 생각해도 되는데 논리적인 단위도 포함하는 거라서 물건이라기는 또 애매하다.
객체 객체란? ex)컴퓨터 속성(Field) 본체 : 조립식 컴퓨터 키보드 : 사은품 1만원 키보드 마우스 : G1 모니터 : 13인치 모니터 기능(Method) 영화 감상 : 모니터로 고화질 영상을 보여줌 게임 : 마우스와 키보드로 게임을 즐김 음악 감상 : 스피커로 음악을 들을 수 있음
객체 용어정리 객체 : Field(변수)와 Method(함수)로 이루어진 논리 적인 단위 클래스 : 객체를 컴퓨터 상에서 구현하기 위한 방법, 아직 실체를 가지지 않은 상태 인스턴스 : 클래스를 실체화 시킨 것. 실체화 시키기 위해서 new 연산자를 사용
객체 객체 만들기
객체 객체 만들기
객체 객체 만들기 ex) Computer 기본적으로 초기화 하지 않는 다면 객체형(대문자로 시작하는 타입)은 null로 초기화되고 기본형(붉은글씨)은 0으로 초기화된다. public class Computer { String cpu; int memory; String graphic; String status() { return "cpu: " + cpu + ", memory: " + memory + ", graphic: " + graphic; } void plusMemory(int mem) { memory += mem;
객체 객체 만들기 ex) Computer public class Main { public static void main(String[] args) { Computer com = new Computer(); com.cpu = "i5"; com.memory = 4; com.graphic = "GTX750 Ti"; System.out.println(com.status()); com.plusMemory(4); }
객체 생성자와 this 클래스 이름과 같은 함수 => 생성자 public class Computer { String cpu; int memory; String graphic; Computer(){ cpu = "m3"; memory = 1; graphic = "GTX550"; } Computer(String c, int m, String g) { cpu = c; memory = m; graphic = g; String status() { return "cpu: " + cpu + ", memory: " + memory + ", graphic: " + graphic; void plusMemory(int mem) { memory += mem; 클래스 이름과 같은 함수 => 생성자
객체 … 생성자와 this this()는 자기 자신의 생성자를, this는 자기 자신을 카르킨다. public class Computer { String cpu; int memory; String graphic; Computer(){ cpu = "m3"; memory = 1; graphic = "GTX550"; } Computer(String cpu, int memory) { this(); this.cpu = cpu; this.memory = memory; Computer(String cpu, int memory, String graphic) { this.graphic = graphic; … this()는 자기 자신의 생성자를, this는 자기 자신을 카르킨다.
객체 객체 만들기 ex) Computer public class Main { public static void main(String[] args) { Computer com1 = new Computer(); Computer com2 = new Computer("i7",8); Computer com3 = new Computer("i5",4,"GTX750 Ti"); System.out.println(com1.status()); System.out.println(com2.status()); System.out.println(com3.status()); }
객체 Question
배열(Array)
배열 객체 만들기 ex) Computer public class Main { public static void main(String[] args) { int[] num1 = new int[5]; for (int i = 0; i < 5; i++) { num1[i] = i * i; } int[] num2 = { 1, 2, 3, 4, 5 }; float[] f = new float[] { 1.1f, 2.2f, 3.3f, 4.4f, 5.5f }; System.out.println("**********"); System.out.println("num1[" + i + "] = " + num1[i]); System.out.println("num2[" + i + "] = " + num2[i]); System.out.println("f[" + i + "] = " + f[i]);