2025-3-28 8일차

심서진·2025년 3월 28일

수업 정리

abstract

-추상(oop에서 말한 추상화와 비슷)
-> 껍데기만 만들어 놓은 것

oop에서 말한 추상화 -> 나한테 필요한 것만 추려내는 직업

ex)

(추상 클래스)abstract class 음식점 {
	(추상 메서드)abstract void 주문(String 주문자명, String 주문자_전화번호, String 음식, String 매운정도);
}

-추상 클래스

  • 하나 이상의 추상 메서드를 포함하는 클래스

  • 추상 메서드가 없어도 상관은 없다

  • 일반적인 인스턴스 변수, 인스턴스 메서드, 클래스 변수, 클래스 메서드를 만들어도 상관 없다

  • 인스턴스를 만들 수 없음 -> 물려줬을 때 의미를 가짐

-interface(class 대신 적는 것)

  • 순도 100%짜리 추상 클래스

  • interface안에 존재하는 모든 메서드는 추상메서드라서 abstract 생략

  • interface안에 존재하는 모든 변수는 static 상수라서 static final을 생략

  • interface는 추상 메서드와 상수만 가질 수 있다

  • 누군가로 하여금 재정의해서 사용할 수 있게 하기 위함

  • 모두가 다 사용할 수 있어야 한다

  • interface 자체의 의미가 틀을 만들어 놓는 개념이라서 그렇다

  • 능력이 없는 껍데기만 있는 메서드를 가지기 때문에 이 껍데기를 가져다가 실제로 필요한 곳에서 원하는 기능을 사용할 수 있게 해주는 느김

-implements

  • interface 다중상속 가능

-상수(final) : 변수가 죽을 때까지 고정되어 있음 = 변하지 않는 값

  • 상수는 재할당 불가능

  • 한 번 초기화 하면 재활당 불가능

  • static final이 생략되어 있음

-추상 메서드

  • 추상 메서드 있으려면 추상 클래스여야만 한다

-abstract가 필요한 이유

  • 설계

  • 의미 전달
    이 메서드는 껍데기니까 개발ㄴㄴ -> 자식이 물려받아서 오버라이딩해서 써라

  • 필수X (해도 그만 안 해도 그만) -> 분석, 클래스들간의 구조 설계할 때 사용

  • 자식들이 공통으로 사용할 경우


향상된 for문

  • for문과 크게 다를바가 없는데 표현하는 방식이 다르고 할 수 있는 상황도 제한적
    -> 제한적인 상황에서만큼은

for문
(초기값; 조건식; 스텝)

ex)

for (int i = 1; i <= 5; i++){
	System.out.println(i);

향상된 for문
(순회할 때마다의 값을 넣어줄 변수 : 순회할 요소)

ex)

int[] arr = {1,2,3,4,5};

for (int n : arr) {
	System.out.println(n);
}
  • 순회를 할 경우에는 향상된 for문 / 역순회를 할 경우에는 for문

리스트(list)

-자바에 이미 만들어져있는 인터페이스

ArrayList 클래스
-단축키 : ctrl + shift + O

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

List에서 사용가능한 메서드들 중 우리가 알아야 할 것은 정해져있지 않다
그나마 비교적 자주 쓰이는 것들
add : 추가
get : 조회
size : 크기 (배열에서의 length의 역할)


collection

: 순서에 의미가 있는 데이터들을 관리하는 문법 + 집합


Map

HashMap
key : value = 1: 1
a = key
qwe = value
ex) map.put("a", "qwe");
=a라는 이름을 가진 녀석에게 qwe를 넣을 거야

Map<Integer , Object> map = new HashMap<>();
		
		map.put(1, "qwe");
		System.out.println(map.get(1));

출력 결과 = qwe

Map<Integer , Object> map = new HashMap<>();
		
		map.put(1, "qwe");
		map.put(2, 123);
		map.put(3, 123);
		
//		for (int i = 1; i <= 3; i++) {
//			System.out.println(map.get(i));
//		}
		for (Object o : map.keySet()) {
			System.out.println(map.get(o));

= 위의 for과 향상된 for의 결과 값은 동일

0개의 댓글