목록분류 전체보기 (231)
도찐개찐
자바에서 자료구조를 편하게 관리 및 조작하기 위해 제공해주는 인터페이스 구조 (- : 연관관계) Collection은 value를 나열하며, Map은 key-value 쌍으로 이루어져 있습니다. Collection과 Map 모두 참조 자료형(객체)만 저장하고 이용할 수 있습니다. 기본 자료형의 경우 Wrapper Class를 활용하여 사용합니다.기본 자료형 (pirmitive type) 문자형 : char 정수형 : byte, short, int, long 실수형 : float, double 논리형 : boolean Wrapper Class로 기본 자료형을 참조 자료형의 형태로 변환 문자형 : Character(특수) 정수형 : Byte, Short, Integer(특수), Long 실수형 : Float..
자바는 int, long, boolean 같은 변수의 기본 자료형(Primitive Type)을 제공한다. 하지만 이런 기본자료형은 컬렉션(Collection)이나 지네릭(Generic)에서 제한적으로 사용가능하다. 따라서 자바는 각 기본 자료형에 대응되는 래퍼 클래스(Wrapper Class) 제공하고 있다. 래퍼 클래스(Wrapper Class) 자바에서는 실행의 효율성을 위해 기본 자료형(8가지) 을 직접 사용 메소드에 타입을 직접 전달할 수 없다. Primitive Type
람다함수란? 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어입니다. 현재 사용되고 있는 람다의 근간은 수학과 기초 컴퓨터과학 분야에서의 람다 대수이다. 람다 대수는 간단히 말하자면 수학에서 사용하는 함수를 보다 단순하게 표현하는 방법입니다. 람다의 특징 람다 대수는 이름을 가질 필요가 없다. - 익명 함수 (Anonymous functions) 두 개 이상의 입력이 있는 함수는 최종적으로 1개의 입력만 받는 람다 대수로 단순화 될 수 있다. - 커링 (Curring) 익명함수? 익명함수란 말그대로 함수의 이름이 없는 함수입니다. 익명함수들은 공통으로 일급객체(First Class citizen)라는 특징을 가지고 있습니다. 이 일급 객체란..
중첩 클래스 및 내부 클래스(Nested Class and Inner Class) 클래스 유형 설명 최상위 클래스 패키지 멤버 클래스 패키지의 직접적인 멤버인 보통의 클래스나 인터페이스, 자바 가상 머신에 의해 직접 인식 되는 유일한 클래스 유형 중첩된 최상위 클래스 다른 클래스에 중첩 된 클래스나 인터페이스, 반드시 static으로 선언 되어야 함. 중첩 된 인터페이스는 묵시적으로 static 임 내부 클래스 멤버 클래스 다른 클래스의 비정적 멤버로 정의 된 클래스 외부 클래스 멤버를 사용할 수 있음 정적 멤버를 가질 수 없음 지역 클래스 코드 블록 내부에서 정의 된 클래스 외부 클래스의 멤버와 final 지역 변수를 사용할 수 있음 멤버 클래스와 동일한 제약이 있음 익명 클래스 식 내무에서 사용되는 ..
제네릭의 이해 🤔 제네릭? 제네릭이 갖는 의미는 일반화이다. 여기서 일반화의 대상은 자료형이다. 제네릭이 등장하면서 자료형에 의존적이지 않은 클래스를 정의할 수 있게 되었다. 제네릭을 쓰는 이유 class Apple { public String toString() { return "I am an apple."; } } class Orange { public String toString() { return "I am an orange."; } } class Box { private Object ob; public void set(Object o) { ob = o; } public Object get() { return ob; } } class FruitAndBox2 { public static void m..
다형성(polymorphism) 다형성은 자바 개발에서 상당히 많이 활용되는 문법이다. 상속과 관련이 깊다. 여러 가지 형태를 가질 수 있는 능력 이라고 정의된다. 이렇게 보면 좀 추상적인데, 실제 코드 작성에서 사용되는 개념에 비추어 정확히 표현하면 조상 클래스의 참조 변수로 자손 클래스의 객체를 다룰 수 있는 특징 이다. Ex) class Tv { boolean power; // 전원 int channel; // 채널 void power(){power = !power;} // 전원 on/off void channelUp(){++channel;} // 채널 올리기 void channelDown(){--channel;} // 채널 내리기 } class SubtitleTv extends Tv { // Tv..
instanceof 참조변수가 참조하는 인스턴스의 실제 타입을 체크하는데 사용. 이항연산자이며 피연산자는 참조형 변수와 타입. - 연산결과는 true, false. instanceof의 연산결과가 true이면, 해당 타입으로 형변환이 가능하다. instanceof의 기본 사용방법은 "객체 instanceof 클래스" 를 선언함으로써 사용합니다. class Car { String color; int door; void drive() { // 운전 System.out.println("drive, brooo~"); } void stop() { // 멈춤 System.out.println("stop!!!"); } } class FireEngine extends Car { // 소방차 void water() { ..
클래스 형변환(Casting) 서로 상속관계에 있는 타입간의 형변환만 가능하다. 자손 타입에서 조상타입으로 형변환하는 경우, 형변환 생략가능 자손타입 → 부모타입 (Up-casting) : 형변환 생략가능 자손타입 ← 부모타입 (Down-casting) : 형변환 생략불가 우선 아래 내용과 같이 클래스 상속 관계를 정의 합니다. 'Car' 라는 부모객체를 상속받고 있는 'FireEngine', 'Ambulance' 객체 형태를 작성해 봤습니다. class Car { String color; int door; void drive() { // 운전 System.out.println("drive, brooo~"); } void stop() { // 멈춤 System.out.println("stop!!!");..