본문 바로가기

프로그래밍/Java

(32)
[Java]Collection Collection이란 자바에서 다수의 데이터를 쉽고 효과적으로 처리할 수 있도록 제공하는 기능이다. 종류 List Set Map 이 중에서 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속 받지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의된다. 특징 인터페이스 특징 구현 클래스 List 1. 순서가 있는 데이터의 집합. 2. 데이터의 중복 허용. 1. Vector 2. ArrayList 3. LinkedList 4. Stack 5. Queue Set 1. 순서가 없는 데이터의 집합. 2. 데이터의 중복을 허용하지 않음. 1. HashSet 2. TreeSet Map 1. 키와 값의 한 쌍으로 이루어지는 데이터의 집합. 2. 순서가 없는 데이터의 집합. 3. 키는 중복..
[Java] 업캐스팅, 다운캐스팅 캐스팅이란 타입의 변환을 말하며 형변환이라고도 한다. 자바에서 상속관계에 있는 클래스는 캐스팅, 즉 형변환이 가능하다. 자식 클래스가 부모 클래스 타입으로 형변환되는 것을 업캐스팅이라 하며, 반대로 부모 클래스가 자식 클래스 타입으로 캐스팅 되는 것을 다운 캐스팅이라 한다. 업캐스팅이란 부모클래스를 상속하는 자식클래스는 부모의 모든 멤버를 사용할 수 있게된다. 때문에 자식 클래스는 부모클래스로 취급받을 수 있게된다. 그렇듯 자식클래스를 부모클래스 타입으로 형변환 하는 것을 업캐스팅이라 한다. 예를들어, 생물(부모클래스)이라는 큰 범주안에 사람(자식클래스)가 포함된다. 이때 '사람은 사람이라' 라고 하지 않고 '사람은 생물이다' 라고 하는 것이 업캐스팅이다. 업캐스팅의 특징 - 부모클래스 타입으로 업캐스팅..
[Java]접근 지정자 접근 지정자란 객체 지향에서 정보은닉이란 사용자가 굳이 알 필요가 없는 정보는 사용자로부터 숨겨야 한다는 개념이다. 그렇게 함으로써 사용자는 언제나 최소한의 정보만으로도 프로그램을 손쉽게 사용할 수 있게 된다. 이러한 기능을 구현하기 위해 접근지정자 기능을 사용하면 된다. 접근지정자 종류 - public 가장 넓은 범위의 접근 지정자로 해당 객체를 사용하는 프로그램은 어디서나 직접 접근할 수 있다. private 멤버와 프로그램 사이의 인터페이스 역할을 수행할 수 있다. - default 별도로 접근지정자를 지정하지 않을경우 default가 기본값으로 지정된다. 패키지단위로 접근을 제한함으로, 같은 패키지 내에서는 전부 접근 가능하고 다른 패키지에서는 접근이 불가능하게 된다. - protected 같은패..
[Java]Getter와 Setter 자바에서 private 지정자를 사용하게되면 같은 클래스 내부에서는 접근할 수 있지만 다른 클래스나 패키지에서는 접근 및 데이터 수정이 불가능하게된다. 하지만 프로그램에 따라서 외부 클래스나 패키지에서 접근을 하게 될 경우가 생기는데, 이때 외부에서 private 지정자에 접근 할 수 있도록 한것이 Getter와 Setter이다. Setter란 private로 외부의 접근이 차단된 자료에 접근하여 값을 설정하게 해주는 메소드이다. Getter란 Setter메소드를 통해 값이 설정된 private 변수를 반환하여 사용하는 메소드이다. 사용 예시 아주 간단한 예시를 통해 Getter와 Setter의 용도를 알아보자. class A { private int x; private String s; public i..
[Java]상속 상속이란 현실 세계와 마찬가지로 자바에도 자식과 부모의 개념이 있으며, 그 관계에서의 상속 또한 존재한다. 자바에서의 상속도 말 그대로 자식이 부모로부터 무언가를 물려받는 개념이다. 현실 세계에서 부모는 자식들에게 돈이나, 물건 등을 상속하여 건내주고, 자바 세계에서는 부모가 자식들에게 변수와 메소드 등을 물려줄 수 있다. * 단 부모 클래스의 멤버 접근지정자가 private일 경우 상속 불가 상속을 쓰는 이유 전자기기나 자동차 등의 객체를 만들 때 각각의 객체 마다 매번 새롭게 설계하고 만들고자 하면 작업이 비효율적이게 된다. 그래서 공통된 부분을 한데 모아 부모 클래스로 만들고, 필요에 따라 부모클래스에서 하나씩 가져와 사용하는 자식 클래스를 두어 객체를 만들어 내는 것이다. 자동차를 예로 들면, 모..
[Java]static static이란 자바를 하다보면 static이라는 키워드를 심심찮게 볼 수있다. 자바에서 static이 붙은 변수나 메소드를 정적 변수(메소드), 클래스 변수(메소드), 스태틱 변수(메소드) 등 여러 이름으로 부른다. 반대로 static이 붙지 않은 변수(메소드)는 객체 변수(메소드), 인스턴스 변수(메소드)라 한다. 그렇다면 staitc이 붙은 정적 멤버(변수, 메소드)을 사용하는 이유, 특징은 무엇인가. 정적 멤버는 기본적으로 공유한다는 데에 포커스를 두고 접근하면 되겠다. 쉽게 말해 정적 멤버로 만들어지면 누구나가 사용할 수 있으며 그 상태 또한 공유 되는것이다. 예를들어 같은 반 철수와 영희가 있다. 여기서 반에 있는 칠판은 정적 변수이고, 철수와 영희가 각자 가지고 있는 공책은 객체 변수라 할 ..
[Java]import import문 다른 패키지(폴더)에 속한 클래스를 사용하기 위해서는 클래스 이름 앞에 패키지의 경로까지 포함한 풀네임을 명시해서 사용해야 한다. 하지만 매번 패키지 명을 붙여서 작성하는 것은 귀찮고 비효율적인 일이다. 그래서 자바에서는 소스코드에 import문을 통해 미리 사용하고자 하는 클래스의 패키지를 명시해줌으로서, 코드를 작성할 때 클래스 이름에서 패키지 명을 생략할 수 있게 된다. import문의 선언 방법 import문은 package문 다음에, 그리고 클래스 선언 문 이전에 위치해야 한다. import 패키지이름.클래스이름; 해당 패키지의 특정 클래스만을 사용하고자 할때 사용한다. import 패키지이름.*; 해당 패키지의 모든 클래스를 클래스이름만으로 사용하고 싶을 때 사용한다. impor..
[Java]패키지 패키지란 자바에서 패키지란 클래스와 인터페이스의 집합을 의미한다. 서로 관련이 있는 클래스나 인터페이스를 함께 묶어 파일을 효율적으로 관리할 수 있게된다. 또한, 협업 시 서로 작업한 클래스 사이에서 발생할 수 있는 이름 충돌문제까지 패키지를 이용하면 피할 수 있게된다. 쉽게말해 패키지는 우리가 흔히 사용하는 폴더와 같은 개념이다. 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉토리에 포함되어 있다. 우리가 폴더에 또 다른 폴더를 만들 듯이 패키지에 또 다른 패키지를 포함 할 수 있다. 이때 디렉토리의 계층구조는 .(점) 으로 구분된다. ex) java.lang.String (= java패키지 안에 lang패키지 안에 String클래스가 있는 구조이다.) 패키지 선언 특정 clas..