본문 바로가기
728x90

Java121

[JAVA 기초] 12 컬렉션 프레임워크 (2) *Set 인터페이스 순서와 상관없이 중복을 허용하지 않는 경우에 사용 *HashSet 클래스 집합 자료 구조. 중복 허용 X boolean remove(Object o) : 매개변수로 받은 객체를 삭제하고 삭제 여부를 true, false로 반환 *TreeSet 클래스 자료 중복 허용 X. 결과 값 정렬 *이진 검색 트리 트리 : 자료 사이의 계층 구조를 나타내는 자료 구조 노드 : 각 자료가 들어가는 공간 왼쪽 자식 노드는 부모 노드보다 항상 작은 값을 가짐 오른쪽 자식노드는 부모 노드보다 항상 큰 값을 가짐 *Comparable 인터페이스와 Comparator 인터페이스 기준 값을 가지고 오름차순 정렬을 구현하는 인터페이스 - Comparable 인터페이스 : 자기 자신과 전달받은 매개변수를 비교 -.. 2022. 8. 19.
[JAVA 기초] 12 컬렉션 프레임워크 (1) *제네릭(Generic) - 제네릭 프로그래밍 : 어떤 값이 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍하는 것 참조 자료형이 변환될 때 컴파일러가 검증하여 안정적 *제네릭의 필요성 여러 참조 자료형이 쓰일 수 있는 곳에 특정한 자료형을 지정하지 않고 클래스나 메서드를 정의한 후 사용하는 시점에 어떤 자료형을 사용할 것인지 지정하는 방식 *제네릭 클래스 정의하기 public class GenericPrinter{ private T material; public void setMeterial(T material) { this.material = material; } public T getMeterial(){ return material; } } 여러 자료형으로 바꾸어 사용할 .. 2022. 8. 18.
[JAVA 기초] 11 기본 클래스 *java.lang 패키지 String, Integer와 같은 많이 사용하는 클래스들이 포함된 패키지 컴파일할 때 자동으로 Import문이 추가됨 *Object 모든 자바 클래스의 최상위 클래스. 모든 클래스는 Object 클래스를 상속 받음 *toString 메서드 String toString() : 객체를 문자열로 반환 클래스이름@해시코드값 *equals() 메서드 boolean equals(Object obj) : 두 인스턴스가 동일한지 여부를 반환 인스턴스 주소를 비교함 *hashCode() 메서드 int hashCode() : 객체의 해시 코드 값을 반환 *clone() 메서드 Object clone() : 객체를 복제하여 동일한 멤버 변수 값을 가진 새로운 인스턴스를 생성 객체 원본을 유지해 .. 2022. 8. 16.
[JAVA 기초] 10 인터페이스 *인터페이스 - 인터페이스 : 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할 추상 메서드와 상수로만 이루어져 있음 *implements 예약어 - implements : 인터페이스에 선언한 기능을 클래스가 구현한다는 의미 클래스에서 인터페이스를 구현할 때 해당 인터페이스 내의 추상 메서드를 구현하거나 추상 클래스로 만들어야 한다 *인터페이스 구현과 형 변환 인터페이스도 마찬가지로 상속 관계에서 하위클래스는 상위 클래스 자료형으로 묵시적 형 변환할 수 있다 상위 클래스형으로 선언한 변수에서는 상위 클래스의 메소드만 사용할 수 있다 *인터페이스의 역할 클라이언트 프로그램에 어떤 메서드를 제공하는지 미리 알려주는 명세 또는 약속의 역할을 한다 구현 코드 전체를 보지 않고 인터페이스의 선언부만.. 2022. 8. 16.
[JAVA 기초] 09 추상 클래스 * 추상 클래스 - 추상 클래스 : 구체적이지 않은 클래스. abstract 예약어 사용 추상 클래스는 항상 추상 메서드를 포함한다 추상 메서드는 수현 코드가 없다 = 함수의 몸체(body)가 없다 abstract int add(int x, int y); *추상 메서드 추상 메서드가 속한 클래스는 추상 클래스로 선언해야 한다 추상 클래스를 상속받은 클래스는 추상 메서드를 모두 구현하거나 추상 클래스로 만들어야 한다 구현이 안된 추상 메서드를 포함하면 추상 클래스이다 *추상 클래스를 만드는 이유 - 추상 클래스는 인스턴스로 생성할 수 없음 - 추상 클래스는 상속을 하기 위해 만듦 구현된 메서드 : 하위 클래스에서 공통으로 사용할 구현 코드. 하위 클래스에서 재정의할 수도 있음 추상 메서드 : 하위 클래스가.. 2022. 8. 15.
[JAVA 기초] 08 상속과 다형성 *상속 - 상속 : 물려받는다는 의미 B 클래스가 A 클래스를 상속받으면 B 클래스는 A 클래스의 멤버 변수와 메서드를 사용할 수 있음 이때 A 클래스를 부모 클래스, 상위 클래스라고 하며, B 클래스를 자식 클래스, 하위 클래스라고 함 상속을 구현할 때는 extends 예약어를 사용함 class B extends A { } *protected 예약어 -protected : 상위 클래스에서 작성한 함수나 메서드 중 외부 클래스에서 사용할 수 없지만 하위 클래스에서는 사용할 수 있도록 지정하는 예약어 *super 예약어 - super : 하위 클래스에서 상위 클래스로 접근할 때 사용 상위 클래스의 멤버 변수나 메서드를 참조 *상위 클래스로 묵시적 형 변환 하위 클래스인 B는 B형이면서 동시에 A형이기도 함.. 2022. 8. 13.
[JAVA 기초] 07 배열과 ArrayList *배열 - 배열 : 자료를 순차적으로 관리하는 구조 자료형[ ] 배열이름 = new 자료형[개수]; 자료형 배열이름[ ] = new 자료형[개수]; *배열 사용하기 - 인덱스 연산자 [ ] : 선언한 배열의 각 요소에 값을 넣을 때나 배열 요소에 있는 값을 가져올 때 사용 배열 순서는 0부터 *문자 저장 배열 만들기 문자 자료형 배열은 char[ ]로 선언 *객체 배열 사용하기 Book[ ] library = new Book[5]; //Book 클래스 형으로 객체 배열 생성 Book 인스턴스 5개가 생성된 것 처럼 보이지만 인스턴스를 가리키는 주소 값을 담을 공간 5개가 생성된 것이다. 각 공간은 null 값으로 초기화된다. *배열 복사하기 1) for문을 사용하여 각 요소 값을 반복해서 복사 2) Sy.. 2022. 8. 12.
[JAVA 기초] 06 클래스와 객체 2 *this - this : 스스로를 가리키는 예약어 1) 생성자에서 다른 생성자를 호출하는 this 클래스에 생성자가 여러 개 있을 때 다른 생성자를 호출하는 경우 2) 자신의 주소를 반환하는 this 생성된 클래스 자신의 주소 값을 반환할 수 있음 *static 변수 - static(정적) 변수 : 클래스 내부에 선언함 프로그램이 실행되어 메모리에 올라갔을 때 딱 한 번 메모리 공간이 할당되고, 그 값은 모든 인스턴스가 공유함 인스턴스보다 먼저 생성되어 인스턴스가 아닌 클래스 이름으로도 참조하여 사용할 수 있음 *클래스 메서드 - 클래스 메서드 : static 변수를 위한 메소드. static 메서드라고도 static 변수처럼 클래스 이름으로 직접 호출할 수 있음 클래스 메서드 내부에서는 인스턴스 변수.. 2022. 8. 11.
[JAVA 기초] 05 클래스와 객체 1 *객체와 객체 지향 프로그래밍 - 객체 : 의사나 행위가 미치는 대상 - 객체 지향 프로그래밍 : 객체(어떤 대상)을 가지고 프로그래밍하는 것 *클래스 - 클래스 : 객체의 속성과 기능을 코드로 구현한 것 - 클래스 이름 규칙 : 클래스 이름은 대문자로 시작 (접근제어자) class 클래스 이름 { 멤버변수; 메서드; } - 멤버변수 : 클래스 내부에 선언하여 객체 속성을 나타내는 변수 - 메서드 : 클래스 내부에서 멤버 변수를 사용하여 클래스 기능을 구현한 것 - 변수와 메서드 이름 규칙 : 소문자로 시작하고 중간에 새 단어로 바뀔 때마다 대문자를 씀(카멜 표기법) *패키지 - 패키지 : 클래스 파일의 묶음. 프로젝트 전체 소스 코드를 구성하는 계층 구조 *함수 - 함수 : 하나의 기능을 수행하는 일련.. 2022. 8. 10.
728x90