본문 바로가기

프로그래밍/Java

(66)
Java_컬렉션 프레임워크 컬렉션 프레임 워크란 ? 자바에서 제공되는 자료구조(Data Structure) 구현 클래스들이다. java.util 패키지에 구현되어 있다. 개발에 소요되는 시간을 절약하면서 최적화 된 알고리즘을 사용할 수 있다. Set 인터페이스 : 순서가 없고 중복을 허용하지 않고 유일한 값을 관리하는데 필요한 메서드가 선언된다. 아이디, 주민번호, 사번 등을 관리하는데 유용하다. 저장된 순서와 출력되는 순서가 다를 수 있다. List 인터페이스 : 객체를 순서에 따라 저장하고 관리하는데 필요한 메서드가 선언된 인터페이스이다. 자료구조 리스트 (배열, 연결리스트)의 구현을 위한 인터페이스이다. 순서가 있고 중복을 허용한다. Map 인터페이스 : 객체가 key-value의 쌍으로 이루어져있다. key는 중복을 허용하..
Java_Thread Thread 란 ? 하나의 프로세스는 하나 이상의 thread를 가지게 되고, 실제 작업을 수행하는 단위는 thread 이다. 여기서 프로세스란 프로그램이 실행되면 OS(운영체제)로부터 메모리를 할당받아서 프로세스 상태가 된다. 쓰레드를 생성하면 Runnable 상태가 된다. Runnable상태는 CPU를 사용할 수 있는 상태인데, Run상태가 되면 CPU배분이 되어 메모리에 올라간다. Not Runnable 상태는 ① 일정시간 쓰레드를 멈추게 하는 Thread.sleep() 메서드를 사용하면 Not Runnable 상태가 됐다가 일정시간이 지나면 다시 Runnable 상태로 돌아온다. ② 쓰레드를 잠시 기다리게 하는 wait()메서드를 사용하면 Not Runnable 상태가 되는데, 이때 깨워주는 메서..
Java_Swing 키보드 방향키로 이미지를 창 안에서만 움직이게 하기 전체 코드 HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 코드 설명 HTML 삽입 미리보기할 수 없는 소스 → 멤버변수 선언부 : JLabel을 선언하여 이미지를 넣을 수 있도록 한다. labelImageX와 labelImageY를 선언하여 이미지를 움직일 때 사용하는 변수로 선언한다. → 생성자 : initData(), setInitLayout(), addEventListener()를 호출하고 labelImageX와 labelImageY의 고정좌표를 300 300으로 주었다. → initData() : 창 크기를 너비 : 800, 높이 : 800으로 주었다. setDefaultCloseOperation을 사용하여 창을 끄면 종료가 되게끔 설정하였다. JLabel에 Ima..
Java_예외처리 예외처리 컴파일 오류(compile error) : 프로그램 코드 작성 중 발생하는 문법적 오류 (컴파일 시에 보임.) 실행 오류(runtime error) : 실행 시 발생하는 에러 (컴파일 시에는 보이지 않음.) → Throwable 클래스를 상속해서 구현한 클래스에는 Exception 클래스와 Error클래스가 있다. → 그리고 Exception 클래스에는 IOException (체크드 예외)와 RuntimeException (언체크드 예외)가 있는데, 여기서 체크드 예외란 예외를 처리하지 않으면 컴파일 에러가 발생하는 예외이고, 언체크드 예외는 굳이 예외 처리를 하지 않아도 에러가 발생하지 않는 에러이다. 이러한 예외를 처리하기 위해서 try-catch문과 throws를 사용한다. try-catc..
Java_추상 클래스(abstract class) 추상클래스란 ? : 추상적인 개념 -> 추상클래스 : 게임이라면 화면에 나타낼 수 없는 것들 구현 코드 없이 메서드의 선언만 있는 추상 메서드를 포함한 클래스이다. 추상 클래스는 new를 사용할 수 없다. (인스턴스화 할 수 없음.) package ch13; public abstract class Car { //추상 클래스 protected abstract void drive(); protected abstract void stop(); //추상 메서드 } 추상 클래스 템플릿 메서드 패턴으로 구현하기 → 글자가 이탤릭체로 휘어져 있으면 추상 클래스, 추상 메서드이다. Car 추상 클래스 HTML 삽입 미리보기할 수 없는 소스 → Car 추상 클래스를 만들고 drive, stop은 추상 메서드로 구현하고 ..
Java_Object클래스 Object클래스 : 모든 클래스에 최상위 클래스 기본으로 가지는 메서드들이 있다. toString()과 equals()메서드는 재정의하여 사용할 수 있다. - toString() : toString() 메서드는 Object 클래스에 속해있는 메서드이다. public String toString() { return //코드 } → return 뒤에 출력하고 싶은 코드를 적어 각 필드 값들의 정보를 문자열로 출력할 수 있다. - equals() : equals() 메서드는 비교대상의 주소값이 아닌 데이터 값을 비교한다. ※ '==연산자'는 객체 주소를 비교할 때 사용한다. public boolean equals(Object obj) { //코드 return false; } → equals()는 반환타입이 ..
Java_인터페이스 인터페이스 추상클래스와 마찬가지로 인스턴스를 생성할 수 없다. 인터페이스는 다른 인터페이스를 'extends' 키워드로 상속받을 수 있고, 인터페이스의 구현은 'implements' 키워드를 사용한다. 인터페이스는 다중 상속이 가능하다. 기능(메소드)의 구현을 강제함으로써 표준, 약속 강제성 있는 규칙을 유도할 수 있다. 인터페이스를 구현한 다양한 객체를 사용함 (다형성) interface 인터페이스이름 { public static final float pi = 3.14F; public void makeSomething(); } → 인터페이스는 모든 메서드가 추상 메서드로 선언된다. public abstract 모든 변수는 상수로 선언된다. public static final - interface 예제 ..
Java_상속과 다형성 클래스 상속 기존의 클래스를 재사용하여 속성이나 기능을 확장하여 새로운 클래스를 작성하는 것이다. 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야할 때 기존 클래스를 상속한다. 물려받아서 기능을 확장 'extends' 키워드를 사용한다. → 상속하는 클래스 : 상위 클래스(A 클래스) → 상속받는 클래스 : 하위 클래스(B 클래스) 다형성이란 ? 하나의 코드가 여러 자료형으로 구현되어 실행되는 것이다. 즉 다양한 형태로 클래스(타입을) 바라볼 수 있다. 다형성을 잘 활용하면 유연하고 확장성 있고 유지보수가 편리한 프로그램을 만들 수 있다. 캐스팅이란 ? 타입을 변환(형변환)하는 것을 뜻한다. - 업캐스팅 : 자식 클래스의 객체가 부모 클래스 타입으로 형변환 되는 것을 뜻한다. - 다운캐..