본문 바로가기

반응형

자바

(14)
클래스변수, 인스턴스변수, 지역변수 이번 시간에는 변수가 선언되는 위치에 따라 또는 static 이 붙어 나눠지는 클래스 변수, 인스턴스 변수, 지역변수에 대해 알아보고자 합니다. 클래스 변수는 클래스 영역 안에 생성되며 메모리가 올라갈 때 형성됩니다. 인스턴스 변수는 클래스 영역 안에 생성되며 인스턴스가 생성할 때 형성됩니다. 지역변수는 클래스 영역 바깥쪽에서 생성되며 변수 선언문이 수행될 때 생성됩니다. 아래의 코드를 보면서 각 변수들이 무엇이며 어떤 특징이 있는지 알아보도록 하겠습니다. 위 코드는 그랜저 IG를 만드는 설계도라고 하겠습니다. 실제로 그랜저를 사려고 카탈로그를 보면 엔진 사이즈별로 트림을 선택할 수 있습니다. 이와 마찬가지로 여기서도 트림별 2.4, 3.0, 3.3 그리고 휘발류, lpg, 하이브리드 차량을 선택할수 있..
오버로딩과 오버라이딩의 차이 이전에 오버로딩과 오버라이딩에 대해 알아봤습니다. 하지만 둘 다 알게 되면서 갑자기 헷갈리기 시작합니다. 뭐가 오버로딩이고 오버라이딩이였지? 오버 로딩은 매개변수, 타입, 개수가 같아야 했나? 달라야 했나? 오버 라이딩이 부모 클래스에서 상속받은 것이었나? 이름도 비슷한 녀석들이 사람을 헷갈리게 만듭니다. 그래서 둘의 차이를 정리해보려 합니다. 그전에 오버로딩과 오버라이딩의 개념을 한마디로 표현하고자 합니다. 오버로딩은 호환성의 확장이라고 표현하고자 합니다. 뷰어 프로그램은 다양한 확장자의 파일을 우리가 읽을 수 있게 합니다. hwp, doc, elx, pdf, txt, dot 등 다양한 문서 프로그램들을 읽을 수 있습니다. 만약 뷰어 프로그램에 오버로딩이 안된다면 뷰어 for 한글과 컴퓨터, 뷰어 fo..
오버라이딩, overriding 오버라이딩(Overriding) 이란 가장 우선시 되는 이라는 사전적 의미를 가지고 있습니다. 그렇다면 자바에서는 어떤 의미를 가지게 될까요? 조상클래스에서 정의된 메서드를 자식 클래스의 상황에 맞게 입맛에 맞게 수정하는 것입니다. 하지만 메서드 이름, 타입, 매개변수는 그대로 가져가게 됩니다 이는 큰틀에서의 기능은 유지하되 자식에게 필요한 부분들을 적절히 바꾸라는 뜻입니다. 마이 썸머 카라는 게임을 아시나요? 부모님이 물려준 차를 다시 조립하고 튜닝해서 레이스에 참여하는 게임인데요. 이와 같이 부모님이 제게 주신 차는 일상적인 사용을 위한 평범한 차입니다. 하지만 나에겐 레이싱 참여라는 가장 중요한 목표가 있기에 그 목적에 맞게 각종 튜닝을 통해 멋진 레이싱용 차량으로 개조 했습니다. 그럼 자바에서 어..
오버로딩, 오버라이딩 이전에 상속에 대해 알아보고 식별자 this와 super에 대해서도 알아봤습니다. 이번 글에서는 오버 라이딩과 오버 로딩에 대해 알아보려 합니다. 먼저 오버로딩에 대해 알아보겠습니다. 과적하다는 사전적 의미가 있지만 전혀 와 닿지 않아 보입니다. A4 용지를 예로 설명해 보려 합니다. 여기에 똑같은 A4 용지가 각 케이스별로 들어있습니다. 그런데 노란색 케이스에 든 종이는 숫자만 쓸 수 있고 빨간색 케이스에 든 종이에는 문자만 파란색 케이스에는 든 종이는 특수문자만 쓸 수 있다고 정말 어이없는 상황일 거 같습니다. 숫자를 쓰려고 종이를 가져가려다가 실수로 빨간색 케이스에서 꺼낸다면 다시 노란색 케이스에 든 종이를 가지러 가야 할 것입니다. 마 친가지로 A4()라는 매더스가 있습니다. 이 매머드는 매개변수..
상속, this, super 자식 클래스가 부모 클래스를 상속받게 되었을 때 둘 다 동일한 타입과 이름의 변수가 존재하거나 매서드들이 오버 라이딩되어버리면 더 이상 부모의 것이 아닌 자식의 성분이 되어버립니다. 그래서 부모의 것, 자식의 것을 구분 짓기 위한 식별자 this와 super에 대해 알아보려고 합니다. 이번에는 child(name, number) 를 통해 이름과 나이가 입력된 객체를 선언하겠습니다. child child2 = new child("Chris",20); 로 자식객체 하나를 만들었습니다. 그런데 부모의 이름과 나이 역시 자식과 동일하게 Chris, 20살이 되어버렸습니다. 일단 복습하자면 자식 생성자가 생성될 때는 부모의 객체를 먼저 생성한다고 했습니다. 아무것도 입력되어 있지 않으면 super(); 가 호출됩..
상속 이른바 객체지향 언어라고 불리는 자바를 공부해보려고 합니다. 기본적인 문법은 배제하고 자바의 주요 특징인 객체지향이 무엇인지 개념적인 이해 위주로 공부해 보려고 합니다. 객체지향의 언어 바의 주요 특징중 하나인 상속에 대해 알아보도록 하겠습니다. 문자 그대로 부모님의 재산을 물려받아 내 것이 된다는 의미로서 자바에서는 부모 클래스 내의 존재하는 모든 것들을 모두 이어받어 자식 클래스 내에서 사용 가능하다는 것을 의미합니다. 부모 클래스인 pa 입니다. 생성자 pa(), pa(name, number)를 통해 객체를 생산할 수 있고 changeVariable 메서드를 통해 인스턴스 변수 name과 number를 설정할 수 있습니다. 부모 클래스를 상속받은 자식 클래스 child 입니다. 3가지 생성자 chi..

반응형