2008년 08월 23일
"2008년 08월 23일"
BMP화일로 지형생성하기

# by | 2008/08/23 02:32 | 프로그래밍 | 트랙백 | 덧글(1)
PROJECT-A만드는1人의 블로그 |
업캐스팅의 예 : 과자먹는꼬마
interface 과자
{ void 봉지뜯기(); }
class 새우깡 : 과자
{ public void 봉지뜯기() { ... } // 구현
public void 먹기() }
class 바나나킥 : 과자 { ... }
class 과자먹는꼬마
{
public 과자 g = new 새우깡(); // 업캐스팅
public void 과자봉지뜯기(과자 g)
{
g.봉지뜯기(); // override된 하위클래스의 메소드를 호출한다.
}
/// public void 과자먹기(과자 g)
/// {
/// g.먹기(); // 상위클래스에 선언되지 않은 메소드는 에러가 발생한다.
/// }
}
1. 꼬마는 '과자봉지뜯기'에서 새우깡봉지인지 바나나킥봉지인지 구별할 필요없이 '과자'의 봉지를 뜯는다.
2. 업캐스팅이 되면, virtual로 선언된 메소드를 override 한 경우, override 된 메소드가 호출된다.
3. 업캐스팅이 되면, 상위클래스에 선언되어 있지 않은 메소드는 하위클래스에 구현되어 있더라도 호출할 수 없다. 즉, 업캐스팅된 과자로 할 수 있는 것은 봉지뜯기밖에 없다.
관련 : 네이버지식인
http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10106&eid=3NMjicI7EDqWnfG4Esp/Hj+p0STfdLId&qb=wNq52SDEs726xsM
# by | 2008/05/15 01:29 | 프로그래밍 | 트랙백 | 덧글(0)
# by | 2008/05/07 19:56 | 프로그래밍 | 트랙백 | 덧글(1)
# by | 2008/05/07 00:43 | 프로그래밍 | 트랙백 | 덧글(0)
# by | 2008/05/06 18:46 | 프로그래밍 | 트랙백 | 덧글(0)
# by | 2008/05/02 22:04 | 프로그래밍 | 트랙백 | 덧글(0)
메인폼은 TreeView 에서 드라이브와 하위디렉토리를 노드로 추가하여 내 컴퓨터의 디렉토리정보를 보여준다.
TreeView의 노드를 선택하면 ListView 에서 디렉토리의 파일목록을 보여주고 현재 노드를 1에 저장한다.
파일선택하고 복사,이동 누르면 다이얼로그 띄워서 타겟 노드를 2에 저장한 후, 1에서 2로 복사,이동 한다.
파일선택하고 삭제를 누르면 파일을 삭제하고 ListView에서 해당 아이템을 삭제한다.
보완할 부분 :
- 새 다이얼로그에서 노드확장 이벤트핸들러를 메인폼에서 가져다 쓰기(?)
메인폼 이벤트핸들러를 static 으로 해주고 새 다이얼로그에서 MainFrm.dirTreeViewExpand 로 연결해준다.
- ListView 에서 파일을 TreeView 노드로 드래그&드롭시 이동이 되는 기능
소스컨트롤 : MouseDown 이벤트 (리스트뷰의 경우 ItemDrag 이벤트 사용했음)
타겟컨트롤 : DragEnter, DragDrop 이벤트 (트리뷰의 경우 DragDrop 대신 MouseHover 이용)
5월 1일 추가된 부분 : 오른쪽의 파일을 왼쪽의 폴더로 드래그하여 갖다 놓으면 파일이 그 폴더로 이동된다.
MyFileManager.exe (저장해서 실행해야 됨)
# by | 2008/04/28 19:55 | 프로그래밍 | 트랙백 | 덧글(1)
// (MainApp.Designer.cs) 폼에 컨트롤을 추가하고,
...
this.Controls.Add(this.txMemo);
this.Controls.Add(this.mnMain);
...
// (MainApp.Designer.cs) 이벤트와 이벤트핸들러를 연결
...
this.새로만들기NToolStripMenuItem.Click += new System.EventHandler(this.새로만들기NToolStripMenuItem_Click);
...
// 메인폼 생성자... 유니코드체크값 초기화 ... {}
// '열기' 클릭시 호출할 메서드 ... {}
// 파일열기 처리용 메소드(직접 작성) - 오픈다이얼로그에서 파일이름을 매개변수로 받음 ... {}
// '저장하기' 클릭시 호출할 메서드 ... {]
// 파일저장 처리용 메소드(직접 작성) - 저장다이얼로그에서 파일이름을 매개변수로 받음 ...{}
SimpleNote.exe (저장해서 실행해야 됨)
# by | 2008/04/23 00:53 | 프로그래밍 | 트랙백 | 덧글(0)
추상클래스는 하나 이상의 구현된 메소드와 하나 이상의 구현되지 않은 추상메소드를 가진다.
자식클래스가 추상클래스를 상속받으면 추상클래스에 구현된 메소드를 물려받고, 추상클래스에 구현되지 않은 메소드는 자식클래스 자신이 구현해야 한다
abstract class weapon
{
protected int bullets = 0;
protected int MAXBULLETS;
# by | 2008/04/17 14:38 | 프로그래밍 | 트랙백 | 덧글(0)
객체지향의 기초적인 개념 복습에 도움이 될 부분에 형광펜을 칠해보았다.
[내용추가]
필드 : 클래스의 범위로 선언된 변수
지역변수 : 하나의 함수 또는 메소드 안에서만 사용되는 변수
# by | 2008/04/10 18:36 | 프로그래밍 | 트랙백 | 덧글(1)

# by | 2008/03/16 22:53 | 애니메이션 | 트랙백 | 덧글(1)
◀ 이전 페이지 다음 페이지 ▶