객체지향 프로그래밍1 변수와 메서드 선언위치에 따른 변수의 종류 클래스 변수 인스턴스를 생성하지 않아도 '클래스 이름.클래스 변수' 와 같은 형식으로 사용가능 클래스 변수는 모든 인스턴스가 공통된 저장공간을 공유, 한 클래스의 모든 인스턴스들이 공통적인 값
JDK, JRE, JVM JDK Java Development Kit의 약자 Java 애플리케이션의 개발을 위한 툴 세트입니다. JRE 및 기타 개발 도구로 구성됩니다. 이러한 개발 도구에는 컴파일러 (javac), 아카이버 (jar), 문서 생성기 (javadoc
기본형 매개변수와 참조형 매개변수 자바에서 메서드를 호출할 때 매개변수가 원시타입이면 값이 복사되고 참조타입이면 주소가 복사됩니다 > 원시타입 매개변수 : 변수의 값을 읽기만 할 수 있다.(read only) 참조형 매개변수 : 변수의 값을 읽고 변경할 수 있다.(r
생성자란? 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드 인스턴스 변수 초기화 작업에 주로 사용되며, 인스턴스 생성시에 할 작업을 위해서도 사용된다. > 1. 생성자의 이름은 클래스 이름과 같다. 생성자는 리턴 값이 없다. 생성자도 메서드이기 때문에 오버로딩
상속 상속의 정의와 장점 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다 상속 구현할 때는 extends 키워드를 사용 > 조상클래스 부모
자바에서 변수들의 초기값 자바에서 변수들은 기본값을 갖고 있다 문자형 char : ' ' (공백) 정수형 byte : 0 short : 0 int : 0 long : 0L 실수형 float : 0.0f double : 0.0 논리형 boolean : false 이 값들은 인스턴스 변수 선언시 초기화를 해주지 않았을 때 컴파일러가 자동으로 값을 할당해주는데...
다형성이란? > 객체지향에서 다형성이란 '여러가지 형태를 가질 수 있는 능력' Tv 클래스와 이를 상속받는 CaptionTv 클래스 지금까지는 생성된 인스턴스를 같은 타입의 참조변수로만 사용했다 조상클래스 타입에 자손클래스 인스턴스 할당 서로 상속관계에 있는 클래스들은 조상클래스 타입의 참조변수로 자손클래스 변수의 인스턴스를 참조하는것이 가능하다 뭐...
참조변수와 인스턴스의 연결 조상 클래스에 선언된 멤버변수와 같은 이름의 인스턴스 변수를 자손 클래스에 중복으로 정의했을 때, 조상타입의 참조변수로 자손 인스턴스를 참조하는 경우와 자손타입의 참조변수로 자손 인스턴스를 참조하는 경우에는 서로 다른 결과를 얻는다. super 키워드를 사용하면 어떻게 출력될까 매개변수의 다형성 메서드의 매개변수에도 다형적인 ...
내부 클래스의 제어자와 접근성 인스턴스클래스와 스태틱 클래스는 외부 클래스와 멤버변수와 같은 위치에 선언되며, 멤버변수와 같은 성질을 갖는다. 내부 클래스도 클래스이기 때문에 abstract나 final과 같은 제어자를 사용할 수 있을 뿐만 아니라, 멤버변수들처럼 private,protected과 접근제어자도 사용이 가능하다. ex1 내부 클래스 중에서 ...
람다식이란? 람다식이란 간단히 말해서 메서드를 하나의 "식"으로 표현한 것이다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 "익명함수"라고도 한다. 메서드보다 간결하면서 이해하기 쉽다 메서드를 만들기 위해서 클래스를 만들고 객체를 생성하지 않아도 그 역할을 대신할 수 있다 람다식은 메서드의 매개변수로 전달되어지는 것이 가능...
링크드 리스트 배열은 가장 기본적인 형태의 자료구조로 구조가 간단하며 사용하기 쉽다. 인덱스로 접근하기 때문에 접근시간이 빠르다는 장점을 가지고 있지만 다음과 같은 단점도 있다. 크기를 변경할 수 없다. 크기를 변경할 수 없으므로 새로운 배열을 생성해서 데이터를 복사 충분히 큰 크기의 배열을 생성할 경우 메모리 낭비 비순차적인 데이터의 추가 또는 삭제에...
Stack과 Queue 스택(Stack): LIFO구조. 마지막에 저장된 것을 제일 먼저 꺼내게 된다. 큐(Queue): FIFO구조. 제일 먼저 저장한 것을 제일 먼저 꺼내게 된다. Stack의 메서드 | 메서드 | 설명 | | ---...
Arrays클래스에는 배열을 다루는데 유용한 메서드가 정의되어 있다. 배열의 복사 - copyOf(), copyOfRange() copyOf()는 배열 전체를, copyOfRange()는 배열의 일부를 복사해서 새로운 배열을 만들어 반환한다. 배열 채우기 - fill(), setAll() fill()은 배열의 모든 요소를 지정된 값으로 채운다. setA...
Comparator와 Comparable은 모두 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의한다. Comparable을 구현하고 있는 클래스들은 같은 타입의 인스턴스끼리 서로 비교할 수 있는 클래스들, 주로 Integer와 같은 wrapper클래스와 String, Date, File과 같은 것들이며 기본적으로 오름차순, 즉 작은 값에서부터 큰 값의...
지네릭스란? 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. > 지네릭스의 장점 타입 안정성을 제공한다. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해 진다. 지네릭 클래스의 선언 지네릭 타입은 클래스와 메서드에 선언할 수 있는데, 먼저 클래스에 선언하는 지네릭 타입에 대해서 알아보자. ...
열거형이란? 서로 관련된 상수를 편리하게 선언하기 위한 것 Java의 열거형은 C언어의 열거형과 다르게 열거형이 갖는 값 뿐만 아니라 타입까지 관리한다. 기존의 상수의 값이 바뀌면, 해당 상수를 참조하는 모든 소스를 다시 컴파일 해야한다. 하지만 열거형 상수를 사용하면 기존의 소스를 다시 컴파일하지 않아도 된다. 열거형의 정의와 사용 열거형 정의 -> 괄...
열거형에 멤버 추가하기 불연속적인 열거형 상수의 경우, 원하는 값을 괄호()에 적는다 그리고 지정된 값을 저장할 수 있는 인스턴스 변수와 생성자를 새로 추가해주어야 한다. 필요에 따라 하나의 열거형 상수에 여러 값을 지정할 수 있다. 이에 맞게 인스턴스 변수와 생성자 등을 새로 추가해주어야 한다. 열거형에 추상메서드 추가하기 Transportation은...
스트림이란? Collection이나 Iterator 같은 인터페이스를 이용해서 컬렉션을 다루는 방식을 표준화 했지만, 각 컬렉션 클래스에는 같은 기능의 메서드들이 중복해서 정의되어 있다. List를 정렬할 때는 Collection.sort()를 사용해야하고, 배열을 정렬할 때는 Arrays.sort()를 사용해야 한다. 이렇게 데이터 소스마다 다른 방식으...
스트림 자르기 Stream skip(long n) // 처음 n개의 요소 건너뛰기 Strema limit(long maxSize) // 스트림의 요소를 maxSize개로 제한 스트림 요소 걸러내기 distinct()는 스트림에서 중복된 요소들 제거 filter()는 주어진 조건(Predicate)에 맞지 않는 요소를 걸러낸다. 스트림 정렬 Stream...
collect() 스트림의 요소를 수집하는 최종 연산 collect()가 스트림의 요소를 수집하기 위한 수집 방법이 정의된 것이 collector. collector는 Collector인터페이스를 구현한 것. collect() 스트림의 최종 연산. 매개변수로 collector가 필요하다. Collector 인터페이스. collector는 이 인터페이스를 ...