2025-03-28 [8일차]

dong_c·2025년 3월 30일

수업 정리

abstract -> 추상
껍데기만!

OOP에서 말한 추상화
나한테 필요한 것만 추려내는 작업

추상 클래스
추상 클래스는 하나 이상의 추상 메서드를 포함하는 클래스 추.클은 추상메서드가 없어도 상관은 없다
일반적인 인스턴스 변수, 인스턴스 메서드 , 클래스 변수 , 클래스 메서드를 만들어도
상관 없다
-> 추상 클래스는 단독 인스턴스화 x
인스턴스화 할수 있다매 ->
인스턴스 객체 못 만들음 /물려주는 용도로만 활용

abstract class 음식점{
}

추상 메서드

추상 메서드 있으려면 추상 클래스가 있어야 함(위처럼)

추상 메서드 존재 이유?

누군가로 하여금 재정의해서 사용할 수 있게 하기 위함
모두가 다 사용할 수 있어야 한다
인터페이스 자체의 의미가
틀을 만들어 놓는 개념이라서 그렇다
능력이 없는 껍데기만 있는 메서드를 가지기 때문에
이 껍데기를 가져다가 실제로 필요한 곳에서 원하는 기능을 사용 할 수 있게 해주는 느낌

*추상 메서드에 접근 제어자(퍼블릭) 붙여요!
오버라이딩 후에

abstract void 주문();

}

추상(abstract) 왜 필요한가?
자바한테, 혹은 개발자에게 의미전달!
(이 메서드는 껍데기니까 개발 x 그냥
자식이 물려받아서 오버라이딩(수정)해서 써라)

abstract 필수? -> x
대신 분석, 구조 설계 (부모.자식 클래스 관계 형성)

순도 100%짜리 추상 클래스를 표현하는 방법
interface 를 클래스 대신에 넣어줌!

출력 형식 ->

abstract interface(원래 클래스자리에 인.페 넣	     고)

*인터페이스 안에 존재하는 모든 메서드는 추상메서드
라서 abstract 생략

*인터페이스 안에 존재하는 모든 변수는 static상수라서
static final를 생략

*인터페이스는 오직 상수와 추상메서드만 가질수 있다

상수? -> 처음 정한 값 쭉 감 (변수 사라질때까지)

final int a =10; (이 값 그대로 쭉 감,재할당 못함)

인터페이스는 상속할 때 extends 대신
implements(구현)이라는 명령어로 대체
(extends 쓸 수는 있으나 구현 앞에 써야함)
신기하게도 원래라면 다중상속 안되는데
인터페이스는 다중상속 가능!

향상된 for문
for 문과 크게 다를바가 없긴 하나
표현하는 방식이 다르고
for문 사용할수 있는 상황이 제한적(법용적이진 않음)
But 제한적인 상황에서만큼 효율이 좋다. --> 배열...
역순회 불가 무조건 0번 인덱스부터 순서대로

예시
public class Main {
public static void main(String[] args) {

(초기값;조건식;스텝)
(순회할 때마다의 값을 넣어줄 변수 : 순회할 요소)

1~ 5까지의 출력
기존 for문
for (int i =1; i<=5;i++) {
System.out.println(i);
}
향상된 for문
int[] arr = {1, 2, 3, 4, 5};

for (int n : arr) {
System.out.println(n);
}

}
}
//

리스트 PART

자바에 이미 만들어져 있는 인터페이스
리스트? --> interface .. 추상 메서드
구현부 가지고 있지 않음

인스턴스 객체 못 만드는데 역할?
없음.

List에서 사용 가능한 메서드 들 중
알아야 할 것? 딱히 정해져 있진 않지만

외워두면 좋음 딱히 기억 안나면 자바 List 검색해서
필요한 메서드 찾아 쓰기

add-추가, get-조회 size 크기 , 삭제 , 수정
ArrayList클래스

제네릭 : <>
역할?
ArrayList에 값을 추가할 때 어떤 값이 들어갈 수
있는지에 대한 제약사항

컬렉션이란?

collection(컬렉션) -순서나 집합적인 저장공간
순서에 의미가 있는 데이터들을 관리하는 문법+집합

Map(맵)이란?

순회x

profile
코딩초보

0개의 댓글