JAVA/JAVA 기본정리 18

ArrayList : 저장 순서가 유지되고 중복을 허용하는 컬렉션 클래스

ArrayList - 컬렉션 프레임웍에서 가장 많이 사용되는 컬렉션 클래스일 것이다. - List인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다. - Object배열을 이용해서 데이터를 순차적으로 저장한다. ArrayList() : 크기가 10 인 ArrayList를 생성 ArrayList(Collection c) boolean add(Object o) void add(int index, Object element) void clear() boolean contains(Object o) Object get(int index) int indexOf(Object o) Iterator iterator() Object remove(int index) Object set(int index..

컬렉션 프레임웍 / Collection인터페이스 / List / Set/ Map

컬렉션 프레임웍 (Collections Framework) ? - 데이터 군을 저장하는 클래스들을 표준화한 설계 - 다수의 데이터(=데이터 그룹)을 표준화된 프로그래밍 방식 - JDK1.2 부터 컬렉션 프레임웍이 등장하면서 다양한 종류의 컬렉션 클래스가 추가되고, 모든 컬렉션 클래스를 표준화된 방식으로 다룰수 있도록 체계화되었다. 컬렉션 프레임웍에서는 컬렉션 데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고, 3개의 인터페이스를 정의하였다 -> List / Set / Map - List와 Set의 공통적인 부분을 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다. * 컬렉션 프레임웍의 핵심 인터페이스와 특징 List 순서가 있는 데이터 집합. 데이터의 중복을 허용한다. ex) Arra..

생성자에서 다른 생성자 호출하기/ 참조변수 this와 생성자 this()

참조변수 this 인스턴스 자신을 가리키는 참조변수. 인스턴스의 주소가 저장되어 있다. 생성자를 포함한 모든 인스턴스메서드에는 참조변수 'this'가 지역변수로 숨겨진 채로 존재한다. ex. long a, b; -> this.a, this.b 가 진짜 이름이지만 this를 생략해서 사용 가능하다. static메서드 에서는 this 사용불가하다. 인스턴스멤버만 this를 사용할 수 있다. 생성자와 모든 인스턴스메서드 내에서 사용가능하다. this(), this(매개변수) - 생성자. 같은 클래스의 다른 생성자를 호출할 때 사용한다. * this와 this()는 비슷하게 생겼을 뿐 완전히 다른 것이다. this는 '참조변수'이고 this()는 '생성자'이다. this : 인스턴스 자신을 가리키는 참조변수. ..

생성자 ( Constructor) / 기본생성자/ 매개변수가 있는 생성자

생성자 ? 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드' - 인스턴스 초기화 : 인스턴스 변수들을 초기화 하는 것 생성자의 조건 1. 이름이 클래스 이름과 같아야 한다. 2. 리턴값이 없다. (void 안붙임) 생성자도 오버로딩이 가능하므로 하나의 클래스에 여러개의 생성자가 존재할 수 있다. 연산자 new가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것이 아니다. 생성자는 단순히 인스턴스변수들의 초기화에 사용되는 특별한 메서드일 뿐이다. Card c = new Card(); Card클래스의 인스턴스를 생성하는 코드의 수행되는 과정은 단계별로 아래와 같다. 1. 연산자 new에 의해서 메모리(heap)에 Card클래스의 인스턴스가 생성된다. 2. 생성자 Card()가 호출되어 수..

오버로딩 (overloading) / 가변인자(varargs) : 매개변수 개수를 동적으로 사용할 수 있는 기능

오버로딩? 한 클래스 안에 같은 이름의 메서드 여러개 정의하는 것. - 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. void println() void println(boolean x) void println(char x) 오버로딩이 성립하기 위한 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수 개수 또는 타입이 달라야 한다. 3. 반환 타입은 영향이 없다. 오버로딩이 아닌 경우 //매개 변수의 타입과 개수가 일치하기 때문에, 리턴타입은 상관없으므로 오버로딩으로 간주되지 않는다. int add(int a, int b) { return a+b;} long add(int a, ..

클래스메서드(static 메서드) 와 인스턴스 메서드 / 클래스멤버와 인스턴스멤버간의 참조와 호출

1. 인스턴스 메서드 인스턴스 생성 후, '참조변수.메서드이름()' 으로 호출 인스턴스 멤버(iv,im)와 관련된 작업을 하는 메서드 메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드. 메서드 내에서 인스턴스 변수(iv) 사용 가능 2. static 메서드(클래스메서드) : 메서드 앞에 static이 붙은 것 객체생성 없이 '클래스이름.메서드이름()'으로 호출 ex. Math.random() 또는 Math.round() 인스턴스 멤버(iv,im)와 관련없는 작업을 하는 메서드 인스턴스와 관계없는 메서드를 클래스메서드로 정의한다. 메서드 내에서 인스턴스 변수(iv) 사용 불가 * 가장 큰 차이점은, static 메서드는 객체 생성없이 호출 가능하고 인스턴스메서드는 인스턴스 생성 후 호출 해야 ..

클래스의 정의/ 변수와 메서드/ 클래스변수/ 인스턴스 변수/ 지역변수

클래스의 관점 설계도 데이터+ 함수 사용자 정의 클래스의 또 다른 정의 : 클래스는 데이터와 함수의 결합의 의미를 가진다. 또는 사용자정의 타입의 의미도 있다. 프로그래밍 언어에서 데이터 처리를 위한 데이터 저장 형태의 발전과정은 아래와 같다. 1. 변수 : 하나의 데이터를 저장할 수 있는 공간 2. 배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간 3. 구조체 : 서로 관련된 여러 데이터 (종류관계 X)를 하나로 저장할 수 있는 공간 4. 클래스 : 데이터와 함수의 결합 ( 구조체+ 함수) 클래스를 사용함으로서 더 객체지향적인 언어를 사용할 수 있다. 변수와 메서드 변수는 클래스변수, 인스턴스 변수, 지역변수 세종류가 있다. 변수의 종류를 결정짓는 중요한 요소는 ' 변수의 선언된 위치'이..

객체지향 언어 OOP ( object oriented programming)

객체지향 언어의 큰 특징 4가지 1. 캡슐형 2. 상속 3. 추상화 4. 다형성 코드의 재사용성이 높다 : 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 코드의 관리가 용이하다 : 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 신뢰성이 높은 프로그래밍을 가능하게 한다 : 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하여, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. -> 재사용성과 유지보수 그리고 중복된 코드의 제거. 세 가지 관점에서 보면 쉽게 이해할 수 있다. 클래스와 객체 그리고 인스턴스 클래스 ( Class ) : '객체를 정의해 놓은 것'. 또는 '객체의 설계도 또는 틀' 객체 : '실제로 존재하는..