U E D R , A S I H C RSS

�블스캠프2004/금요�

Contents

1. �블스캠프2004/금요�
1.1. Java
1.1.1. �바� 역사 � 특징
1.1.2. ��립스 사용법
1.1.2.1. 프로�트 만들기
1.1.2.2. Class 만들기
1.1.2.3. 컴파� � 실행
1.1.2.4. 간단한 예제프로그램 작성 � 테스트
1.1.3. 윈�우 프레임창 �우기
1.1.4. 그림그리기
1.1.5. 마우스 �벤트
1.1.6. TicTacToe
1.1.6.1. 마우스를 í�´ë¦­í–ˆì�„ 경우 paint 함수를 호ìœ
2. 여는 �야기
3. 실습 : Programming
4. Code Review - 어떤 ��� 하며 작성했나요?
5. 휴�
6. Structured Programming 소개
7. HIPO 예제
8. Paper Programming : HIPO 그리기
9. �신� HIPO 그린 것� 근거로 구현
10. 휴�
11. OOP 소개
12. 시연 : CRC Card
13. OOP Demo 1 : Message 를 날립시다~ (Python)
14. OOP Demo 2 : Message 를 날립시다~ (Java & Eclipse)
15. 휴�
16. �바 간단 설명
16.1. Eclipse 간단 설명
16.2. �바 문법 간단 설명
16.2.1. Class 추가 방법
16.2.2. public static void main
16.2.3. 구현 : CRC 때 했었� 것
17. 휴�
18. interface 개� 추가 설명
19. 구현 : 다른 �체와� 대화 & 기능� 변화
20. 토론 & 발표
21. 마무리
22. 기타

1.1. Java

1.1.1. �바� 역사 � 특징

