본문 바로가기

반응형

분류 전체보기

(123)
[200316.16일차] 제네릭 클래스, 제네릭 메소드 generic programming 일반적인 코드를 작성하고 이 코드를 다양한 타입의 객체에 대하여 재사용하는 프로그래밍 기법 제네릭은 컬렉션 라이브러리에 많이 사용 기존의 방법 일반적인 객체를 처리하려면 object 참조 변수를 사용 object 참조 변수는 어떤 객체이던지 참조 할 수 있다 EX) Car.java Car c1=new Car(); Object c2=new Object(); 예제로 하나의 데이터를 저장하는 Store 클래스를 살펴보자. 앞으로 일을 하면서 가장 많이 보게 될 기능 리스트 : 순서가 있는 데이터들의 집합(인덱스) 스택 : 순서있는 데이터들의 집합을 LL, FO 방식으로 관리하는 자료구조 큐 : 순서있는 데이터들의 집합을 FI,FO방식으로 관리하..
[200313.15일차] >> 템플릿 패턴의 문제점 => 예시는 짧지만 실제로는 꽤긴 몇만줄 짜리 코드이다. => 한번 구현해놨던 펀치공격과 걸어서 이동을 사용을 못하고 있다. => 각 세부 기능들을 재사용을 못하고 있다. => 기능을 재사용하려면, 일단 기능을 분리해내야됨 ==> 기능을 구현하는 독립적인 클래스로 구현 => FlyingMove, WalkingMove, MissileAttack, PunchAttack 세부 기능들을 클래스로 구현 구현한 클래스들을 멤버변수 객체를 만들어서 사용한다. MissileAttack, PunchAttack 클래스들 attack()메소드 갖고 있는데, 둘이 비슷해보이지만, 서로 다른타입이라 부모클래스로 뽑아내기가 안됨. => MissileAttack, PunchAttack의 타입이 다른 객체..
[200312.14일차] 복습 부모클래스 자식클래스 main 클래스 출력 * 객체의 형변환 => 부모가 자식 클래스에 잠시 접근할 수 있다. 타입을 잘보고 형변환을 하지 않으면 런타임오류가 발생한다. 추상메소드, 추상클래스 * 다형성을 구현하다 보면, 부모클래스일 수록 개념적이고 추상적으로 메소를 구현하게 된다. 특정 기능이 어떻게 구현될지 애매하다. bark를 보면 동물이 짖긴 짖는데 누가 어떻게 짖는지를 모른다. => 부모클래스에서 만들어둔 코드는 사용하지 않고, 자식에서 재정의해서 사용한다. 사실상 부모클래스에서는 코드를 낭비하고 있다. 문제점 => 특정방법을 사용하지 않으면 객체화가 불가능하다. => 무명 클래스를 사용한다. 무명 클래스 (anonymous class) : 클래스 몸체는 정의되지만 이름이 없는 클래스 =>..
[200311.13일차] 상속 상속 어떤 클래스가 다른 클래스의 멤버변수와 멤버함수를 물려받는 것 상속은 코드를 재사용하기 위한 중요한 기법 => 이어붙여지는 개념 재사용 => 일부를 수정해서 사용할 수 있다. * 키워드는 extends * 사용해보기 * 메소드 재정의 (메소드 오버라이딩, method Overriding) 메소드의 이름, 반환형, 매개변수의 개수와 데이터 타입이 일치하여야 한다. ==> 다형성을 위해 사용한다. * 기본생성자는 객체가 만들어질때 사용하고 사라진다. * 사용자정의생성자는 객체가 만들어질 때 저장된다. * 오버라이딩을 하면 메인함수에서 자식클래스를 이용해 부모클래스의 오버라이딩한 함수를 부를 방법은 없다. (필요할때는 그냥 부모클래스를 사용한다.) * 접근 지정자 private - class내에서만 사용..

반응형