본문 바로가기
  • 비둘기다
  • 비둘기다
  • 비둘기다

전체 글53

[자바 JAVA] 제네릭과 컬렉션 프레임워크 제네릭 타입 제네릭이라는 말은 영어 general에서 나온 말로 '포괄적인'이라는 뜻입니다. 즉, 여태까지 하던 방법처럼 계속 타입을 선언하고 변환하는 과정을 거치는 것이 아니라 이 모든 과정이 필요 없게 한 가지 키워드에 모든 것을 함축해놓은 타입을 의미합니다. 제네릭 타입이란, 타입을 파라미터로 가지는 클래스와 인터페이스를 의미합니다. 제네릭 타입은 표시로 선언합니다. 제네릭은 기존의 타입들을 포괄적인 범위로 변경해주는 역할이기 때문에 완전히 생소한 단어는 없습니다. 기본 타입이라고 한다면 int, double, char, float 등이 있습니다. 그러면 제네릭 타입에서의 파라미터는 Integer, Double, Character, Float 등이 됩니다. 이들은 모두 기본 타입의 풀네임과 .. 2022. 12. 7.
[자바 JAVA] 예외처리 자바의 오류는 예외와 에러로 나뉩니다. 예외는 자바 프로그램에서 실행 중에 발생할 수 있는 경미한 오류들을 말합니다. 이러한 예외들은 적절한 처리 모듈을 추가하여 발생한 문제를 복구 가능합니다. 에러는 메모리나 내부의 심각한 문제로 복구가 불가능한 오류입니다. 즉, 코드를 다시 수정해야 하는 경우이죠. 간혹 가다가 디버깅을 해보게 되면 콘솔 창에 빽빽한 글자로 Exception이라는 글자가 들어가 있는 경우를 보게 됩니다. 이가 바로 예외가 발생한 경우입니다. 예외가 발생하면 바로 프로그램이 중단되므로 발생한 이후의 프로그램을 실행하지 않습니다. 그리고 콘솔 창에 예외 클래스의 이름과 예외가 발생한 프로그램 소스와 줄 번호가 표시됩니다. 그중 여러분들이 한 번쯤은 보셨을 법한 예외들을 소개해보겠습니다. .. 2022. 12. 6.
[자바 JAVA] 자바의 람다식 자바에서의 람다식이란 일반적인 람다식(lambda calculus)에서 유래한 것이죠. 람다식이란, 수학의 함수를 단순하게 표현하는 하나의 방법입니다. 예를 들어 f(x, y) = x + y라는 식이 있을 때 이를 수학의 람다식으로 바꾸면 (x, y)->x + y가 됩니다. 여기서 f가 사라졌기 때문에 이는 이름 없는 함수가 되는 것이죠. 여기에 숫자를 대입한다면 ((x,y) -> x + y) (2, 3) = 2 + 3 = 5와 같이 됩니다. 위가 자바에서의 람다식의 구조입니다. 애로우 토큰은 매개변수 리스트와 함수를 분리하는 역할을 합니다. 함수의 바디는 중괄호 {}로 둘러쌉니다. 한 문장밖에 안 되는 경우는 생략해도 무관하지만 되도록이면 그냥 넣으시는 걸 추천합니다. 함수 바디 부분은 말그대로 '함수.. 2022. 12. 6.
[자바 JAVA] 중첩 클래스 중첩 클래스 중첩의 대상은 클래스가 들어갈 수도 있고, 인터페이스가 들어갈 수도 있습니다. 클래스 안에 들어간 클래스는 중첩 클래스, 클래스 안에 들어간 인터페이스는 중첩 인터페이스가 되는 것입니다. class 외부 { class 내부 {} } class 외부 { interface 내부 {} } 밑의 중첩 인터페이스는 그래픽 프로그래밍에서 자주 이용한다고 하네요. 중첩 클래스 같은 경우에는 외부 클래스에 private멤버가 있다 하더라도 자유롭게 접근할 수 있다는 특징이 있습니다. 중첩 클래스는 멤버 클래스와 지역 클래스로 나뉘며 멤버 클래스는 정적 멤버 클래스와 인스턴스 멤버 클래스로 나뉩니다. class 외부 클래스 { class 멤버 클래스 {} interface 중첩 인터페이스{} } class .. 2022. 12. 6.
[자바 JAVA] 추상클래스와 인터페이스 차례 1. 추상 클래스 2. 인터페이스의 개념 3. 인터페이스의 구조 4. 인터페이스의 특징들 추상 클래스 '추상적이다'라는 것은 구체성이 없이 사실이나 현실에서 멀어져 막연하고 일반적인 것들을 뜻합니다. 이를 자바 언어의 관점에서 해석을 해보자면 그냥 이름만 있는 빈 껍데기만 존재한다는 것입니다. 용어들을 대입해 더욱 자세하게 가보자면 무언가의 역할을 할 클래스를 선언만 하고 그 내부는 실체 없이 비어있다는 것이죠. 예를 들어 창업을 하려는 친구가 찾아와서 "야, 나 회사 차릴 거야."라고 말합니다. 그랬더니 내가 "무슨 회사?"라고 물어봅니다. 그러니 친구가 하는 말이 "그건 모르겠고 어쨌든 할 거야."라고 합니다. 추상 클래스란 이러한 상황입니다. 창업하려는 회사가 IT에 대한 건지, 무역에 관한 .. 2022. 12. 6.
[자바 JAVA] 다형성 다형성이란 여러 부분에서 정의가 내려집니다. 생물학적인 정의를 따르면 같은 종이면서도 다른 형질을 띠는 현상이라고 합니다. 예를 들면, 암수에 따라 크기가 다른 생물이라던지, 갈기의 유무가 있는 사자라던지 등이 되겠네요. 자바에서 다형성을 사용하는 이유는 하나의 기능으로 여러 가지 명령을 수행하기 위함입니다. 다형성은 자바를 하시면서 겪어보셨을 데이터 타입 변환과 유사한 개념입니다. 저희는 데이터 타입 변환을 할 때 자동 형 변환과 강제 형 변환을 알아봤었는데 이 다형성도 이와 마찬가지로 객체의 타입을 변환하는 행위입니다. 객체의 타입을 변환한다라...먼저 클래스란 객체 지향 프로그래밍에서 데이터와 조작 가능한 메서드를 담고 있는 객체의 추형 즉, 형태입니다. 예를 들어 피보나치수열을 계산해주는 클래스 .. 2022. 12. 5.