부트캠프 개발일기123 15일차: 컬렉션(Enum, Generic, Exception Handling) ❯ 열거형(Enum) 열거형(enum: enumerated type): 여러 상수(변하지 않는 값)들을 보다 편리하게 선언할 수 있도록 만들어진 자바 문법요소. 상수명의 중복을 피하고 타입에 대한 안정성을 보장함. switch문에서도 작동이 가능함 * switch문: 사용자 정의타입은 사용 불가 enum Seasons {SPRING, SUMMER, FALL, WINTER} // 값을 지정하지 않아도 자동으로 0부터 시작하는 정수값 할당 // 특정 상수에 접근하려면 열거형이름.상수명 으로 가능 ex. Seasons.SUMMER ❯ 제네릭(Generic) 타입을 구체적으로 지정하는 것이 아니라 타입 매개변수를 활용해 추후에 지정할 수 있도록 일반화 하는것. 작성한 클래스 혹은 메서드가 특정 타입에만 사용되지.. 2023. 3. 6. 14일차: 미니 프로젝트(의존성 주입) 자바에서 의존성 주입(Dependency Injection, DI)이란 객체 지향 프로그래밍에서 객체간의 결합도를 줄이고 유연성을 높이기 위한 설계 패턴 중 하나임 객체 지향 프로그램에서 사건(동작)은 객체간의 상호작용을 통해서 수행되는데 이 때 객체는 자신이 필요로 하는 다른 객체를 직접 생성하거나 참조함. 직접 객체를 생성하고 참조하게 되면 객체간 결합도가 높아짐. (코드를 수정하려면 코드 전체에 걸쳐 수정이 필요해짐) 의존성 주입은 이러한 문제를 해결하기 위해 객체가 필요로 하는 의존 객체를 외부에서 주입해주는 방식임 객체 스스로 필요로 하는 객체를 생성하는것이 아니라 외부에서 의존객체를 주입받아서 사용함 (별도의 인터페이스나 추상클래스를 생성해서 생성자 매개변수로 할당할 수 있음) 의존성 주입을 .. 2023. 3. 3. 13일차: 미니 프로젝트(얕은복사 vs 깊은복사) 자바에서 객체를 복사하는 방법은 얕은복사(shallow copy)와 깊은복사(deep copy) 두가지가 있음 ❯ 얕은 복사(Shallow Copy) 객체 내용을 복사하는 것이 아니라, 객체의 참조값(reference)만을 복사하는 방법. 복사된 개체는 원본 객체와 같은 내용을 가리키게 되므로 복사된 객체 내용을 수정하면 원본 객체 내용도 함께 변경됨 ❯ 깊은 복사(Deep Copy) 객체의 내용을 복사하는 방법. 복사된 객체와 원본 객체는 서로 독립적으로 존재하며 하나를 수정해도 다른 객체에는 영향 주지 않음 아래와 같은 클래스가 있다고 가정 class Person { private String name; private int age; private Address address; // getter, s.. 2023. 3. 2. 12일차: 객체지향 프로그래밍 심화(다형성/Polymorphism, 추상화/Abstraction) ❯ 다형성(Polymorphism) 다형성 poly(여러개) + morphism(형태, 실체) 의 의미로, 하나의 객체가 여러개의 형태를 가질 수 있는 성질을 의미함 상위 클래스의 참조변수를 통해 하위 클래스 객체를 참조할 수 있도록 허용한것. (반면 하위 클래스 참조변수로 상위 클래스 객체 참조는 불가능) ⇒ 상위 클래스를 참조변수 타입으로 지정할 경우, 해당 참조변수가 사용할 수 있는 멤버의 개수는 상위 클래스의 멤버의 수와 같음 참조변수의 타입 변환 다르게 표현하자면, 사용할 수 있는 멤버의 개수를 조절하는 것을 의미함 서로 상속관계에 있는 상위 - 하위 클래스 사이에만 타입 변환이 가능함 하위 클래스에서 상위 클래스로의 타입변환(업캐스팅)은 형변환 연산자(괄호) 생략 가능 상위 클래스에서 하위 클.. 2023. 2. 28. 11일차: 객체지향 프로그래밍 심화(상속/Inheritance, 캡슐화/Encapsulation) ❯ 상속(Inheritance) 상속 기존 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소. 하위 클래스는 상위 클래스가 가진 모든 멤버를 상속 받음(서로 상속관계에 있다고 하며, 상위 클래스로부터 확장되었다고도 표현함) ⇒ 상위 클래스의 코드를 재사용함으로써 적은 양의 코드로 새로운 코드(하위 클래스) 작성 가능. 코드의 중복을 제거함 하나의 객체가 여러가지 모양으로 표현 가능하므로 다형적 표현이 가능해짐 자바에서는 단일 상속만을 허용함. [extends + 상위 클래스명]으로 정의함 ex. class Teacher extends Person 포함 관계 포함(composite)은 클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는것을 의미 다른 클래스를 재사용한다는 점에서 상속과 유사.. 2023. 2. 27. 10일차: 객체지향 프로그래밍 기초(생성자, 내부클래스) ❯ 생성자(Constructor) 생성자는 객체를 생성하는 역할을 하는 클래스의 구성요소로, 인스턴스가 생성될 때 호출되는 메서드. 인스턴스를 생성하는것은 new 키워드이고, 생성자는 인스턴스 변수를 초기화하는데 사용됨 생성자의 이름은 반드시 클래스의 이름과 같아야 함 생성자는 리턴 타입이 없음 (리턴 타입 자체가 존재하지 않으므로 void 키워드 사용안함) 생성자도 메서드와 같이 오버로딩이 가능함. 한 클래스 내에 여러개의 생성자 존재 가능 기본생성자(Default Constructor) 만약 인스턴스를 만들 때 생성자가 클래스 안에 없다면 자바 컴파일러가 자동으로 기본 생성자를 추가함 ex. class Example ⇒ Example( ){ } 자동으로 생성 생성자가 클래스 안에 추가되어있다면 해당 .. 2023. 2. 24. 이전 1 ··· 16 17 18 19 20 21 다음