Language/Java-backup (5) 썸네일형 리스트형 [Java] 상속 (Inheritance) Java를 통해 객체지향 언어를 이해해보는 학습노트입니다 객체지향의 4가지 특징 원래 객체지향의 특징은 이 OOP 카테고리 맨 첫 번째로 포스팅되어야 했습니다. 이 4가지 특징에 대한 개념을 "상속"에 적는 이유는 저희는 벌써 2가지 특징 "추상화" ,"캡슐화"를 배웠습니다. 캡슐화는 4편에서 설명드렸지만 "추상화"는 직접적으로 언급한 적이 없습니다. 객체지향 코딩을 하면서 이미 "추상화"를 했기 때문입니다. "추상화"라는 것은 객체들의 공통적인 (속성과 기능)을 뽑아내는 것 정도라고 만 아시면 됩니다. "다형성"은 개념이 복잡하므로 추후에 다루도록 하겠습니다 그렇다면 객체지향의 4가지 특징은 다음과 같이 정리 됩니다. 1. 추상화, Abstraction 2. 캡슐화, Encapsulation 3. 상속.. [Java] 캡슐화 (Encapsulation) Java를 통해 객체지향 언어를 이해해보는 학습노트입니다 캡슐화? 캡슐화는 한 마디로 "은닉화"라고 생각하시면 됩니다. 일단 하나의 클래스를 예제로 들어보겠습니다. 멤버 변수는 String 형인 name 과 int 형인 id 두 개 밖에 없습니다. 이 클래스의 멤버 변수에 접근하기 위해서는 다음과 같이 접근합니다. 이러한 접근방법은 클래스의 속성을 함부로 변경을 가능하게 만드는 위험성을 가지고 있습니다. private로 선언된 멤버변수의 getter ,setter 메서드 밑의 코드는 Student 라는 이름의 클래스입니다. 자세히 들여다 보시면 변수의 접근 제한자가 private로 선언되어있는 것을 확인할 수 있습니다. 그리고 밑의 메서드명에 'set' 과 'get' 이라는 단어가 들어가 있는 걸 확인 .. [Java] 생성자 오버로딩 생성자란? ,Constructor 생성자(Constructor)는 객체를 생성할 때 최초로 실행되는 메소드의 일종입니다. 코드를 통해 이해하자면 다음과 같습니다. "MyClass1"이라는 클래스를 하나 생성하고 이 클래스와 이름이 같은 메소드인 "public MyClass1()"이라는 메소드를 생성합니다. 바로 이 클래스의 이름과 동일한 메소드인 MyClass1() 이라는 메소드가 생성자인 것입니다. 이 생성자를 살펴보시면 Parameter로 두 개의 값을 받고 있습니다. 그리고 밑의 "this" 라는 Keyword를 통해 무엇인가 값을 할당하고 있습니다. "this"라는 키워드는 MyClass1 이라는 클래스의 멤버 변수에 접근할 수 있게 만들어주는 Keyword 입니다. 그리고 그 밑으로 Parame.. [Java] 오버로딩 (OverLoading) 오버로딩, OverLoading 오버로딩이란 메소드 이름을 동일하게 하면서 매개변수 값을 다르게 주어 여러개의 메소드를 구현할 수 있는 것입니다. 왜 쓸까? 절차지향에서는 기능별로 메소드를 따로따로 만들어야 합니다. 만약 정수형 값을 인자로 받는 함수는 정수형 값만 리턴시키고 실수형 값을 인자로 받는 함수는 실수형 값만 리턴시킵니다. 이를 보완하기 위해 객체지향에서는 매개변수의 타입이 각각 달라도 동일한 이름의 메소드를 갖게 만든다면 메소드를 구현할 때 매개변수의 값만 다르게 설정해서 메소드를 호출하면 그 메소드를 만든 정의대로 기능을 쓸 수 있습니다. 코드를 통한 오버로딩의 이해 오버로딩의 이해를 돕기 위해 아래의 코드와 같은 기준이 되는 메소드 하나를 만들어봅시다. 이 메소드의 보자면 반환값 int형.. [Java] 클래스 Object, 객체 처음 객체를 배울 떄 흔히 붕어빵에다가 많이 비유하곤 합니다 하지만 제 경우에는 이 비유가 더 어려웠습니다. 그래서 제가 이해한 객체에 대한 개념은 "설계도를 통해서 만들어진 특정 행위를 가지고 있는 것" 이라고 말씀드리고 싶습니다. "설계도"란 곧 클래스이며 "특정 행위"라는 것은 이 행위를 하기 위한 변수의 선언이나 함수의 기능들이라고 이해했습니다. 그런데 사실 코딩을 하다보면 어떤 개념보다는 그냥 코드를 통해서 이해하기가 더 쉬운 경우가 있는데 객체지향적 코딩이 바로 그런 것이라고 생각됩니다. 인스턴스 & 스태틱 변수 위에서 언급한 변수들을 다음과 같이 초기화 합시다. 인스턴스(Instance) 변수는 아래와 같이 '인스턴스화'를 시킨 뒤 호출이 가능합니다. '인스턴스화' 라는 .. 이전 1 다음