2008년 09월 06일
지난 학기 리뷰.
지난 학기에는 자바 프로그래밍의 시작부터 자바코딩의 규칙, 객체지향적인 프로그래밍의 이해 까지
전반적으로 프로그래밍의 가장 기본이 되는 부분을 학습했다.
그러나 많은 부분을 꾸준히 반복 숙달을 하지 않았으므로 복습을 하는 차원으로 리뷰의 시간을 갖도록 하자.
대표적인 특징.
자바 프로그래밍은 객체지향언어로써 각각의 객체들이 하나로 묶여 새로운(또는 더 개선된) 하나의 프로그램으로
만들기가 용의하다.(분산 프로그래밍의 장점)
-> 여러 프로그래머가 각자 작성된 코드가 호환성이 매우 좋다는 장점을 갖는다.
코딩 규칙.
하나의 소스에는 여러 클래스가 존재가 가능하다. 단, 접근 제한자에 대해서는 단 하나의 클래스만이
'public'을 갖을 수 있다.
-> public 접근 제한자 중 하나로써 다른 패키지에서 사용을 가능하게 해주는 기능이다.
※클래스 외에도 메소드 혹은 변수에서도 접근 제한자는 많이 사용된다.
모든 프로그래밍이 그렇듯이 1 + 1 = 2 가 아닌 2 = 1 + 1 로 표현한다.
※흔히 사람이 사용하는 계산식(?)과는 다르다는 점을 늘 유의하도록 한다.
import 문을 이용해 외부 클래스를 불러서 사용이 가능하다.
-> 지난 학기에는 주로 랜덤, 키보드 입력을 위해 java.io.*, java.util.* 을 주로 사용했다.
클래스의 상속을 통해 완성 되는 추상 클래스, 이와 비슷한 특징을 갖는
추상메소드, 인터페이스 등이 존재한다.
마지막으로 클래스에 대한 것 까지 배운 시점에서 알아야 할 것.
기존의 프로그래밍을 할 떄는 흐름도를 이용했지만, 자바를 하면서 UML을 알아야 할 것이고, 이를 잘 활용해야 할 것이다.
객제치향적인 프로그래밍에 있어서는 UML 방식으로 설계를 하고 구현을 해 가는 쪽이 많은 점에서 효율적이기 때문이다.
그럼 아주 기본적인 틀을 한번 보도록 하자.
class test
{
public static void main(String args[])
{
System.out.println("기억은 나세요?");
}
}
위에서 언급하지 못한 것이 한가지 있다. 대소문자 구별이다. 반드시 대소문자를 잘 구분하도록 하자.
두개 이상의 클래스가 한 소스에 존재 할 때.
public class test
{
public static void main(String args[])
{
String str = null;
test2 out = new test2();
str = out.getTest("기억은 나세요?");
System.out.println(str);
}
}
class test2
{
private String str;
public String getTest(String a){
str = a;
return str;
}
}
위에 소스에 대해서는 특별히 언급은 하지 않겠다.
그럼 김교수님의 첫 예제였던 러시안 룰렛을 짜는 것으로 리뷰를 마치도록 하자.
1. 리볼버의 권총탄은 총 6발이 들어간다.
2. 실린더(리볼버의 탄창)에는 단 1발의 권총탄이 들어간다.
3. 단 한발의 권총탄이 들어있는 위치는 알수 없다.(어디에 위치할지는 무작위다.)
4. 방아쇠를 한번 당길 때 마다 살거나 혹은 죽게 된다.
5. 살게 된다면 다음 방아쇠를 당기는 것이고 죽게 된다면 게임은 끝난다.
소스 공개(소스는 드래그 하면 볼 수 있습니다.)
import java.util.*; // 게임을 위한 필수적인 요소. 랜덤 함수로 리볼버의 권총탄을 써야 한다.
import java.io.*;
class Revolver
{
private boolean tan[] = new boolean[6];
public Revolver(){
System.out.println("리볼버 장전!!");
for(int i=0;i<6;i++){ //셋팅은 모든 실린더에 탄이 존재 하지 않아야 한다.
tan[i] = false;
}
int su = 0;
Random ran = new Random(); //랜덤클래스를 이용해서 리볼버의 단 한발의 탄을 무작위 적으로 넣는다.
su = ran.nextInt(6);
tan[su] = true;
} // true는 실탄, false는 빈공간.
public void gameMethod(){
try{
BufferedReader br = new BufferedReader
(new InputStreamReader(System.in));
for(int i=0;i<6;i++){
System.out.println((i+1)+"번째 방아쇠");
br.readLine(); //키보드 입력을 통해 다음 방아쇠를 당기는 것을 표현.
System.out.println("발사!!");
if(false == tan[i]){ // 방아쇠를 당겼을 때 탄이 존재하는지를 비교 한다.
System.out.println("살았다.");
}
else{
System.out.println("죽었다. 게임 끝");
break;
}
System.out.println("-------------------------");
}
}catch(Exception e){}
}
}
public class RussianRoulette
{
public static void main(String args[])
{
Revolver game = new Revolver();
game.gameMethod();
}
}
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- <예습>2장 객체지향 개념 by MiaE
- Java 2장 객체지향개념 예습! by 굴레방
- 9/9일 진도 2과.객체지향의개념 예습 by 찬웁
- 2009/9/5 예습일기 by 이온
- Java Programming [Chapter2] 객체지향 개념 예습편. by blackCat
# by | 2008/09/06 16:14 | 정리할 자료들 | 트랙백 | 덧글(1)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]