본문 바로가기
반응형

JAVA38

업캐스팅과 다운캐스팅 형 변환(업캐스팅) 상위 클래스로 변수를 선언하고 하위 클래스의 생성자로 인스턴스를 생성 상속 관계에서 모든 하위 클래스는 상위 클래스로 형 변환(업캐스팅)이 됨 (그 역은 성립하지 않음) 형 변환과 메모리 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.
여러 인스턴스에서 공통으로 사용하는 변수를 선언하자 - static변수 공통으로 사용하는 변수가 필요한 경우 여러 인스턴스가 공유하는 기준 값이 필요한 경우 학생마다 새로운 학번 생성 카드회사에서 카드를 새로 발급할때마다 새로운 카드 번호를 부여 회사에 사원이 입사할때마다 새로운 사번이 필요한 경우 static 변수 선언과 사용하기 static int serialNum; 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당 클래스변수, 정적 변수라고도 함 인스턴스 생성과 상관 없이 사용 가능하므로 클래스 이름으로 직접 참조 ex) Student.serialNum = 100; static 변수 테스트하기 public class Employee { private static int serialNum = 1000; private int .. 2023. 3. 14.
반응형