2025/02/25 22

[내일배움캠프Spring-7일차] Java 강의 2주차 수강

기술 블로그는 나만의 백과사전이다. 강의 수강한 내용을 TIL 에만 적어두면 이후에 쉽게 찾아볼 수 없을 거 같아서 챕터 별로 포스팅 하였다.✅ 배웠던 내용1. Chapter 2 - 01 강의2025.02.25 - [코딩 공부/Java 강의] - [Java] Chpater 2- 01) 클래스와 객체 [Java] Chpater 2- 01) 클래스와 객체1️⃣ 클래스란?: 객체를 만들 때 필요한 청사진이다.- Java에서 클래스는 객체를 만들 때 필요한 청사진(설계도) 이다.- 클래스의 첫 글자가 대문자이다.2️⃣ 객체- 실제로 존재하는 것이다.우리sintory-04.tistory.com2. Chapter 2 -  02 강의2025.02.25 - [코딩 공부/Java 강의] - [Java] Chpater 2..

[Java] Chpater 2- 10) 객체지향 - 다형성

1️⃣ 다형성(Polymorphism)다형성은 하나의 타입으로 여러 객체를 다룰 수 있는 객체지향의 4번째 특징입니다.인터페이스 상속, 클래스 상속을 활용해서 추상계층을 표현해 왔습니다.이제 추상 계층이라는 특징을 활용해서 다형성을 구현할 수 있습니다.2️⃣ 형변환(Casting)부모타입으로 자식타입을 다룰 수 있는 이유는 자동으로 형변환(Casting) 이 발생했기 때문입니다.자식타입 → 부모타입: 업캐스팅(UpCasting)부모타입 → 자식타입: 다운캐스팅(DownCasting)3️⃣ 업캐스팅(UpCasting) - 자식 → 부모부모타입으로 자식타입을 다룰 수 있는 이유는 업캐스팅(UpCasting) 때문입니다.public class Main { public static void main(Str..

코딩 공부/Java 2025.02.25

[Java] Chpater 2- 09) 객체지향 - 추상화

1️⃣ 추상화란고양이 → 동물 → 생명체추상화란 불필요한 정보를 제거하고 본질적인 특징만 남기는 것을 의미합니다.객체지향 프로그래밍에서는 추상화의 계층적 특징을 활용해서 유지보수성이 좋은 프로그램을 만들 수 있습니다.이런 추상화 특징을 활용할 수 있다는 것이 객체지향의 3번째 특징입니다.우리는 계층구조를 자바의 특징(인터페이스 상속, 클래스 상속) 구현할 수 있습니다.추상화의 특징은 다형성에서 활용됩니다.2️⃣ 인터페이스 상속를 활용한 추상 계층public interface LifeForm { void exist(); // ✅ 공통: 모든 생명체는 존재한다.}public interface Animal extends LifeForm { void makeSound(); //✅ 공통: 모든 동물은 ..

코딩 공부/Java 2025.02.25

[Java] Chpater 2- 08) 객체지향 - 상속

1️⃣ 상속클래스간의 관계를 부모(상위), 자식(하위) 로 바라보는 개념입니다.이 구조를 통해 상속에서는 재사용성, 확장 이 가능합니다.(중요한 키워드 입니다.)→ 물려받은 속성과 기능은 자식 클래스에서 재사용할 수도 있고, 확장할수도 있습니다.extends 키워드를 사용해서 상속관계를 구현합니다.부모의 속성과 기능을 자식이 자연스럽게 물려받는다라고 생각하면 이해하기 쉽습니다.상속을 통해 코드 중복을 줄이고 유지보수성을 높일 수 있습니다.추상화, 다형성을 구현하는데 잘 활용됩니다.2️⃣ 재사용성상속의 장점은 부모 클래스의 내용을 물려받아 그대로 재사용할 수 있습니다.1. super - 부모 인스턴스super 는 부모클래스의 멤버(변수, 메서드)에 접근할 때 사용하는 키워드입니다.자식 클래스에서 부모의 변..

코딩 공부/Java 2025.02.25

[Java] Chpater 2- 07) 객체지향 - 캡슐화(접근제어자)

1️⃣ 캡슐화객체의 정보를 외부에서 직접 접근하지 못하게 보호하는 개념캡슐처럼 감싸서 내부를 보호하고 외부로부터 내용물을 숨기고 있는 모습에서 유래클래스 혹은 객체의 캡슐화는 접근제어자 를 통해서 구현- 필요한 이유캡슐화를 통해 정보를 보호하고 필요한 경우에만 안전하게 접근할 수 있도록 합니다.캡슐화를 구현하기 위해서는 접근제어자 를 이해해야합니다.2️⃣ 접근제어자(Access Modifier)접근제어자는 클래스, 변수, 메서드, 생성자의 접근 범위를 제한하는 키워드입니다.캡슐화 구현을 위해 사용됩니다.접근제어자클래스 내부패키지 내부상속한 클래스전체 공개public✅✅✅✅protected✅✅✅❌default✅✅❌❌private✅❌❌❌3️⃣ 접근제어자 활용 예시(public, private)public c..

