Java

개발일지/Java

Java Iterator

Iterator Collection에 저장된 요소들을 순차적으로 읽어오는 역할 (List, Set) 메서드 설명 hasNext() 읽어올 객체가 남아 있으면 true를 리턴하고, 없으면 false를 리턴합니다. next() 컬렉션에서 하나의 객체를 읽어옵니다. 이 때, next()를 호출하기 전에 hasNext()를 통해 읽어올 다음 요소가 있는지 먼저 확인해야 합니다. remove() next()를 통해 읽어온 객체를 삭제합니다. next()를 호출한 다음에 remove()를 호출해야 합니다. List에서 String 객체 반복 ArrayList list = ...; Iterator iterator = list.iterator(); while(iterator.hasNext()) { // 읽어올 다음 객..

개발일지/Java

Java List<E>, ArrayList, LinkedList

List 배열과 같이 객체를 일렬로 늘어놓은 구조를 가지고 있음 객체를 저장하면 자동으로 인덱스가 부여됨 인덱스로 객체를 검색, 추가, 삭제할 수 있음 ArrayList 객체가 인덱스로 관리된다 저장 용량 초과 시, 자동으로 늘어남 (기본적으로 10이 지정됨) 데이터가 연속적으로 존재 (순서 유지) 특정 인덱스 객체 제거 시, 바로 뒤 인덱스부터 마지막 인덱스까지 모두 앞으로 1씩 당겨짐 ArrayList 객체명 = new ArrayList(초기 저장 용량); ArrayList container1 = new ArrayList(); // String 타입의 객체를 저장하는 ArrayList 생성 // 초기 용량이 인자로 전달되지 않으면 기본적으로 10으로 지정됨 ArrayList container2 = n..

개발일지/Java

Java 컬렉션 프레임워크 (Collection Framework)

특정 자료 구조에 데이터를 추가하고, 삭제하고, 수정하고, 검색하는 등의 동작을 수행하는 편리한 메서드들의 집합 List 데이터의 순서가 유지됨 중복 저장 가능 Set 데이터의 순서가 유지되지 않으며, 중복 저장이 불가능 Map 키(key)와 값(value)의 쌍으로 데이터를 저장 데이터의 순서가 유지되지 않음 키는 값의 구별을 위해 중복 저장 불가 값은 중복 저장 가능 Collection 인터페이스 List + Set 기능 리턴 타입 메소드 설명 객체 추가 boolean add(Object o) / addAll(Collection c) 주어진 객체 및 컬렉션의 객체들을 컬렉션에 추가합니다. 객체 검색 boolean contains(Object o) / containsAll(Collection c) 주어..

개발일지/Java

Java 예외 처리 (Exception Handling)

프로그램의 비정상적인 종료를 방지하고, 정상적인 실행 상태를 유지하기 위하여 수행 컴파일 에러 컴파일할 때 발생하는 에러 주로 세미콜론 생략, 오탈자, 잘못된 자료형, 잘못된 포맷 등 문법적인 문제를 가리키는 신택스(syntax) 오류로부터 발생한다 아래 코드는 for문을 닫는 괄호가 없다 public class ErrorTest { public static void main(String[] args) { int i; for (i= 1; i

개발일지/Java

Java 제네릭 (Generic)

타입을 구체적으로 지정하는 것이 아니라, 추후에 지정할 수 있도록 일반화해두는 것 작성한 클래스 또는 메서드의 코드가 특정 데이터 타입에 얽매이지 않게 해 둘 때 사용한다. 제네릭 클래스 하나의 클래스로 모든 타입의 데이터를 저장할 수 있는 인스턴스를 만들 수 있다 제네릭 클래스 생성 * static은 사용불가하니 참고 class Basket { // 제네릭 미사용시 타입별로 모두 만들어야 한다 (String, Integer, ...) private String item; Basket(String item) { this.item = item; } public String getItem() { return item; } public void setItem(String item) { this.item = i..

개발일지/Java

Java 열거형 (Enum)

서로 연관된 상수들의 집합 여러 상수들을 보다 편리하게 선언하고 관리할 수 있게 하며, 상수 명의 중복을 피하고, 타입에 대한 안정성을 보장 변경되지 않는 한정적인 데이터들을 효과적으로 관리할 수 있다 관례적으로 상수명은 대문자로 작성 switch문 사용가능 기본 구조 enum 열거형이름 {상수명1, 상수명2, 상수명3, ...} switch public class Main { public static void main(String[] args) { switch (Seasons.SPRING) { case SPRING: System.out.println("봄입니다"); break; case SUMMER: System.out.println("여름입니다"); break; case FALL: System.out..

개발일지/Java

Java 추상화 (Abstraction)

기존 클래스들의 공통적인 요소들을 뽑아 상위 클래스를 만들어 내는 것 abstract 제어자 주로 클래스와 메서드를 형용하는 키워드 클래스 앞에 붙은 경우 : 추상 클래스 메서드 앞에 붙은 경우 : 추상 메서드 어떤 클래스에 추상 메서드가 포함되어있는 경우 해당 클래스는 자동으로 추상 클래스가 된다 미완성이라는 의미 객체 생성이 불가 abstract class AbstractExample { // 추상 메서드가 최소 하나 이상 포함돼있는 추상 클래스 abstract void start(); // 메서드 바디가 없는 추상메서드 } AbstractExample abstractExample = new AbstractExample(); // 에러발생. 추상 클래스 메서드 시그니처만 존재하고 바디가 선언되지 않은..

개발일지/Java

Java 다형성 (polymorphism)

하나의 객체가 여러 가지 형태를 가질 수 있는 성질 다형성 상위 클래스 타입의 참조변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 허용한 것 class Friend { public void friendInfo() { System.out.println("나는 당신의 친구입니다."); } } class BoyFriend extends Friend { public void friendInfo() { System.out.println("나는 당신의 남자친구입니다."); } } class GirlFriend extends Friend { public void friendInfo() { System.out.println("나는 당신의 여자친구입니다."); } } public class FriendTest { ..

개발일지/Java

Java 캡슐화 (Encapsulation)

특정 객체 안에 관련된 속성과 기능을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것 캡슐화의 목적 데이터 보호 내부적으로만 사용되는 데이터에 대한 불필요한 외부 노출 방지 패키지 (package) 특정한 목적을 공유하는 클래스와 인터페이스의 묶음 클래스들을 그룹 단위로 묶어 효과적으로 관리하게 위해 사용 Import문을 통해 접근하거나 (.)을 사용하여 접근 우리가 컴퓨터를 사용할 때 폴더를 만들어 그 폴더와 관련된 파일들을 관리하는 것과 같다 쉽게 말해 폴더를 만들어 자바 파일들을 모아 놓은 것 접근 제어자 제어자 (Modifier) 클래스, 필드, 메서드, 생성자 등에 부가적인 의미를 부여하는 키워드 접근 제어자와 기타 제어자로 구분 접근 제어자 : public, protected, (defa..

E-room
'Java' 태그의 글 목록 (7 Page)