August 31, 2022
추상 클래스 구현 코드 없이 메서드의 선언만 있는 추상 메서드(abstract method)를 포함한 클래스이다. 상속만을 하기위해 만들어졌다고 봐도 무방하다. 메서드 선언(declaration) : 반환타입, 메서드 이름, 매개변수로 구성 메서드 정의(definition) : 메서드 구현(implementation)과 동일한 의미 구현부(body) 를 …
August 31, 2022
객체 지향 설계의 중요성을 느끼고 다시 공부중이다 ...ㅎㅎ 객체를 설계할 때는 내부의 메서드 공개 여부를 결정하는 것도 중요하다. 오늘은 이와 관련해서 짧게 학습을 해보자! 접근 제어 지시자와 정보은닉 📌 접근 제어 지시자 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자에 접근할 수 있는지를 결정하는 키워드이다. private : 같은 클래스 내부…
August 31, 2022
클래스 상속 extends 키워드 뒤에는 하나의 클래스만이 따른다. 자바는 단일 상속만을 지원한다. 메서드 제정의(오버라이딩) 주의점 : 기존 메서드와 반환값, 메서드 이름, 매개변수의 타입과 개수가 똑같아야 함. @Override 를 사용해 메서드 오버라이딩을 할 수 있다. 가상 메서드 형변화(업캐스팅)가 되었을 때 변수의 타입이 Parent라도 메서드…
August 31, 2022
static 변수 인스턴스들 사이에서 공통으로 특정 변수가 필요한 경우에 사용된다. ex) 학생마다 새로운 학번 생성 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당한다. 즉, 클래스 변수이다. == 인스턴스 생성과는 상관없이 사용할 수 있다. 클래스 이름으로 직접 참조가 가능하다. (Student.se…
September 01, 2022
Class 클래스 자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일이 생성됨 Class 클래스는 컴파일 된 class 파일을 로드하여 객체를 동적 로드하고, 정보를 가져오는 메서드가 제공됨 Class.forName("클래스 이름") 메서드로 클래스를 동적으로 로드 함 📌 동적 로딩 컴파일 시에 데이터 타입이 binding 되는 것이 아닌, 실행…
September 01, 2022
Collection 프레임워크 프로그램 구현에 필요한 자료구조(Data Structure)를 구현해 놓은 JDK 라이브러리 java.util 패키지에 구현되어 있음 개발에 소요되는 시간을 절약하면서 최적화 된 알고리즘을 사용할 수 있음 📌 Collection 인터페이스 하나의 객체를 관리하기 위한 메서드가 선언된 인터페이스 String, String, …
September 01, 2022
TreeSet 클래스 객체의 정렬에 사용하는 클래스 Set 인터페이스를 구현하여 중복을 허용하지 않고, 오름차순이나 내림차순으로 객체를 정렬할 수 있음 내부적으로 이진검색트리(binary search tree)로 구현됨 이진검색트리에 저장하기 위해 각 객체를 비교해야 함 루트 왼쪽 노드는 루트보다 값이 작고, 오른쪽 노드는 루트보다 값이 크다. 비교 대상…
September 01, 2022
내부클래스(inner class) 클래스 내부에 선언한 클래스 보통 다른 외부클래스에서 사용할 일이 거의 없는 경우에 생성함 중첩클래스라고도함 종류는 인스턴스 내부 클래스, 정적(static) 내부 클래스, 지역(local) 내부 클래스, 익명(anonymous) 내부 클래스가 있음 📌 인스턴스 내부 클래스 내부적으로 사용할 클래스를 선언 (private…
September 01, 2022
인터페이스 기본적으로 모든 메서드가 추상 메서드이다. 모든 변수는 상수로 선언된다. public static final (직접 키워드를 넣지 않아도 컴파일 과정에서 자동으로 추가된다.) 인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 할 수 있음 인터페이스 Calc와 이를 타입 상속받은 CompleteCalc 클래스가 있을 때 다음이…
September 01, 2022
Generic 자료형 클래스에서 사용하는 변수의 자료형이 여러개 일수 있고, 그 기능(메서드)은 동일한 경우 클래스의 자료형을 특정하지 않고 추후 해당 클래스를 사용할 때 지정 할 수 있도록 선언하는 자료형이다. 실제 사용되는 자료형의 변환은 컴파일러에 의해 검증되므로 안정적인 프로그래밍 방식이다. 컬렉션 프레임워크에서 많이 사용되고 있음 📌 예시 - …