
인터페이스 역할 인터페이스는 사전적인 의미로 두 장치를 연결하는 접속기를 말한다. 여기서 두 장치를 서로 다른 객체로 본다면, 인터페이스는 이 두 객체를 연결하는 역할을 한다. 두 객체는 메소드를 호출하여 상호작용을 한다. 그러면 메소드를 호출하면 간단할 텐데 왜 인터페이스를 중간에 거치도록 할까? 두 객체는 서로 어떤 객체인지 알 필요가 없고 각 객체는 인터페이스의 기능만 알면 된다. 인터페이스에게 전달만 해주면 인터페이스가 대신 메소드를 호출해주고 리턴값을 다시 넘겨준다. 객체가 변경 된 것에 관심이 없기 때문에 객체간의 교체가 쉽다. (부품 교체) 이 특징으로 인해 인터페이스는 다형성 구현에 주된 기술로 이용왼다. 상속을 이용해서 다형성을 구현할 수 있지만, 인터페이스를 이용해서 다형성을 구현하는 ..

상속 개념 상속은 부모가 자식에게 물려주는 행위를 말한다. 객체 지향 프로그램에서도 부모클래스의 필드와 메소드를 자식 클래스에게 물려줄 수 있다. 상속은 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 중복되는 코드를 줄여 개발 시간을 단축시킨다. public class A{ int field1; void method1(){ ... } } public class B extends A{ //A를 상속해서 B를 만들겠다. String field2; void method2(){...} } //A로부터 물려받은 필드와 메소드 B b = new B(); b.field1 = 10; b.method1(); //B가 추가한 필드와 메소드 b.field2 = "홍길동"; method2(); 클래스 상속..

객체 지향 프로그래밍 ? 현실 세계에서 어떤 제품을 만들 때 부품을 먼저 만들고, 이 부품들을 하나씩 조립해서 완성품을 만든다. 소프트웨어 개발할 때에도 부품에 해당하는 객체들을 먼저 만들고, 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객체지향프로그래밍 이라고 한다. 객체와 클래스 객체 객체란 물리적으로 존재하거나 개념적인 것 중 다른 것과 식별이 가능한 것을 말한다. 객체는 속성과 동작으로 구성된다. 예를들어 사람이라는 객체는 이름, 나이라는 속성이 있고, 웃다, 걷다 등과 같은 동작이 있다. 자바는 이러한 속성과 동작은 각각 필드, 메소드 라고 부른다. 객체 모델링 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링이라고 한다. 객체 모델링은 현실 세계 객체의 대표 속성..

열거타입 데이터 중에는 몇가지고 한정되어 있는 값이 있다. 예를들어 월,화,수,목,금,토,일 이라는 7개의 값이나, 봄, 여름 ,가을, 겨울 이라는 4개의 값이 있다. 이러한 한정된 값을 갖는 타입을 열거 타입이라고 한다. public enum Week { MONDAY, TUSEDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } 열거 상수는 열거타입으로 사용할 수 있는 한정된 값을 말한다. 열거타입도 하나의 데이터 타입이므로 변수를 선언하고 사용해야한다. Week today; Week reservationDay; //열거타입은 참조타입이므로 null 대입 가능 Week birthday = null; //비교 코드 Week today = Week.SUNDAY; t..

배열이란? 변수는 하나의 값만 저장할 수 있다. 따라서 저장해야 할 값의 수가 많아지면 그 만큼 많은 변수가 필요하다. 따라서 많은 양의 값을 다루는 좀 더 효율적인 방법이 필요하다. 이것이 배열이다. 배열의 특징 1. 배열은 같은 타입의 값만 관리한다. 2. 배열의 길이는 늘리거나 줄일 수 없다. 배열의 변수 선언 배열을 사용하기 위해 우선 변수를 선언해야한다. //타입[] 변수; int[] intArray; double[] doubleArray; String[] strArray; 타입[] 변수 = null; 타입은 벼열에 저장될 값의 타입을 말한다. 배열 변수는 참조변수이다. 따라서 배열도 객체이므로 힙영역에 생성되고, 배열 변수는 힙 영역의 배열 주소를 저장한다. 참조할 배열이 없다면 배열 변수도 ..

자바의 데이터 타입은 기본타입과 참조타입 두 종류로 나뉜다. 기본타입은 다시 정수타입(byte, char, short, int, logn) 실수타입(float, double) 논리타입(boolean) 으로 나뉜다. 참조타입에는 배열, 열거타입, 클래스, 인터페이스가 있다. 참조 타입 참조타입이란 객체의 번지(메모리의 위치)를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입이 있다. 객체란? 데이터와 메소드(실행 블록을 가지고 있으면서 호출에 의해서 실행이 되는 프로그래밍 요소)로 구성된 덩어리라고 생각하면 된다. 기본 타입과 참조 타입의 차이점 기본타입으로 선언된 변수와 참조 타입으로 선언된 변수의 차이점은 저장되는 값이다. 변수란 ? 하나의 값을 저장하는 메모리 번지를 참조하는 이름 변수의 직..
우리가 기본적으로 알 고 있는 switch문은 이러하다. java 12 이전 String time; switch (weekday) { case MONDAY: case FRIDAY: time = "10:00-18:00"; break; case TUESDAY: case THURSDAY: time = "10:00-14:00"; break; default: time = "휴일"; } java 12 이후부터는 switch문에서 Expresstion(표현식)을 사용할 수 있다. 위와 같은 switch문을 다음과 같이 변경할 수 있게 되었다. brack문을 없애고, 화살표와 중괄호를 사용하여 가독성이 좋아졌다. 중괄호 안에 실행문이 하나만 있을 경우에는 중괄호를 생략할 수 있다. java 12 이후 String ti..
비교 연산자 피연산자의 타입이 다를 경우에는 비교 연산을 수행하기 전에 타입을 일치시킨다. 'A' == 65; // true ,1번 3 == 3.0; // true, 2번 0.1f == 0.1; // false, 3번 0.1f == (float)0.1; // true, 4번 1. 'A' (하나의 문자는 정수타입) 는 int 타입으로 변환되면서 65가 된 다음 65==65 이므로 true가 된다. 2. 3은 dobule 타입인 3.0으로 변환하여 3.0==3.0 이므로 true가 된다. 3. 0.1f, 부동소수점 방식을 사용하는 실수타입은 0.1을 정확하게 표현할 수 없을 뿐 아니라 float 타입과 double 타입의 정밀도 차이로 false가 나온다. 따라서 이를 해결하기 위해 4번과 같은 방법으로 강..