본문 바로가기
반응형

전체 글200

[자바기초.017] 상속 계층(Inheritance Hierarchies) [자바기초.017] 상속 계층(Inheritance Hierarchies) [1] 상속 계층 하나의 superclass에서 여러 개의 subclass가 상속을 받는 관계일 때, 상속 계층(inheritance hierarchy)로 표시하면 코딩하는 데에 도움이 될 수 있다. 위 그림을 예로 들면, Square is-a Rectangle 이어서 Square 클래스는 Rectangle 클래스의 subclass 입니다. 그리고 Rectangle is-a Shape 이어서 Rectangle 클래스는 Shape 클래스의 subclass 입니다. 자바에서 Object 클래스는 계층(hierarchy)의 가장 꼭대기에 있는 클래스입니다. Object 클래스는 모든 자바 클래스의 최고 조상 클래스가 됩니다. 따라서 자.. 2024. 3. 15.
[자바기초.017] super 키워드 [자바기초.017] super 키워드 [1] super 키워드 subclass는 superclass로부터 상속받은 필드와 메소드를 사용할 수 있습니다. 그런데 subclass가 superclass의 메소드를 재정의 해서 사용하는 "오버라이드(override)"를 했다고 가정했을 때, 만약 superclass의 override된 메소드를 사용하고 싶다면 어떻게 해야 할까요? 이럴 때 바로 super.method()로 superclass의 메소드를 실행할 수 있습니다. [2] super의 2가지 쓰임새 super() / super(arguments): superclass의 생성자(constructor)를 subclass의 생성자 첫 줄에서 실행할 때 사용. super.method() : superclass의.. 2024. 3. 15.
[자바기초.015] 오버라이딩(Overriding) [자바기초.015] 메소드 오버라이딩(Overriding) [1] 메소드 오버라이딩(Method Overriding) 자바에서 자식 클래스는 부모 클래스의 private 멤버를 제외한 모든 메소드를 상속받습니다. 이렇게 상속받은 메소드는 그대로 사용해도 되고, 필요한 동작을 위해 재정의하여 사용할 수도 있습니다. 메소드 오버라이딩(Overriding)이란 상속받은 부모 클래스의 메소드(Method)를 재정의하여 사용하는 것을 말합니다. ◈주의사항◈ -오버라이딩(Overriding): 상속 받은 메소드를 재정의 하는 것(오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴형(return type) 이 모두 같아야 한다.) -오버로딩(Overloading): 기존에 없는 새로운 메소드를 추가하는 것(메소드의.. 2024. 3. 15.
[자바기초.014] is-a & has-a 관계 [자바기초.014] is-a & has-a 관계 [1] is - a 관계(relationship) is-a 관계는 ~이다 라는 뜻으로 아래와 같은 예시로 이해할 수 있다. "사람은 동물이다", "강아지는 동물이다" is-a 관계는 상속(Inheritance)으로 코딩하는 것이 효율적이다. [2] has - a 관계(relationship) has-a 관계는 ~을 가지고 있다 라는 뜻입니다. has-a 관계는 상속을 사용하지 않고 다른 클래스의 field나 method 등을 가져와서 사용한다. [3] 예제 코드로 is-a & has-a 관계 이해하기 Course, Student, Apcourse 라는 3개의 클래스를 코딩한 아래의 예제 코드를 보세요. 그리고 이 3개 클래스의 관계는 아래 그림과 같습니다... 2024. 3. 14.
[자바기초.013] 상속과 생성자 [자바기초.013] 상속과 생성자 [1] 상속 관계에서 private 변수를 어떻게 다룰것인가? subclass는 자신이 확장하는 superclass에서 public method를 상속하지만 superclass의 private instance variable에 직접 액세스할 수는 없습니다. 그리고 subclass는 superclass의 생성자(constructor)를 상속하지 않습니다. 하지만 상속된 인스턴스 변수는 적절하게 초기화되어야 합니다. 그렇지 않으면 상속된 메서드(method) 중 어느 것도 제대로 작동하지 않을 것입니다. 그렇다면 subclass가 superclass의 private variable을 어떻게 초기화할 수 있을까요? [예제1] 아래의 상속 관계를 가지는 코드를 보고 생성자 부분.. 2024. 3. 13.
[자바기초.012] 상속(Inheritance) [자바기초.012] 상속(Inheritance) [1] 상속(Inheritance) 란? Object-Oriented programming에서 가장 큰 특징 중 하나가 상속(Inheritance)이다 일상 생활속에서 "상속"은 부모로부터 재산을 "상속 받는다"라고 할때 사용되는데, 자바에서도 그 의미가 비슷하다. 자바에서 모든 클래스(Class)는 attributes (instance variables / field) 와 behaviors (methods)를 다른 클래스로부터 상속받을 수 있다. 상속을 준 클래스는 "parent class or superclass"라고 하고, 상속을 받은 클래스는 "child class or subclass" 라고 부른다. 클래스 상속을 받기 위해서 Java keywor.. 2024. 3. 13.
[자바기초.011] 배열과 리스트 비교(Array vs List) [자바기초.011] 배열과 리스트 비교(Array vs List) [1] 언제 배열 or 리스트를 사용하나? (배열과 리스트 선언하기_Declare) 배열 선언(Declare Array): 저장할 데이터 타입이 같고, 개수가 정해져 있을 때 리스트 선언(Declare List): 저장할 데이터 타입이 같고, 개수가 정해져 있지 않아 데이터를 삭제하거나 새롭게 추가할 때 HTML 삽입 미리보기할 수 없는 소스 [주의] 위 코드와 같이 배열이나 리스트를 선언(Declare)하는 것만으로는 실제로 배열과 리스트가 만들어지는 것은 아니다.배열 객체나 리스트 객체에 대한 참조(reference)만 하는 것일 뿐이다. [2] 배열과 리스트 만들기(Creating) 선언된 배열 변수를 이용해 배열을 만들기: new .. 2024. 3. 13.
[자바기초.010] Traversing ArrayList(리스트 반복문) [자바기초.010] Traversing ArrayList(리스트 반복문) [1] Traversing ArrayList ArrayLists can be traversed with while loops Both regular and enhanced for loops much the same way we use those constructs to loop over an array. [2] Enhanced for loop with ArrayList You can’t use the enhanced for loop if you want to add or remove elements while traversing an ArrayList. If an ArrayList is modified, such as by call.. 2024. 3. 11.
[자바기초] List & ArrayList [자바기초] List & ArrayList [1] List 란? List는 자바에서 제공하는 데이터 구조 중 하나로서 여러 개의 데이터를 저장할 수 있는 자료형이다. List는 배열(Array)과 비슷하게 index를 이용하여 데이터에 접근할 수 있다. 배열(Array)은 저장할 수 있는 데이터의 개수가 한 번에 정해지고 바꿀 수 없지만, List는 저장할 수 있는 데이터의 개수를 (동적으로) 변화시킬 수 있어서 데이터의 추가(add), 삭제(remove) 등에 편리하다. 따라서 저장할 데이터의 개수가 계속 변하는 상황이라면 배열(Array)보다 List를 사용해야 한다. import java.util.List; 로 List 클래스를 불러오는 코딩이 먼저 선행되어야 한다. [2] ArrayList 란? .. 2024. 3. 10.
728x90
반응형