일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 추상클래스
- 알고리즘
- popupmenubutton
- Python
- c언어문자열
- 부스트코스
- 아스키코드
- 포인터
- 정렬알고리즘
- 속초여행
- 장고
- 자바
- 강원도속초맛집
- 노마드코더
- JavaScript
- pipenv
- 컴퓨터과학
- richtext
- 남양주맛집
- DOM
- 코딩독학
- python3
- removetooltip
- FLUTTER
- BeautifulSoup
- Django
- 가상환경
- 건대입구맛집
- 상속
- 성수동카페
- Today
- Total
목록Programming Languages/JAVA (20)
YUYANE
학습 강의 pocu-ko.teachable.com/courses/enrolled 예외(exception) 1) try-catch-finally문 try{ //시도할 코드들 } catch( ){ //예외가 발생할 경우 해당 예외를 처리할 코드 } catch( ){ //예외가 발생할 경우 해당 예외를 처리할 코드 } finally { //예외 발생 여부와 상관 없이 항상 실행 되는 코드 } - catch는 하나 이상 존재 가능 - finally는 생략 가능 2) catch와 예외 클래스 - IOException: 입출력과 관련된 예외 클래스들의 부모 클래스 - EOFException, FileNotFoundException, FileSystemException 등 - ArithmeticException: 산..
다형성 1) OO의 4대 특성 중 하나 2) OO의 다른 특성인 상속에 기반 3) 상속과 다형성은 OO의 또 다른 특성인 추상화에 기반 - 여러 클래스에서 공통분모를 뽑아 부모 클래스를 만드는 과정 - 자식마다 달리 작동하는 구현을 부모의 메서드 시그내처로 일반화하는 과정 - 추상화는 좀 더 복잡한 문제 해결을 위한 것 추상 클래스 abstract class {...} 1) 인스턴스를 만들 수 없는 클래스 - 인스턴스를 만들 수 있는 클래스는 구체 클래스라고 함 - 따라서 구체 클래스가 아닌 클래스를 추상 클래스라고도 함 2) 다른 클래스의 부모 클래스가 될 수는 있음 3) 반드시 추상 메서드가 들어 있을 필요는 없음 4) 메서드 구현이 없을 수도 있음 - 메서드 구현이 없다면 그 클래스는 추상 클래스가..
Object클래스와 메서드 - 일반화의 끝판왕 - java의 클래스는 모두 Object로부터 상속받음 - 따라서 Object에 있는 메서드들은 어떤 클래스에서도 오버라이딩 가능 1) toString() 메서드 - 사람이 읽기 편하게 해당 개체를 문자열로 표현 - print 할 떄 내부적으로 toString()을 호출하여 어떤 개체든 그것을 문자열로 표현한 모습을 출력 할 수 있다 - 자바 공식 문서는 모든 클래스에서 이 메서드를 오버라이딩하라 권장(근데 사실 잘 안함..) 2) equals()메서드 - 문자열의 동치 비교할 때 이미 본 메서드 - Object 클래스 안의 기본 구현 - 단순한 주소 비교 : this == obj - 실제 개체 속의 데이터를 일일이 비교하지 않음 - 문자열의 경우에는 두 문..
final 1. 의미 1) 변수 앞에 붙은 final - 더 이상 변수 값을 변경하지 못함 2) 메서드 앞에 붙는 final - 자식 클래스에서 더 이상 메서드를 오버라이딩하지 못함 3) 클래스 앞에 붙는 final - 더 이상 상속하지 못함 - 자식 클래스 존재 불가 - 따라서 오버라이딩을 할 수도 없음 * final에 어긋나는 코드를 작성하면 모두 컴파일 오류(컴파일러가 검사해줌) 2. 팁 1) 베스트 프랙티스 : final은 기본적으로 붙인다 - 변수, 메서드, 클래스 가능하면 모두 final을 붙이는 게 좋다! (유지보수 관리가 쉬움) - 나중에 상속 및 변경해야 하는 상황이 오면 그때 final을 빼도 됨 2) 그러나 다음과 같은 경우는 에외 - 상속 및 변경을 할 개연성이 높은 클래스 및 메서..
다형성(polymorphism) 1. 의미 poly : 많은, 다양항 morph : (모습이나 형태가) 변하다 => 즉, 다형성이란 어떤 개체가 다양한 형태로 변할 수 있는 능력 - 어떤 개체 : 부모 클래스형의 변수로 참조 중인 개체 - 다양한 형태 : 실제 개체에 구현된 메서드 Animal animal = new Dog(); animal.shout(); // 실제 개체 자료형인 Dog 클래스에 있는 shout()메서드가 호출된다. 2. 특징 1) 상속은 다형성에 필요한 선수 조건 - 단, 상속 없이 다형성을 지원하는 비주류 OO언어도 있음 2) 많은 사람들이 OOP의 핵심이라 여기는 특징 3) 같은 지시를 내렸는데 다른 종류의 개체가 동작을 달리하는 것 4) 어떤 함수 구현이 실행될지는 프로그램 실행..
상속 vs 컴포지션 1) 공통 - 재사용성이 목적 - 많은 경우에 두 가지 모두 사용 가능 2) 성능이 중요한 경우 - 상속 : 개체 생성 시, 메모리가 하나의 덩어리(초기화를 한 번만 하므로) - 컴포지션 : 개체 생성 시, 메모리가 여러 덩어리 - 메모리 상의 차이는 실행 성능에 영향을 미친다. 개체가 여러 메모리로 나뉘어져 있으면 속도가 느려짐 이유 : cpu는 메모리로부터 데이터를 받아와 연산한다. - 상속 모델로 만든 개체 : 개체가 한 번에 캐시 메모리에 들어갈 가능성이 높음 - 컴포지션 모델로 만든 개체 : 개체 내 부품 수 만큼 캐시 메모리로 로딩할 가능성이 높음 - 프로그래밍 언어에 따라 새로운 메모리를 할당하고 해제하는 것에 있어서 특히 느린 것이 있음 - 상속 : 메모리 할당/해제가 ..
클래스 재사용성의 장점과 예외 - 설계/코딩을 다시 할 필요 없음 - 실전에서 100% 적용은 불가(재사용성에 눈이 멀어 잘못된 재사용을 할 수도 있다) - 오히려 유지/보수가 증가할 위험도 - 테스트 시간 절약 - 현실적으로 다시 테스트 하는 경우가 빈번하다 - 새로운 방법으로 부모 클래스를 사용한 경우에 새로운 버그 나타날 수도 있다 - 부모 클래스를 변경한 경우에 테스트가 필요하다 - 관리 비용 절약(코드 중복이 없고, 관련된 코드가 모두 한 파일 안에 있음) - 재사용성과 유지/관리 사이에서 밸런스를 잘 유지하자