- [Java] 43. 다형성과 캐스팅Song hyun[Java] 43. 다형성과 캐스팅1. 다형성의 개념2. 업캐스팅과 다운캐스팅3. 다형성과 캐스팅의 활용 1. 다형성의 개념(1) 다형성(Polymorphism)은 하나의 데이터 타입을 다양한 형태로 바라볼 수 있는 개념을 뜻한다. -다형성은 객체 지향 패러다임에서 중요한 개념 중 하나로, 이는 한 요소(메서드, 클래스)가 여러 형태를 가질 수 있는 등력을 뜻한다. -다형성은 코드의 유연성과 재사용성을 높이며, 이러한 개념은 상속/추상화/인터페이스에서 많이 쓰인다. -컴파일 시점에서는 문법적인 오류만을 확인하고, 런타임 시점에서 실제 객체가 만들어진다. 2. 업캐스팅과 다운캐스팅업캐스팅/다운캐스팅은 객체 지향 패러다임에서 다형성을 활용할 때 사용되는 개념이다. (1) 업캐스팅(U..
- 2024-04-24 10:28:16
- [Java] 42. 연관 관계 활용: 학생과 학급 클래스 만들기Song hyun[Java] 연관 관계 활용: 학생과 학급 클래스 만들기 도전 문제 - 학생과 학급은 어떤 관계로 바라볼 수 있을까?Classroom 객체와 Student 객체는 연관 관계를 형성하고 있습니다.단 Classroom 안에 Student[ ] 배열을 가지고 있지만 단순히 저장하는 용도 이며Student 필드를 가지고 있지 않습니다. 이는 직접 적인 포함 관계를 나타내지 않습니다. 1. 각각의 Student, ClassRoom 클래스 만들기- 이 때, ClassRoom 의 변수로 student[]를 선언한다.2. ClassRoom 클래스에서 showStudent를 만들어, student[]의 객체들을 출력하는 메서드를 만들기3. ClassRoom 객체 내부의 Student형 배열에 객체를 ..
- 2024-04-24 09:41:36
- [Java] 41. 연관 관계와 의존 관계Song hyun[Java] 41. 연관 관계와 의존 관계 연관 관계와 포함 관계는 객체지향 프로그래밍에서 객체간의 관계를 나타내는 두 가지 개념이다. 하지만 이 둘은 완전히 독립적인 개념이 아니며, 포함관계는 연관관계의 특수한 형태로 간주할 수 있다. ==> 모든 포함관계는 연관관계이지만, 모든 연관관계가 포함관계인 것은 아니다. 1. 연관 관계(Association) 연관 관계(Association)는 일반적으로 한 클래스의 객체가 다른 클래스의 객체와 상호작용을 하지만, 둘 사이의 생명주기에 대한 의존성을 가지지 않는 경우를 의미한다. -enum 클래스: 열거체(enumeration type)으로, 상수 데이터들의 집합이라고 볼 수 있다.(=열거형) 데이터의 범주화를 만들고 싶을 때 사용된다. (=domain) -..
- 2024-04-23 16:15:40
- [독서 노트] <인문학도, 개발자되다>-마르코Song hyun[독서 노트] -마르코 무언가를 새롭게 배우게 되면, 생전 들어본 적 없는 낯선 단어들과 마주하게 된다. 이럴 때는 간단한 일 하나하나도 힘들 때가 많다. 이럴 때, '다른 사람들은 어떻게 이런 과정을 헤쳐나갔을까?'하는 궁금증이 자연스레 떠오른다. 그런 궁금증을 해결하기 위해 마르코의 라는 책을 읽게 되었다. 저자가 인문대학 출신의 개발자이다보니, 비전공자인 나로서는 공감되는 부분이 많았다. 특히 '개발을 공부하기로 마음먹었을 때 내가 무엇을 모르는지도 모른다는 것이었다.'라는 부분이 많이 와닿았다. 전공자는 일상 속에서 자연스럽게 접하게 되는 기본적인 단어들도 잘 모를 때가 많아, 이리저리 검색을 통해 알게되는 때가 많았기 때문이다. 이런 부분을 어떻게 해결하면 좋을까? 라는 고민이 있었던 나로서는 ..
- 2024-04-23 13:52:19
- [Java] 40. 메서드 오버로딩, 상속 응용: 유닛에 마린, 질럿, 저글링 상속시키기Song hyun[Java] 40. 메서드 오버로딩, 상속 응용: 유닛에 마린, 질럿, 저글링 상속시키기 *이전 글: https://whatsthatsound.tistory.com/61 [Java] 27. Java로 스타크래프트 모델링하기 [Java] 27. Java로 스타크래프트 모델링하기 모델링 과정 1. 질럿, 저글링, 마린 클래스 생성하기 (1) 클래스마다 사용자 정의 생성자 만들기 (2) 클래스 별로 공격할 때/공격 받았을 때의 메서드 만들 whatsthatsound.tistory.com 이전에 작성한 스타크래프트 모델링의 소스코드를, 상속을 이용해 더욱 간단하게 만들어보자. 1. 상위 클래스인 Unit을 생성한다. -> 이 때, Unit의 변수는 질럿/마린/저글링 클래스가 공통적으로 지니는 name/power..
- 2024-04-23 12:22:15
- [Java] 39. 포함 관계Song hyun[Java] 39. 포함 관계 1. 포함 관계(Composition) -포함 관계는 한 클래스가 다른 클래스를 포함하는 관계를 말한다. 자바에서 포함 관계는 한 클래스가 다른 클래스를 자신의 필드(=멤버 변수)로 포함하는 것을 말한다. -이 개념은 "has-a" 관계로도 불린다. -이는 객체 간의 강한 연관성을 뜻하며, 하나의 객체가 다른 객체 없이는 존재할 수 없을 때 쓰인다. 2. 포함 관계의 특징 -포함된 객체는 포함하는 객체 안에서만 존재하며, 포함하는 객체가 파괴되면 포함된 객체도 함께 파괴된다. -이 관계는 객체간의 강한 의존성을 특징으로 하며, 소유한 객체가 완전한 책임을 진다. -포함관계는 연관관계보다 더 강한 연결을 의미한다. 연습문제 1. (1) 클래스 Computer/CPU를 만들고,..
- 2024-04-23 11:52:10
- [Error Note] 12. 배열 크기 오류: Index 5 out of Bounds for length 5 at -Song hyun[Error Note] 12. 배열 크기 오류: Index out of Bounds 정수형 변수의 값을 받는 배열, numbers와 intBox. 두 배열을 선언한 뒤, 배열 numbers 내부의 변수를 초기화하던 중 에러가 발생했다. 에러 메세지를 잘 살펴보면 "인덱스의 범위 바깥으로 나갔다"고 출력된 것을 살펴볼 수 있다. Index 5 out of Bounds for lenght 5 at - 아래의 배열 선언을 잘 살펴보자. 에러가 발생한 배열 number는 0부터 2까지의 인덱스 길이를 가지고 있다.(크기 3) 즉, 크기는 3이지만 인덱스는 0,1,2까지만 존재한다고 볼 수 있다. 즉 위의 코드에서 볼 수 있는 number[3]은, 배열 numbers의 범위를 벗어난다. 이럴 경우에는 number..
- 2024-04-23 11:44:57
- [CSS] 1. 스타일이란?Song hyun[CSS] 1. 스타일이란? 1. 스타일이란? (1) 스타일(style): HTML문서에서 사용하는 글꼴, 색상, 정렬 등 각 요소들의 배치와 문서의 외형을 결정짓는 내용이다. (2) 스타일 시트(style sheet): 스타일을 관리하기 쉽게 한 곳에 모아둔 것이다. (3) 왜 스타일을 사용하나?: -문서의 내용과 관계 없이 디자인만 바꿀 수 있다. (내용과 디자인의 분리) -다양한 기기에 맞춰 변하는 문서를 만들 수 있다. 2. 스타일의 형식 스타일 형식: p {text-align: center;} (선택자+스타일 속성+속성값) -선택자: { } 사이에 정의한 스타일 규칙이 적용될 대상을 말한다. -속성과 속성 값: '속성 : 속성 값' 의 형태로 함께 표시한다. -스타일 주석: /* 주석 내용 */..
- 2024-04-23 10:58:41
- [Java] 38. 상속 관계와 메서드 오버라이딩Song hyun[Java] 38. 상속 관계와 메서드 오버라이딩 1. 상속 (1) 상속(Inheritance): 기존에 존재하는 클래스로부터 필드(멤버변수)와 메서드를 이어받고, 필요한 기능을 추가할 수 있는 기법을 말한다. -상속은 객체 지향 패러다임에서 중요한 개념 중 하나이다. -상속은 기존의 클래스를 확장하여 새로운 클래스를 정의하는 매커니즘을 뜻한다. -상속을 통해 기존 클래스의 특성과 메서드를 재사용하고, 확장하여, 새로운 클래스를 만들 수 있다. -상속을 통해 검증된 소프트웨어를 재사용할 수 있어, 신뢰성있는 소프트웨어를 손쉽게 개발, 유지할 수 있다는 장점이 있다. 또한 코드의 중복 역시 줄일 수 있다. *객체 지향 패러다임의 많은 장점이 상속에서 비롯된다. (2) 부모 클래스/슈퍼 클래스(Parent ..
- 2024-04-23 09:35:07
- [Java] 37. 메서드 오버로딩Song hyun[Java] 37. 메서드 오버로딩 1. 메서드 오버로딩 (1) 메서드 오버로딩의 정의: 메서드 오버로딩(Method Overloading)은 같은 이름의 메서드를 여러 개 정의하는 것을 의미한다. 이 때 메서드의 시그니처(Signature), 즉 메서드의 이름과 파라미터가 달라야 한다. -메서드 오버로딩을 사용하면, 같은 기능을 하는 메서드들을 하나의 이름으로 통일할 수 있어, 가독성을 높일 수 있다. *메서드 오버로딩은 System.out.println이다. -System.out.println은 하나의 메서드로 여러 자료형을 출력할 수 있는, 대표적인 메서드 오버로딩 기능이다. 2. 예제 보며 이해하기 기존의 코드는 각각의 캐릭터(질럿/마린/저글링)들이 상대편 캐릭터를 공격하게 되면, 캐릭터별로 다른..
- 2024-04-23 09:13:24
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)