본문 바로가기
반응형

JAVA/Java24

인터페이스 극단적으로 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위해 사용함. 인터페이스는 interface키워드를 통해 선언할 수 있으며, implements키워드를 통해 일반 클래스에서 인터페이스를 구현할 수 있다. JAVA8 이전까지는 상수, 추상메소드만 선언이 가능했지만 (그만큼 강제성이 강했다) JAVA8부터는 디폴트메소드, 정적 메소드가 추가되었다. public interface 인터페이스명 { //상수 타입 상수명 = 값; //추상메소드 타입메소드명(매개변수,...); //디폴트메소드 default 타입 메소드명(매개변수,....){ // 구현부 } //정적메소드 static 타입 메소드명(매개변수) { //구현.. 2023. 3. 14.
업캐스팅과 다운캐스팅 형 변환(업캐스팅) 상위 클래스로 변수를 선언하고 하위 클래스의 생성자로 인스턴스를 생성 상속 관계에서 모든 하위 클래스는 상위 클래스로 형 변환(업캐스팅)이 됨 (그 역은 성립하지 않음) 형 변환과 메모리 Customer vc = new VIPCustomer(); VIPCustomer()생성자에 의해 VIPCustomer클래스의 모든 멤버 변수에 대한 메모리는 생성되었지만, 변수의 타입이 Customer이므로 실제 접근 가능한 변수나 메서드는 Customer의 변수와 메서드이다. 다운캐스팅 업캐스팅된 클래스를 다시 원래의 타입으로 형 변환 하위 클래스로의 형 변환은 명시적으로 해야 함 if ( customerE instanceof GoldCustomer ) { GoldCustomer vc = (Gold.. 2023. 3. 14.
상속 클래스 상속 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현함 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를구현해야 할 때 기존 클래스를 상속 class B extends A { } extends키워드 뒤에는 단 하나의 클래스만 올 수 있다! 자바는 단일 상속(single inheritance) 만을 지원함 상속을 구현하는 경우 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 가짐 하위 클래스는 상위 클래스 보다 더 구체적인 개념과 기능을 가짐 하위 클래스가 상위 클래스의 속성과 기능을 확장한다는 의미 사람 < 포유류 class Mammal{ } class Human extends Mammal{ } super 키워드 하위클래스에서 가지.. 2023. 3. 14.
배열(array) - 자료를 순차적으로 한꺼번에 관리하는 방법 배열이란? 동일한 자료형(데이터 타입)의 순차적 자료 구조 인덱스 연산자[]를 이용하여 빠른 참조가 가능 물리적 위치와 논리적 위치가 동일 배열의 순서는 0부터 시작 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함. int [] arr1 = new int[10]; int arr2 [] = new int[10]; 배열의 길이와 요소의 개수는 동일하지 않습니다. 배열을 선언하면 개수만큼 메모리가 할당되지만, 실제 요소(데이터)가 없는 경우도 있음 length속성은 배열의 개수를 반환해주기 때문에 요소의 개수와 다를 수 있다. 동일하지 않을 경우 요소의 개수에 대한 count변수를 따로 넣어야한다. 향상된 for문 사용하기 / for(변수:배열){} public class CharArrayTes.. 2023. 3. 14.
디자인 패턴 1. 싱글톤 패턴(singleton pattern) 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 static 변수, 메서드를 활용하여 구현할 수 있음 어떠한 클래스(객체)가 유일하게 1개만 존재할 때 사용 주로 서로 자원을 공유할 때 사용, 실물 세계에서는 프린터가 해당 (여러 대의 pc가 하나의 복사기를 사용하는 경우) 실제 프로그래밍에서는 tcp socket 통신에서 서버와 연결된 connect 객체에 주로 사용 (socket 하나로 多연결) 기본 생성자를 private로 막고 getInstance()를 제공 싱글톤 패턴으로 회사 객체 구현하기 생성자는 private으로 선언 외부에서 Company를 만들지 못하도록 함 private Company() {} 클래스 내.. 2023. 3. 14.
반응형