설마 �거 PT하셨나요? PT� 내용� 제 뒤통수를 때리는것 같군요.
�바 �름� 유래 � 개발 역사
�서는 유래가 없군요. C기반� 아니�, C++(문법), Smalltalk(vm) � 철학� 반�합니다. Early History 는 마치 제임스 고슬�� 처� 만든것 처럼 �어 있군요. (SeeAlso Java Early history
개발 역사는 사장 �전� Java를 구한 Servlet-JSP 기술� 빠졌고, 2001년 기준� 'JavaTM 2 Playtform 1.3,'는 현재 J2SE 로 �름� 바꾸었지요. 1.4는 1년� 전� 나오고, 1.5 가 8월� 발표�니다. Java는 major upgrade 시 많� 부분� 변경�니다
Java� 활용분야
는 � 슬�집니다. 보여주신 처� 예제가 거�다 ActiveX 구현물입니다.국내 Rich Client 분야는 전부 ActiveX� 주고 해외는 Flash�게 내주었습니다. 현재(2003) Java� 활용분야� 80% ��� applet� 아닌 서버 프레임�� J2EE와 모바� 프레임�� J2ME 입니다.

--NeoCoin
책� 보고 했는� 문제가 많았나 봅니다; 미숙한 발표여서 죄송합니다 (__) --iruril
저는 발표를 못�서, 미숙한지 모릅니다. 그러나 PT가 그대로 진행�었다면, 사실과 다른 내용� 충격��군요. 다�부터�� 반드시 타��게 �수를 받거나, �신�게 납�할수 있는 내용� 담으세요. --NeoCoin

1.1.2. ��립스 사용법


1.1.2.1. 프로�트 만들기
  • File -> New -> Project
    Java Project 선�


1.1.2.2. Class 만들기
  • File -> New -> Class

1.1.2.3. 컴파� � 실행
  • Run -> Run As -> Java Application

1.1.2.4. 간단한 예제프로그램 작성 � 테스트
  • 테스트 프로그램(FirstJava.java)
    ~cpp           
    public class FirstJava {
      public static void main(String argv[]) {
        System.out.println("Hello world!");
      }
    }
    

1.1.3. 윈�우 프레임창 �우기


  • JFrameì�˜ show() 메소드 -> 프레임창ì�„ ë³´ì�´ê²Œ 한다.

  • JFrameì�˜ setBounds(int x, int y, int weight, int height) 메소드
    -> int 전달��가 순서대로 창� �우는 'x좌표', 'y좌표', '창넓�', '창높�' 를 가리킨다


  • ~cpp 
    import javax.swing.*;
    
    public class FirstJava extends JFrame{
    	public FirstJava()
    	{
    		
    	}
    	public static void main(String args[]) {
    		FirstJava helloWorld = new FirstJava();
    		helloWorld.setBounds(100,100,800,600);
    		helloWorld.show();
    		
    		
    	}
    }
    

  • BufferedReader - ìº�릭터, ë°°ì—´, í–‰ì�„ 버í�¼ë§� 하는 것ì—� ì�˜í•´, ìº�릭터형 ìž…ë ¥ 스트림으로부터 í…�스트를 ì�½ì–´ë“¤ì�¸ë‹¤


    ~cpp 
    package WindowFrame;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    import javax.swing.JFrame;
    
    public class WindowFrame {
        static BufferedReader breader;
        
        public WindowFrame(String title, int width, int height) {
            JFrame f = new JFrame(title);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setSize(width, height);
            f.show();
        }
        
        public static int inputInt() throws IOException {
            breader
            	= new BufferedReader(new InputStreamReader(System.in));
            return Integer.parseInt(breader.readLine());
        }
        public static String inputString() throws IOException {
            return breader.readLine();        
        }
        
        public static void main(String[] args) {
            breader = new BufferedReader(new InputStreamReader(System.in));
            try {
    	        System.out.print("윈�우 �름 : ");
    	        String title = inputString();
    	        System.out.print("넓� : ");
    	        int w = inputInt();
    	        System.out.print("높� : ");
    	        int h = inputInt();
            
    	        new WindowFrame(title, w, h);
            } catch(IOException ex) {
                ex.printStackTrace();
            }
        }
    }
     
    Swing_JFrame.gif

1.1.4. 그림그리기


  • java.awt.Graphics 추가
  • public void paint(Graphics g) 메소드
    -> 윈�우 창�서 그리는 부분� 담당하는 함수�다.

  • g.drawString(String string, int s, int y) 메소드
    -> int 전달��가 순서대로 문�열� 그리는 '왼쪽 위 �� x좌표', '왼쪽 위 ��y좌표' 를 가리킨다

  • g.drawLine(int startX, int startY, int endX, int endY) 메소드
    -> int 전달��가 순서대로 선� 리는 '처��� x좌표', '처� ��y좌표', '��� x좌표', '��� y좌표' 를 가리킨다

  • g.drawOval(int x, int y, int weight, int height) 메소드
    -> int 전달��가 순서대로 � 그리는 '왼쪽위 x좌표', '왼쪽위 y좌표', '�� 너비', '�� 높�' 를 가리킨다

  • g.fillOval(int x, int y, int weight, int height) 메소드
    -> int 전달��가 순서대로 채워진 �� 그리는 '왼쪽위 x좌표', '왼쪽위 y좌표', '�� 너비', '�� 높�' 를 가리킨다


  • ~cpp 
    import java.awt.Graphics;
    import javax.swing.*;
    
    public class FirstJava extends JFrame{
    	public FirstJava()
    	{
    		
    	}
    	public static void main(String args[]) {
    		FirstJava helloWorld = new FirstJava();
    		helloWorld.setBounds(100,100,800,600);
    		helloWorld.show();
    		
    		
    	}
    	public void paint(Graphics g)
    	{
    		g.drawLine(100,100,300,300);
    		g.drawOval(200,200,400,400);
    		g.fillOval(500,500,100,100);
    	}
    }
    

1.1.5. 마우스 �벤트

  • addMouseListener 로 마우스 핸들러를 추가한다.
  • mouseClicked 메소드 -> 메우스를 í�´ë¦­í–ˆì�„ 경우 ìž‘ë�™

    ~cpp 
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    
    import javax.swing.*;
    
    public class FirstJava extends JFrame{
    	public FirstJava()
    	{
            addMouseListener(new MouseAdapter() { 
                public void mouseClicked(MouseEvent e) {
                	int x = e.getX();
                	int y = e.getY();
                	
                	System.out.println("x 좌표 : " + x);
                	System.out.println("y 좌표 : " + y);
                }
    
            });
    	}
    	public static void main(String args[]) {
    		FirstJava helloWorld = new FirstJava();
    		helloWorld.setBounds(100,100,800,600);
    		helloWorld.show();
    		
    		
    	}
    }
    

1.1.6.1. 마우스를 í�´ë¦­í–ˆì�„ 경우 paint 함수를 호ìœ

  • repaint() 메소드를 사용


~cpp 
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.*;

public class FirstJava extends JFrame{
	public FirstJava()
	{
        addMouseListener(new MouseAdapter() { 
            public void mouseClicked(MouseEvent e) {
            	int x = e.getX();
            	int y = e.getY();
            	
                  repaint();

            }

        });
	}
	public static void main(String args[]) {
		FirstJava helloWorld = new FirstJava();
		helloWorld.setBounds(100,100,800,600);
		helloWorld.show();
		
		
	}
         public void paint(Graphics g)
         {
                  System.out.print("Click!! ");
         }
}

2. 여는 �야기

Programmer's Toolkit

3. 실습 : Programming

~cpp 
6
0 0
222244451
999

Output

1 1 1 1 1 0
0 0 0 0 1 0    
0 0 0 0 1 0
0 0 0 0 2 0
0 0 0 1 0 0
0 0 0 0 0 0

5 
0 0 
22224444346 
999 

Output 
 
2 1 1 1 1  
1 0 0 0 2  
0 0 0 0 1  
0 0 0 0 1  
0 0 0 0 1  

3
0 0 
44220064 
999 

Output 
 
1 1 1  
1 1 1  
1 1 1  


4. Code Review - 어떤 ��� 하며 작성했나요?




5. 휴�

6. Structured Programming 소개

7. HIPO 예제

8. Paper Programming : HIPO 그리기

9. �신� HIPO 그린 것� 근거로 구현

10. 휴�

11. OOP 소개

12. 시연 : CRC Card

13. OOP Demo 1 : Message 를 날립시다~ (Python)



ì••ì•ì�„ 풀고, 해당 디렉토리ì—� 들어간 ë’¤ c:\python23\python.exe 를 실행해주세요.
~cpp 
    from StarCraft import StarCraft 
    sc = StarCraft () 
    dir(sc)
    gateway = sc.createGateway () 
    dir(gateway)
    z1 = gateway.createZealot ()
    dir(z1)
    z1.move (160,160) 
    d1 = gateway.createDragoon () 
    dir(d1)
    d1.move (180,180) 
 
    z1.printHp() 
    z1.getPosition() 
    d1.printHp() 
    d1.getPosition() 
 
    z1.setAttackTarget(d1) 
    z1.printAttackTarget() 
    z1.getAttackTarget().printHp() 
    z1.getAttackTarget().getPosition() 
 
    z1.attack() 
    d1.printHp() 

14. OOP Demo 2 : Message 를 날립시다~ (Java & Eclipse)

15. 휴�

16. �바 간단 설명

16.1. Eclipse 간단 설명

16.2. �바 문법 간단 설명

16.2.1. Class 추가 방법

16.2.2. public static void main

16.2.3. 구현 : CRC 때 했었� 것

17. 휴�

18. interface 개� 추가 설명

19. 구현 : 다른 �체와� 대화 & 기능� 변화

20. 토론 & 발표

21. 마무리

22. 기타


1002ì•„
id : cvs_writer
pass: zeropager
를 만들어 �었으니, 시간 남는 사람들� 있다면 서로서로 소스 공유 해보는 경험� 좋�것 같다. �렇게 공유�다 �런� ��지
~cpp 
:pserver:cvs_writer@zeropage.org:/home/CVS
토요�까지만 개정 살려 둘께
--NeoCoin

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:57
Processing time 0.1300 sec