코딩 공부/Java 2025.02.25

[Java] Chpater 2- 06) 인터페이스 - 표준화의 시작

1️⃣ 인터페이스(interface)인터페이스는 설계 표준입니다.클래스가 따라야할 최소한의 공통 규칙을 정의하는 역할을 합니다.2️⃣ 인터페이스를 사용하는 이유모든 설계에 표준이 있는 이유와 똑같다.개발자마다 서로 다른 방식으로 메서드를 만든다면 일관성이 깨질 수 있다.인터페이스를 활용해서 최소한의 규격을 정의한다.세부 구현은 각 클래스에 맡긴다.일관성을 유지하면서 클래스가 고유한 특색을 확장할 수 있도록 돕는다.3️⃣ 인터페이스 적용인터페이스는 모든 클래스가 지켜야 할 최소한의 규칙을 정의합니다.클래스에서 implements 키워드로 인터페이스를 활용할 수 있습니다.인터페이스를 구현한 클래스를 구현체 라고 합니다.interface Car { void drive(); void stop();}4..

코딩 공부/Java 2025.02.25

[Java] Chpater 2- 05) final - 변하지 않는 값

1️⃣ final 이란?1. 변수는 변경이 불가능하게 만든다변수에 final 을 붙이면 변수를 한 번만 설정할 수 있습니다.final int a = 100;a = 200; // ❌ 오류 발생!2. 클래스는 상속할 수 없게 만든다final 로 선언된 클래스는 상속할 수 없습니다.final class Animal { void sound() { System.out.println("Animal sound!"); }}// class Dog extends Animal {} // ❌ 오류! final 클래스는 상속할 수 없음3. 메서드는 수정할 수 없게 만든다(오버라이딩 불가)final 로 선언된 메서드는 오버라이딩 할 수 없습니다. (오버라이딩은 추후에 학습합니다.)class Parent {..

코딩 공부/Java 2025.02.25

[Java] Chpater 2- 04) static - 클래스가 공유하는 공간

1️⃣ Static1. Static 이란?static 키워드는 모든 객체가 함께 사용하는 변수나 메서드를 만들때 사용된다.객체(인스턴스)를 만들지 않아도 클래스 이름만으로 바로 사용할 수 있다.모든 객체가 같은 값을 공유한다. → 공용 게시판이라고 생각하면 된다.static 변수와 메서드는 한 번만 생성되고 Method Area(메서드영역) 에 저장된다.2. Static 활용static 키워드는 변수, 메서드에 붙일 수 있습니다.static 키워드로 선언된 변수와 메서드는 MethodArea 에 저장됩니다.각 객체(인스턴스)는 클래스영역에 저장된 데이터를 활용할 수 있습니다.// People Classclass Person { // ✅ static 변수 static int pop..

코딩 공부/Java 2025.02.25

[Java] Chpater 2- 03) 레퍼클래스 (기본형 참조형)

1️⃣ 래퍼 클래스란?- 기본자료형을 객체로 감싸는 클래스임.기본 자료형 (Primitive Type)래퍼 클래스 (Wrapper Class)byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean2️⃣ 기본형(Primitive Type)의 종류자료형종류범위바이트비트boolean논리형true/false18char문자형0 ~ 65535 유니코드 값216byte정수형-128 ~ 12718short정수형-32,768 ~ 32,767216int정수형-2,147,483,648 ~ 2,147,483,647432long정수형-9,233,372,036,854,775,808 ~9,233,372,036,854,775,80786..

코딩 공부/Java 2025.02.25

[Chapter02-1] 클래스와 객체 실습과제

요구사항Car 클래스를 만든다.속성 - 자동차의 속성을 저장할 변수를 만든다.생성자 - 조립할 속성을 골라 객체화를 시켜주세요.기능 - 다양한 기능을 만들어보고 활용해보세요. → drive() 주행 기능 → accelerate() 가속 기능package chapter2.promblem.carProject;public class Car { // 1. 속성 만들기 String name ; boolean turnMachine; // 2. 생성자 Car(String name, boolean turnMachine){ this.name = name; this.turnMachine = turnMachine; } // 3. 기능 void drive(){ System.out.println(..