본문 바로가기

전체 글

(23)
자바 기초부터 차근차근...(15) ※ Chapter15 클래스의 상속2: 오버라이딩 ※ 본문은 윤성우의 열혈JAVA를 정리한 글입니다. ※ 문제가 될시 비공개 처리하겠습니다. 요즘 매일같이 하려고 노력하지만 안되는 부분이 있다. '꾸준함'이다. 이게 제일 무서운 것 같다. 하지 않으면 도태되고 한다면 당연한 것이 되는 '꾸준함' 이라는 것이... 앞으로 좀 더 열심히 꾸준하게 공부해보자! 상속을 위한 두 클래스의 관계 ■ 상속의 기본 조건인 'IS-A' 관계 상속이 갖는 문법적 특성을 통해서 상위 클래스와 하위 클래스를 다음과 같이 이야기할 수 있다. "하위 클래스는 상위 클래스의 모든 특성을 지닌다." "거기에 더하여 하위 클래스는 자신만의 추가적인 특성을 더하게 된다." (여기서 보통 재활용이라는 말이 나오는 것인데, 재활용이라고 하..
자바 기초부터 차근차근...(14) ※ Chapter14 클래스의 상속1: 상속의 기본 ※ 본문은 윤성우의 열혈JAVA를 정리한 글입니다. ※ 문제가 될시 비공개 처리하겠습니다. ■ 상속에 대한 매우 치명적인 오해 "상속은 코드의 재활용을 위한 문법입니다." 그러나 객체지향 기반의 개발 경험이 풍부한 개발자는 다음의 내용으로 답을 한다. "연관된 일련의 클래스들에 대해 공통적인 규약을 정의할 수 있습니다." 지금은 이 내용이 이해가 가지 않을 수 있으나 공부하다보면 이해가 간다고 하니 알아두자. 책에서 강조하고자 하는 말은 다음과 같다. "상속은 코드의 재활용을 목적으로 사용하는 문법이 아니다." ■ 상속의 가장 기본적인 특성 상속을 단순하게 설명하자면, 기존의 정의된 클래스에 메소드와 변수를 추가하여 새로운 클래스를 정의하는 것이 상속이..
자바 기초부터 차근차근...(13) ※ Chapter13 배열 ※ 본문은 윤성우의 열혈JAVA를 정리한 글입니다. ※ 문제가 될시 비공개 처리하겠습니다. § 1차원 배열의 이해와 활용 ■ 1차원 배열의 생성 방법 1차원 배열은 다음과 같이 정의할 수 있다. "타입이 같은 둘 이상의 데이터를 저장할 수 있는 1차원 구조의 메모리 공간" '자바에서는 배열도 인스턴스'이다. int[] ref = new int[5]; //길이가 5인 int형 1차원 배열의 생성문 int[] ref -> int형 1차원 배열 인스턴스를 참조할 수 있는 '참조변수 선언' new int[5] -> int형 값 5개를 저장할 수 있는 '배열 인스턴스 생성' int[] ref; ref = new int[5]; // 이런식으로도 선언 가능 예제를 통해서 '배열이 인스턴스'..
자바 기초부터 차근차근...(12) ※ chapter 12. 콘솔 입력과 출력 ※ 본 문서는 윤성우의 열혈 JAVA를 정리한 글입니다. ※ 문제가 될시 바로 비공개 처리하겠습니다. § 콘솔 출력 콘솔은 컴퓨터를 대상으로 데이터를 입력 및 출력하는 장치를 총칭하는 말이다. 모니터와 컴퓨터도 콘솔 입출력 장치에 해당된다. ■ System.out.println & print 자바의 대표적인 콘솔 출력 메소드는 System.out.println()이다. System.out.print는 개행만 이루어지지 않는 것이지 같은 메소드이다. 이제 이 두 메소드의 특징을 알아보자. 위의 예제에서 정의한 Box 클래스, StringBuilder 클래스에는 다음의 공통점이 있다. "문자열을 반환하는 public String to String() 메소드가 정의되..
자바 기초부터 차근차근...(11) ※ Chapter11 메소드 오버로딩과 String 클래스 ※ 본문은 윤성우의 열혈JAVA를 정리한 글입니다. ※ 문제가 될시 비공개 처리하겠습니다. 원래 10단원까지 한 후 면접준비겸 복습한번 하고 넘어가려고 했다. 그러나, 코딩 테스트 문제들을 보니 13단원까진 한번 보고 복습해야 문제를 풀 수 있었다. (특히 SW expert Academy 문제) 그래서 다시 정리를 시작하고, 13단원까지 마무리한뒤 다시한번 복습하기로 한다. §메소드 오버로딩 (Metheod Overloading) 한 클래스 내에 동일한 이름의 메소드를 둘 이상 정의하는 것은 허용되지 않는다. 그러나, 매개변수의 선언이 다르면 가능하다. 이것을 메소드 오버로딩 이라고 한다. ■ 메소드 오버로딩의 조건 호출할 메소드를 찾을 때 다음..
자바 기초부터 차근차근...(10) ※ Chapter10 클래스 변수와 클래스 메소드. ※ 본문은 윤성우의 열혈JAVA를 정리한 글입니다. ※ 문제가 될시 비공개 처리하겠습니다. 어느덧 벌써 10번째 정리글이 되었다. 이제 슬슬 코딩테스트 공부를 하면서 정리해야하나 생각이 들기도 하지만 다다음주면 중간고사 기간이기도 하고 진행하는 프로젝트도 있기 때문에 천천히 진행하려고 한다. (사실 너무 많은걸 한번에 해봤는데 모두 포기하게 된다.) 하루에 최소 1개 or 2개정도는 정리글을 올리면서 빠르게 JAVA책을 훑어보고 일주일에 3~4개씩 코딩테스트를 정리한 글을 만들 목표를 가지고 있다. 혹시라도 처음부터 같이 공부하고 있는 취준생들은 같이 파이팅하자! (영어공부도 얼른해야하고... 프로젝트 진행도 해야하고... 할게 많은데 게임도 하고싶다...
자바 기초부터 차근차근...(9) ※ Chapter09 정보 은닉 그리고 캡슐화. ※ 본문은 윤성우의 열혈JAVA를 정리한 글입니다. ※ 문제가 될시 비공개 처리하겠습니다. §정보 은닉(Information Hiding) 자바에서 말하는 '정보'는 클래스의 '인스턴스 변수'를 의미한다 ■ 정보를 은닉해야 하는 이유 예제를 보자. 위의 메소드 중 setRad(double r) 정의를 통해서 Circle 클래스를 정의한 이의 다음 의도를 읽을 수 있다. "반지름의 길이 rad에 0보다 작은 값이 저장되는 일이 발생하지 않도록 하겠다." 반지름의 길이를 변경할 때는 반드시 위으 메소드 호출을 통해 변경을 진행해야 한다. 따라서, 클래스 사용자가 잘못된 값을 인스턴스 변수에 저장하지 않도록 위와 같은 유형의 메소드를 제공해야 한다. 위의 예제에..
자바 기초부터 차근차근...(8) ※ Chapter07 클래스와 인스턴스 ※ 본문은 윤성우의 열혈JAVA를 정리한 글입니다. ※ 문제가 될시 비공개 처리하겠습니다. §클래스의 정의와 인스턴스의 생성 이번 챕터에서는 클래스에 대해 배운다. ■클래스(Class) = 데이터(Data) + 메소드(Method) 데이터 - 프로그램상에서 유지하고 관리해야 할 데이터 기능 - 데이터를 처리하고 조작하는 기능 이 중에서 데이터는 '변수의 선언'을 통해 유지 및 관리가 된다. 변수에 저장된 데이터는 '메소드의 호출'을 통해 처리가 된다. 다음예제를 살펴보자. (은행 계좌를 간단히 표현한 것) 각각의 메소드 내에서 접근하는 변수 balance는 2행에서 선언되었다. 이것은 '전역변수' 라고 하는데 자세한건 다시 배우도록 한다. 우선 지금 알아보고자 하는..