목록분류 전체보기 (639)
충분히 쌓여가는
윈도 운영체제가 개발되기 전에는 도스라는 운영체제를 사용하였다.도스에서 동작하는 프로그램은 명령어를 순서대로 처리하는 절차형(순차적) 프로그래밍 방식.절차형 프로그래밍은 명령어를 기술한 순서대로 처리하며 프로그램의 실행 순서를 중시한다.따라서 프로그램을 작성할 때 명령어의 처리 순서를 고려해야 한다. 이벤트 기반 프로그래밍: 이와 달리 윈도 프로그램은 이벤트 기반(처리형) 방식을 따름.이벤트: 프로그램에서 감지한 어떤 행동이나 발생한 사건을 가리킨다. 이런 이벤트에 반응하도록 설계된 것이 이벤트 기반 프로그램.즉, 사용자가 발생시킨 이벤트에 따라 미리 정해진 명령을 처리하는 것. 어떤 이벤트가 발생하면 메시지가 생성되어 프로그램에 전달되고 프로그램은 메시지에 해당하는 이벤트 프로시저를 수행.어떤 버튼을 ..
제네릭 타입 결정되지 않은 타입을 파라미터로 가지는 클래스와 인터페이스 제네릭 타입은 선언부에 부호가 붙고, 그 사이에 타입 파라미터들이 위치한다 public class 클래스명 {...} public interface 인터페이스명 {...} 타입 파라미터는 변수명과 동일한 규칙에 따라 작성할 수 있지만 일반적으로 대문자 알파벳 한 글자로 표현한다 외부에서 제네릭 타입을 사용하려면 타입 파라미터에 구체적인 타입을 지정해야 한다 지정하지 않으면 Object 타입이 사용된다 kind와 model 필드를 타입 파라미터로 선언하고, Getter의 매개변수와 Setter의 리턴 타입 역시 타입 파라미터로 선언한다 이렇게 타입 파라미터를 사용하는 이유는 Product에 다양한 종류와 모델 제품을 저장하기 위해서이다..
제네릭 결정되지 않은 타입을 파라미터로 처리하고 실제 사용할 때 파라미터를 구체적인 타입으로 대체시키는 기능 Object 타입은 모든 클래스의 최상위 부모 클래스 따라서 모든 객체는 부모 타입인 Object로 자동 타입 변환이 된다 Box 클래스에 넣을 내용물로 content 필드를 선언 Box는 다양한 내용물을 저장해야 하므로 특정 클래스 타입으로 선언할 수 없다 그래서 Object 타입으로 선언함 public class Box { public Object content; } content는 Object 타입이므로 어떤 객체가 대입되어 있는지 확실하지 않다 대입된 내용물의 타입을 안다면 강제 타입 변환을 거쳐 얻을 수 있다 Box box = new Box(); String content = (Strin..
객체 해시코드 객체를 식별하는 정수 Object의 hashCode() 메소드 객체의 메모리 번지를 이용해서 해시코드를 생성하기 때문에 객체마다 다른 정수값을 return 한다 두 객체가 동등한지를 비교할 때 주로 사용 public int hashCode() hashCode() 메소드 역시 객체의 데이터를 기분으로 재정의해서 새로운 정수값을 return하도록 하는 것이 일반적이다 객체가 다르다 할지라도 내부 데이터가 동일하다면 같은 정수값을 return하기 위해서이다 자바는 두 객체가 동등함을 비교할 때 hashCode()와 equals() 메소드를 같이 사용하는 경우가 많다 1) hashCode()가 return하는 정수값이 같은지 확인 2) equals() 메소드가 true를 return 하는지를 확인..