/ LECTURE

Java - Generic

이 페이지는 다음에 대한 공부 기록입니다

JAVA(자바), Python(파이썬) 기반의

AI 활용 응용 소프트웨어 개발자 양성 과정

2021.11.10. ~ 2022.05.18.

찾으시는 정보가 있으시다면
주제별reference를 이용하시거나
우측 상단에 있는 검색기능을 이용해주세요

26일차 수업

========복습========

추상화

인터페이스, 추상 클래스, 추상 메소드

정의 하려는 것을 미리 사전 정의하는 것

  • 프로그램을 만들 때 사용하는 기능들을 담은 목차

오버라이딩을 꼭 사용하도록 구조화 시키는 것

  • 부모인 인터페이스나 추상클래스를 상속받으려면 무조건 재정의 후 사용해야함

다형성

변수를 줄이기 위한 기술

하나의 객체가 여러 가지 타입을 가질 수 있는 것

부모의 클래스 타입 참조 변수로 자식의 클래스 타입의 인스턴스를 참조하도록 구현

Object A = new String();

final

변하지 못하게끔 만드는 키워드

클래스 : 상속을 금지하도록 만듬

메소드 : 상속과 무관, 메소드를 재정의할 수 없게 만듬

변수 : 상수화, 때문에 무조건 선언과 동시에 대입해서 선언해야함

try_catch

오류가 나면 프로그램이 종료되지만, 예상되는 오류를 예외처리해 과정을 통해 종료시키지 않도록 하는 기능

프로그램의 전체를 알아야 정확하게 오류의 위치에 구성하기 때문에 적절하게 구성할 필요가 있음

클래스 둘러보기

wrapper : 기본 자료타입을 참조 자료 타입으로 변경할 수 있도록 도와주는 클래스

StringBuffer : String의 불변성 때문에 생기는 과부하를 피하기 위한 가변성을 가진 자료 타입

그 외 Math, String, Arrays, Calendar 등

======== 끝 ========

26일차 수업

generalize

하나의 조건으로 모든 것에 적용한다

클래스나 메소드들을 사용할 때 내부에서 사용하는 데이터 타입을 미리 설정

< > 괄호 안에 데이터 타입을 정의

클래스 형태로 작성해야하고, 기본자료형 타입의 경우 wrapper class를 이용한다

괄호의 위치는 클래스 명 뒤에 작성

Object<String> a = new Obeject<String>();
	제너릭에 쓰는 파라미터
		클래스 외부에서 선언하는 자료형, 호출할  적는 인스턴스의 타입으로 구성해줌
	ex)
class Box<E>{---}
public class Main{
	public static void main(String[] args){
		Box<Apple> abox = new Box<Apple>();
		// 제너릭 선언		제너릭 대입
		Box<Orange> obox = new Box<Orange>();
		abox.set(new Apple());
		obox.set(new Orange());
		// ClassCastException 과 같은 런타임 에러 위험 요소가 없음, 형변환 과정도 필요하지 않음
	}
}

제너릭 매개변수 개수 상관 없음, comma로 구분

매개변수 이름 일반적인 규칙

  • 한글자 대문자

  • E : element

  • T : type

  • N : number

  • K : key

  • V : value

대입 연산자“=” 오른쪽 diamond 기호에 들어가는 값은 생략이 가능함

class test<A extends Number, B>{---}
제너릭 매개변수는 클래스나 Number 인터페이스와 같이 부모를 상속받아 제한할  있다
	제너릭 메소드
	ex)
public static <T> Box3<T> makeBox(T o) {
// 반환타입이 Box3<T> 이지만 컴파일러 입장에서는 모르기 때문에 앞쪽에서 한번 더 T가 제너릭임을 선언
      return null;
}

Collection framwork

데이터를 저장하는 구조와 데이터를 처리하는 알고리즘 등을 구조화 해서 클래스로 구현한 것

다수의 데이터를 효과적으로 처리하는 표준화된 방법 제공

라이브러리와 차이점

  • 라이브러리

  • 클래스에 있는 정보를 가져와서 사용

  • 프레임 워크

    • 권한이 없고, 항상 프레임 워크 안에 있는 클래스에 맡겨야함

    • 지정된 변수와 지정된 함수로만 내용을 채워야함

    • 제어의 역전(IoC), 흐름을 프레임 워크가 가지고 있고, 우리는 필요한 코드를 전달

ArrayList

배열 기반 자료구조

ArrayList<String> arr = new ArrayList<>();
arr.add(Toy);	// 데이터 집어넣기
arr.size();	// 크기 확인하기
arr.get();	// 데이터 가져오기