본문 바로가기

분류 전체보기

(68)
12.다형성 활용 및 다운 캐스팅 앞에서 배운 상속과 다형성을 활용하면 프로그램을 유지보수하는 데 매우 편리합니다. 이때 배열을 함께 사용하면 여러 하위 클래스 자료형을 상위 클래스 자료형으로 한꺼번에 관리할 수도 있습니다. 새로운 고객 등급이 생겼습니다. 이 등급의 고객은 VIP 고객 과 보너스 포인트 적립률이 다르고 담당 상담원도 없습니다. 재정의한 메소드가 가상 메소드방식에 의해 자동으로 호출되지 않는다면 if-else if문을 사용하여 각 자료형에 적합한 코드를 따로 구현해야 할 것입니다. 게다가 새로운 등급의 고객이 추가로 필요한 경우에는 또 다른 조건을 구현해야 하므로 코드의 유지보수가 어려워집니다. 이런경우에 상속과 다형성을 잘 활용하면 복잡한 코드를 간결하게 줄일 수 있고 확장성 있는 프로그램을 구현할 수 있습니다. 다운캐..
11.상속 객체 지향 프로그래밍의 중요한 특징 중 하나가 상속입니다. 상속은 우리가 일반적으로 알 듯 무엇인가를 무려받는다는 의미입니다. 객체 지향 프로그램은 유지보수하기 편하고 프로그램을 수정하거나 새로운 내용을 추가하는 것이 유연한데, 그 기반이 되는 기술이 바로 상속입니다. 새로운 고객 등급이 필요한 경우 VIP 고객을 추가 하게 될 경우 새로운 멤버 변수가 필요합니다. VIP 혜택 - 제품을 구매시 항상 10% 할인 혜택 - 보너스 포인트 적립율 5% - 담당 전문 상담원을 배정함 이 경우 기존의 Customer 클래스가 존재하므로 Customer 클래스에 VIP 고객에게 필요한 변수와 메소드까지 함께 포함하여 구현하면 됩니다. 그런데 이렇게 구현하게되면 Customer 클래스의 코드가 복잡해집니다. 게다가..
10.배열 배열을 사용하면 자료형이 같은 자료 여러 개를 한 번에 관리할 수 있습니다. 배열은 자료가 연속으로 나열된 자료 구조입니다. 자바에서 배열을 선언하면 그와 동시에 각 요소의 값이 초기화됩니다. 배열의 자료형에 따라 정수눈0, 실수는 0.0, 객체 배열은 null로 초기화되며, 다음처럼 배열 선언과 동시에 특정 값으로 초기화 할 수도 있습니다. 배열이 초기화 요소의 개수만큼 생성되므로 [] 안의 개수는 생략합니다.(넣으면 오류남) 객체 배열 객체 배열은 참조 자료형으로 선언 합니다. 동일한 기본 자료형(int등) 변수 여러 개를 배열로 사용할 수 있듯이 참조 자료형 변수도 여러 개를 배열로 사용할 수 있습니다. 객체 배열은 int나 char 등 기본 자료형 배열과 사용 방법이 조금 다릅니다. 얕은 복사 -..
9.Static 변수 static 변수란 정적 변수라고도 합니다. static 변수는 자바뿐만 아니라 다른 언어에서도 비슷한 개념으로 사용하고 있는 변수로서 자바에서는 다른 멤버 변수처럼 클래스 내부에 선언합니다. 변수를 선언할 때 다음과 같이 자료형 앞에 static 예약어를 사용합니다. static 변수는 클래스 내부에 선언하지만, 다른 멤버 변수처럼 인스턴스가 생성될 때마다 새로 생성되는 변수가 아닙니다. static 변수는 프로그램이 실행되어 메모리에 올라갔을 때 딱 한 번 메모리 공간이 할당됩니다. 그리고 그 값은 모든 인스턴스가 공유합니다. static 변수(serialNum)를 하나 선언합니다. 학생이 생성될 때 마다 이 변수 값이 증가합니다. 그런데 주의할 점은 static 변수를 그냥 바로 학번으로 사용하면 ..
8.클래스와 객체 This 예약어 클래스간 상호작용. 학생이 요금을 내고 대중교통을 타고. 해당 교통수단에서 요금이 증가하고 인원을 확인 할수 있는 객체를 생성 및 객체간 상호 작용을 확인해 보는 실습입니다.
7.생성자 생성자란 만들어진 클래스를 호출하는 메소드의 일종이다.(일종의 함수) 생성자를 생성하여 메인에서 생성자를 사용하여 객체를 생성 할 수 있다. 생성자는 디폴트 생성자와 일반 생성자로 나눌 수 있는데, 디폴트 생성자는 클래스에 내에 아무런 생성자도 없을 시 자동으로 생성되는 생성자이다. 디폴트 생성자는 객체를 생성 할 수 있지만, 아무런 값이 들어 있지않은채로 생성 된다.(어차피 초기화 해야된다는 말) 그러나 일반 생성자가 생성 되어있을 경우에는 디폴트 생성자는 자동으로 생성되지않는다. 그래서 디폴트 생성자를 사용하기 위해서는 위 그림과 같이 직접 기입해 넣어야 한다. 위 그림과 같이 Bus(100); int 인자 생성자를 활용하여 객체 bus100 을 생성 했다.(생성된 객체,인스턴스는 heap 메모리에 ..
6.객체지향프로그래밍 자바는 객체지향 프로그래밍이라고한다. 객체란 무엇인가? 국어 사전에서의 객체의 뜻은 '의사나 행위가 미치는 대상'이라고한다. 주위에 있는 사람, 자동차, 건물등 눈에 보이는 사물을 객체라 볼 수 있다. 눈에 안보이는 것도 객체가 될 수 있다고 한다. 그렇단다. 자바에서 객체란 다양한 변수의 포함과 간단한 동작을 하는 소스들의 묶음정도로 보면 될 것 같다. 그 객체를 생성 할 수 있게 해주는 것이 클래스이고, 객체(혹은 인스턴스 라고도함)는 클래스의 속성을 가지고 생성된 변수, 메소드(함수와 같은 기능)의 집합체 정도로 이해된다. 순서로 따지면 맴버변수,메소드를 정의해놓은 클래스가 존재하고, 그 클래스의 변수,메소드의 기능을 변수처럼 정의해 만들어지는 객체(인스턴스) 가 있다. 위와 같이 Man이라는 이름..
5.반복문 반복문이란 반복되는 일을 처리하기 위해 사용됩니다. 반복문은 영어로 loop라고 하며 반복문을 수행하는 것을 루프가 돈다 라고 표현하기도 한다고 합니다. 반복문에는 while 문 do~while문 for문 이렇게 세가지 종류가 있습니다. while 문을 무한히 반복시키는 방법은 while(true)를 사용하여 계속 루프 시킬수 있습니다. 중간에 break;를 사용하여 멈출수 있습니다. do~while문 do~while문의 경우는 무조건 한번은 실행을 시킨 후 조건을 검사하는 반복문 입니다. for문 for문은 반복문중에서 가장 많이 사용되는 반복문입니다. 변수의 초기화식, 조건식, 증감식 을 함께 작성하기 때문에 다른 반복문에 비해 조금 복잡한 구성을 가지고 있습니다.