문제...자바.. Java 2011. 11. 6. 19:46

뭐가 뭔지..ㅋㅋ

'Java' 카테고리의 다른 글

간단 용어 정리..  (0) 2011.12.19
문제...자바..  (0) 2011.11.06
Java_09  (0) 2011.11.03
Java_08  (0) 2011.11.02
Java_07  (0) 2011.11.01
Java_06  (0) 2011.10.31
Java_09 Java 2011. 11. 3. 17:19

* 상속

- 이미 작성되어진 클래스를 그대로 물려받고 필요부분을 수정해서 새로운 클래스로 만드는 것

 



- 클래스에서는 다중 상속이 지원 안된다
  · 두개이상은 안된다. 반드시 1개만 상속 가능하다
  · C언어는 된다 ;ㅅ;



* 접근제어자
  · private : 클래스내에서만 접근가능 (하위클래스도 접근불가)
  · protected : 동일패키지, 하위클래스에서 접근가능(하위클래스는 패키지가 달라도 접근가능)
  · public : 어디에서나 접근 가능
  · default (명시하지 않는 경우, friendly) : 동일 패키지만 접근가능(하위 클래스도 동일패키지가 아니면 접근 불가능)
  · 접근우선순위 : public > protected > default > private


* Override 

주석은 컴파일 하면 사라지지만 컴파일해도 사라지지 않는 메타정보
재정의를 뜻하며 이런 것을 다형성이라 한다.
부모 클래스 메소드를 사용하되 기존의 메소드에 수정사항이 필요하여 다시 정의 한다 보면 된다.
오버라이딩(Overriding)에는 반드시 상속관계가 있고, 접근제어는 크기가 같아야 하며 메소드원형, 이름,
인수는 같아야 한다.
@Override로 표기하며 생략해도 되지만 재정의라는 것을 알리기 위함으로 표시 된다.

ex)
class A_class {
         :
public void print() { }
}
class B_class extends A_class {
         :
public void print() { } // 재 정의(Overriding) : 상위 클래스의 메소드를 재정의
public int print(int a){ } // 중복 정의(상위 클래스의 메소드와는 무관)
public int print() { } // 오류
}


- 개념정리 *-(파일첨부)
 

[중간 소스 생략 Demo:super / Exam:sub]
class Exam extends Demo{.....
[중간 소스 생략]
Exam ob1=new Exam();  // 하위 클래스(Exam)안에 변수에 메모리를 할당하고 ob1에 대입

ob1.write();  // 부모클래스와 하위클래스 모두 갖고 있는 메소드: 하위클래스 값 우선
ob1.print();  // 부모클래스에만 있는 메소드: 부모클래스 값 우선
ob1.output();  // 하위클래스에만 있는 메소드: 하위클래스 값 우선
// 하위클래스에서 하위클래스 값만 호출할 때 변수를 부모클래스의 값으로 대입하여 부모클래스의 값을
// 넣을 수도 있다. ex) System.out.printf("sub output : %d %d %d %d\n", a,b,c,super.b);

System.out.print("ob1.b:"+ob1.b);  // 변수 접근
// b의 값은 부모에도 있는 값 : 하위클래스에도 초기화된 값이 있다면 하위클래스 값 우선

ob1.a=50;  // 자식은 부모의 protected값에 접근 가능 : a를 가리키고 있던 값은 부모클래스 뿐이었으므로
// 방은 1개 → a의 값 자체를 바꾸지만 주소값은 같다.
ob1.write();  // 위와 같이 하위클래스 값 우선이나 a의 값만 50으로 초기화 된 값 출력
ob1.print();  // 상동
ob1.output();  // 상동


- 개념정리 *-업캐스팅 : 부모클래스의 객체는 자식클래스의 객체를 가리킬 수 있다.
메소드 주소값만 가져오고 사용은 부모속성
업 캐스팅 시 캐스팅 소스 생략 가능

Demo ob2=ob1;  // Demo ob2=(Demo)ob1;
// ob1(하위클래스 Exam)의 값을 부모클래스인 Demo가 가리키며 ob2에 그 값을 저장
ob2.write();  // 둘다 있는 메소드: 자식의 메소드를 호출하지만 위에서 a의 값을 바꿨고 자식클래스에
// 가보니 b값도 200으로 초기화 되어 있고 c값은 자식 또한 부모의 값을 쓰고 있으므로 c의 값은 자신의 값
ob2.print();  // 부모클래스만 있는 메소드 : 위에서 바꾼 a값만 따르고 나머지는 부모자신의 값
// ob2.output(); // 자식만 있는 메소드 : 컴파일오류(상위클래스에서는 하위클래스의 멤버 접근불가)
System.out.println("ob2.b:"+ob2.b);  // 변수 접근
// 메소드와 다르게 super클래스의 멤버 접근. 하위클래스 멤버 접근이 불가여서...?


- 개념정리 *-다운캐스팅 : 업클래스 후 다시 원래의 값으로 돌아올 때 사용
반드시 캐스팅 소스를 붙여야 한다.

Exam ob3=(Exam)ob2; // 업캐스팅에서 (형)을 생략 가능했던 것과는 상반
// 자식클래스가 부모클래스를 가리키고 있는 ob2의 형변환을 한고 그것을 ob3에 대입
ob3.write(); // 둘다 있는 메소드 : 부모의 메소드ob2를 호출하지만 ob2는 ob1을 가리키고 있으므로
// 원래의 값인 자식클래스의 값이 되지만 a의 값은 위에서 재 초기화한 값50이 들어가고 b값도
// 재 초기화한 값200이 들어간다
ob3.print();  // 부모만 있는 메소드 : 위처럼 본래의 값으로..
ob3.output(); // 자식만 있는 메소드 : 상동
System.out.println("ob3.b:"+ob3.b);
// 원래의 b값 출력


- 개념정리 *-런타임 오류, 부모가 있다 해서 꼭 자식이 있는 법은 아니다. 메모리 할당 문제...

Demo dd=new Demo();
Exam ee=(Exam)dd;
  // 이부분은 아직도 좀 이해가 안감 @_ @a


* 인스턴스 변수(&메소드)와 클래스 변수(&메소드)의 접근(==호출?)

- 인스턴스 변수 호출 → 호출예가 뭐가 있을까요......ㅡ.ㅡa
  · 객체를 생성해야 접근가능 → ex) Test ob=new Test
  · heap메모리 할당
ex) public int a=10;

- 클래스 변수 호출 → System.out.println("b:"+Ex.b);
  · 언제든지 접근 가능
  · static메모리 할당(정점영역)
  · 클래스가 로딩되는 순간 메소드 영역에 메모리 확보(한번만)
  · 객체를 생성하지 않고 바로 접근하여 사용 가능
  · static이 들어간건 클래스변수
ex) public static int b=20;

- 인스턴스 메소드 호출 → ob=new Ex();  ob.write();
  · 객체를 생성해야 접근 가능
ex) public void write(){ }

- 클래스 메소드 호출 → Ex.print();
  · 객체를 생성하지 않아도 접근 가능
public static void print(){ }


* 용어 정리
- final
  · 메소드에 final이 붙으면 override(재정의)를 할 수 없다.
    ex) public final int a=10;  public final b;  public static final int c=20;

- final : 프로퍼티에서 final을 붙이면 단한번만 초기화가 가능하며 초기화 이후에는 값을 변경할 수 없다.

- super() : 부모클래스 생성자 호출, 실행문보다 먼저 위치해야 한다.
   인자가 있는 생성자 호출시 괄호안에 인자를 넣어주고 없을시 생략가능하다.

- extends : 부모클래스와의 상속을 맺는 키워드(하위클래스에서 사용)
   class 클래스이름 extends 상위클래스이름

- equals
  · Object equals 메소드는 주소 비교 : 이 메소드를 재정의 하여 사용할 수 있다.
                                               :
- instanceof 관계연산자
추후 내용 추가.. 현재 머리에 없음..

- static
추후 내용 추가.. 현재 머리에 없음..

- Singleton
추후 내용 추가.. 현재 머리에 없음..

- Object 클래스
이것도...= _ =

- GC 가비지컬렉터.. 

- 초기화 블럭..

- 비정형인자..

'Java' 카테고리의 다른 글

간단 용어 정리..  (0) 2011.12.19
문제...자바..  (0) 2011.11.06
Java_09  (0) 2011.11.03
Java_08  (0) 2011.11.02
Java_07  (0) 2011.11.01
Java_06  (0) 2011.10.31
Java_06 Java 2011. 10. 31. 22:50

                                        >> 자바 테스트 <<

※ 주의 : 프로그램 실행 결과가 오류가 발생할 경우 컴파일 오류인지, 런 타임 오류인지를 기술할 것

이름 :

1. 자바의 기본 자료 형(primitive Type) 8가지와 각 자료형의 byte 수를 쓰시오.

  boolean(1byte) : true값과 false값만 출력
  byte(1byte) 
  char(2byte) : 유니코드 문자 한글자당 2byte
  short(2byte)
  int(4byte) : 정수형
  long(8byte) : 정수형
  float(4byte) : 실수형
  double(8byte) : 실수형

2. 다음중 식별자(Identifier)로 사용 할 수 있는 것을 모두 고르시오.
   name, #name, _tel, 주소, float, $age, ~age

name : O 첫글자 유니코드자바레터(알파벳,_,$)
#name : X 특수문자 불가능
_tel : O 언더바 가능
주소 : O 각국 언어 가능
float : O 실수형태의 기본자료형
$age : O 첫글자 유니코드자바레터(알파벳,_,$)
~age : X 특수문자 불가능

3. 다음 프로그램은 하나의 문자를 입력 받아 ASCII 코드를 출력 하는 프로그램이다.
잘못된 부분을 수정하시오.
public class Test {
 public static void main(String[] args) throws java.io.IOException {
  char ch;

  System.out.print("한문자 ? ");
  ch = System.in.read();

  System.out.println("%c : %d\n", ch, ch);
 }
}

public class Test {
 public static void main(String[] args) throws java.io.IOException {
  int ch; // 정수형태로 입력받으므로 int형 변수 선언

  System.out.print("한문자 ? ");
  ch = System.in.read(); // 한문자를 입력받아 아스키코드(정수)로 입력받으므로..

  System.out.printf("%c : %d\n", ch, ch);
  // %c, %d 같은 서식문자를 출력하기 위해 printf로 변경
 }
}

4. 다음 프로그램의 실행 결과는 ?
public class Test {
 public static void main(String[] args) {
     byte a=10, b=5, c;

     c=a+b;
     System.out.println(c);
 }
}

byte형으로 정수 선언시 overflow(값이 넘침)를 미리 감지하여
컴파일 error

아래와 같이 int형으로 변수 선언시 정상 출력되어 값은 15 가 출력됨

public class Test {
 public static void main(String[] args) {
     int a=10, b=5, c;

     c=a+b;
     System.out.println(c);
 }
}

5. 다음 코드의 출력 결과는 ?
 int []x= {1, 2, 3, 4, 5};
 int y[] =x;
 System.out.println(y[2]);

결과는 3이다.
배열은 첫번째 인자가 0부터 시작되므로 y[2]는 3번째 값을 가르킨다.

6.  다음 실행 결과는 ?
String str="420";
str+=42;
System.out.println(str);

"420"은 Stirng으로 문자열으로 입력되었고
str+=42는 str에 저장된 값에 정수 42를 더한 것이므로 둘은 그냥 이어져 붙을 뿐
연산이 이루어 지지 않는다. 결과는 42042 이다.

7. 다음 실행 결과는 ?
public class Test {
   public static void main(String[] args) {
     for (int i=0; i<=10; i++){
        if( i>6) break;
     }
     System.out.println(i);
   }
}
컴파일 에러 : for문 안에서 선언된 변수는 외부에서 사용 불가하다.
i값이 6보다 클 때 for문을 빠져나와 i값은 사용할 수 없는 변수가 된다.

8. 다음 실행 결과는 ?
int a=0, s=0;
while(a++ <= 9) {
    s+=a;
}
System.out.println("a:"+a+", s:"+s);

결과는 a:11, s:55 이다.
a++ <= 9 일때 관계연산자보다 증감연산자가 우선순위가 높아
a가 반복문에 의해 1씩 증가되어 돌아올 때 a가 9일때 비교하고 참이므로
10이 되어 내려가서 그 값을 s에 누적하고 다시 올라와서 증가되어 11이 되고
비교하면 거짓이므로 while반복문을 빠져나와 a는 11을 출력하게 되고
b는 1부터 a가 10일 때까지의 값을 합하여 누적하고 a가 11일 땐 이미 a가
반복문을 빠져나간 뒤 이므로 55가 된다.

9. 다음의 실행 결과는 ?
System.out.printf("%.2f\n", 123.236);

답은 : 123.24
%.2f 실수형태의 서식문자 이며 소수점 둘째짜리까지만 표시하고 그 뒷자리는
반올림

10. 다음은 이름, 국어, 영어 점수를 입력 받아 총점을 구하는 프로그램입니다.
[   ]를 채우세요.
import java.io.*;

public class BufferedReaderTest {
    public static void main(String[] args) throws IOException {
        String name;
        int kor, eng, tot;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("이름 ? ");
        name = br.readLine(); // 엔터치기 전까지 한줄 입력받기

        System.out.print("국어 ? ");
        kor = Integer.parseInt(br.readLine()); // parseInt:문자열을 정수형태로 변환
        System.out.print("영어 ? ");
        eng = Integer.parseInt(br.readLine());
        tot = kor + eng;

        System.out.printf("이름: %s, 총점: %d\n", name, tot);
    }
}

11. 다음의 실행 결과는 ?
int a = 12 & 6;
System.out.println(a);

12는 2진수로 1100 이고 6은 0110 이다.
논리곱은 값이 서로 참(1)일 때만 참..
1100
0110    → 0100 으로 결과는 4


12. 다음의 실행 결과는 ?
int a = 12 ^ 6;
System.out.println(a);

XOR : ^ 는 각 항의 값이 0과 1일 때 (즉 서로 다른 값일 때 참)
1100
0110    → 1010 으로 결과는 10

13. 다음의 실행 결과는 ?
int a = 32 >> 3;
System.out.println(a);

>> 는 오른쪽으로 이동하고 남은 자리는 부호로 채우므로
32 = 2진수로 100000 이고 오른쪽으로 3칸 이동하고 양수 이므로
부호는 0이고 000100 이 된다. 이것을 10진수로 바꾸면 4 다. 

14. 1~100까지의 3의 배수의 합를 구하는 프로그램입니다. [   ]를 채우세요.
int s=0, n=0; // 변수 선언 및 초기화
for(n=0; n<100; n+=3) { // 1~100까지 n은 3씩 증가하고
   s+=n;  // 그 증가값을 s에 누적
}
System.out.println("결과 : " + s);

15. 1~100까지의 홀수의 합를 구하는 프로그램을 작성 하시오.

 public class Test {
  public static void main(String[] args) {
   
 int s=0, n=0;
 for(n=1; n<100; n+=2) { // 1에서 2씩 증가하므로 1,3,5,7...
    s+=n;  // 그 증가값을 s에 누적
 }
 System.out.println("결과 : " + s);
  }
 }

16. 다음 실행 결과는 ?
int x =5;
boolean b1 = true;
boolean b2 = false;

if((x==4) && !b2) // false의 값이므로
  System.out.print("1 "); //1은 출력하지 않고 if문을 빠져나와
System.out.print("2 "); // 2를 출력하고
if ((b2 = true) && b1) // b2값을 무조건 참이 되도록 만들고 b1값도 참이므로
  System.out.print("3 "); // 3을 출력한다.

답은 2 3

17. 다음 실행 결과는 ?
int x = 0;
int y = 10;
do {  // 무조건 한번은 반복하므로
   y--;  // y값은 9가 되고 (후위 감소)
   ++x;  // x값은 1이 되고 (전위 증가)
}while(x < 5); // x가 5보다 작을 때까지 반복이니 총 4회 반복하고 5회때 반복문을 빠져나온다. 
System.out.print(x + "," + y); // y값은 4회 반복으로 5가 되고 x값은 전위 증가로 5가 되고
// 5가 된 값이 5보다 작다는 말은 거짓이므로 반복문을 빠져나와
x=5, y=5 가 되어 결과는 5,5

18. 다음 실행 결과는 ?
int x=12;
while (x < 10) { // 조건이 false 이므로 반복문을 빠져나와
    x--;
}
System.out.print(x); // 초기값인 12를 출력한다.
답은 12

19. 다음의 출력 결과를 출력 하는 프로그램을 작성하시오.
       *
     ***
   *****
 *******
public class Test{
public static void main(String[] args){
int i,j;
for(i=1; i<=4; i++){ // 4행 출력
    for(j=1; j<=4-i; j++){ // 공백 출력 3,2,1,0
        System.out.print(" "); // 공백 한칸 
    }
    for(j=1; j<=i*2-1; j++){ // j<=i 일때 오른쪽이 직선, *이 삼각형 모양으로 되기 위해
        // 1, 3, 5, 7, 9.. 식으로 가려면 i값은 1,2,3,4,5.. 식이므로 1,3,5,7,9..가 되기 위한
        // 조건식을 찾으라는 말, 1*2-1=1, 2*2-1=3....
       System.out.print("*");
    }
    System.out.println();
}
}
}

20. 콘솔창에서 Test.java 파일을 컴파일하고 실행하는 방법은 ?
컴파일 : cmd> javac Test.java
실행 : cmd> java Test

설명은 아마도, 필요 없을듯?! 

------------------------------------------------------------------------------

* 객체 지향이란??

현실 세계는 객체(존재하는 모든 것)들의 집합이며 그 모든 것은 상태와 행동의
객체로 표현된다.

그 객체들을 인간이 이해하는 방식으로 프로그래밍화 시켜 시스템에 적용시키고자
하는 것을 객체 지향이라 한다.

객체(object)/클래스(class)/메시지(message)를 기본모형으로 하며
하나의 대상에 대해 일반적인 구성, 상태, 동작 등에 대해 기술하는 작업을 추상화
하는 그 대상을 객체라고 하고 객체라는 개념은 그 객체의 성질이나 특징을 나타내는
데이터로 이루어진 부분과 동작, 행동을 나타내는 부분으로 기술되어 진 것이다.

클래스란??
객체라는 개념을 일반화 시킨 것.
비슷한 부류의 객체를 분류한 것
그런 객체 부류의 추상화된 관념

클래스를 왜 쓰나?
재사용성이 가장 큰 이유?

클래스는 어떻게 작성하는가?
1. 추상화
   상태
   행동
2. 클래스 작성
3. 객체 생성 및 호출

......도통 무슨 말인지 이해가 가지 않지만 일단 정리해두고 추후 수정..;;

'Java' 카테고리의 다른 글

Java_08  (0) 2011.11.02
Java_07  (0) 2011.11.01
Java_06  (0) 2011.10.31
Java_05  (0) 2011.10.29
Java_04  (0) 2011.10.27
Java_03  (0) 2011.10.26
Java_01 Java 2011. 10. 24. 18:49

* 자바 입문

- 프로그램 설치
실무에서는 JDK 5.x 버젼이나 6.x 버젼을 주로 사용할 수 있으나 현재 올라온 버젼(7.x)에서도 외형상(?)/기능상 다른점은
크게 없어 최신 버전을 홈페이지에서 다운로드 하여 진행하도록 한다.
(초반엔 수기로 써도 될만큼 익숙해지기 위해 Tool을 사용하지 않는다)

1. http://java.sun.com 에 접속하여

△ 오른쪽 상단에 위치한 Java SE 7 Update 1 클릭

2. 페이지 이동하여 왼쪽 첫번째 Java Platform (JDK) 7u1 클릭 ▽

3. 하단에 windows 32bit 전용 파일인 jdk-7u1-windows-i568.exe 파일을 다운로드 하여 설치한다.

4. 설치는 뭐.. 여타 다른 프로그램과 다를 것 없이 다음다음다음다음...

5. Path
JDK 6.x 버젼까지만 해도 설치된 폴더내에 파일을 다른곳에서도 실행이 되도록 하기 위해 path라는 것을 설정해 주었다 한다.
허나 7.x에서는 패치가 되어 있는지 몰라도 path가 설정없이도 이 경로에 있는 실행파일을 실행할 수 있는 것으로 확인 되었다
하나 그 방법이 뭐였는지 기억이 나질 않는다...-_-a
여하튼 path 설정 방법을 보겠다.
바탕화면-내컴퓨터 에서 오른쪽 마우스 클릭하여 제일 하단에 속성(R) 클릭

고급 탭에 환경변수를 클릭하여

Path를 클릭하여 편집(I)

변수 값의 마지막 주소가 bem이라는 글자가 보임을 확인하고 뒤에 다음과 같이 추가로 입력한다

;C:\Program Files\Java\jdk1.7.0_01\bin;
이제 완료 되었다. 확인을 누르며 창을 나와 명령프롬포트 창에서 셋팅이 제대로 되었는지 확인한다
시작-실행-cmd 입력하여 명령프롬포트창을 띄운뒤 set 이라 입력하여 Path의 변수 값이 제대로
입력되었는지 확인한다.

프로그램 준비는 완료(?) 된 것 같다. 소스 작성에 있어서는 html/css/javascript 때와 같이 Edit Plus를 사용한다.

6. 자바의 특징
자바는 명령어에서나 파일 저장에 있어도 대소문자를 명확하게 구분한다.
장점이라면 어디에서나 사용가능 하다 한다. ex) 리눅스, 솔라리스, 맥, 윈도우
(쪼끔 접해봤다싶은건 윈도우와 맥정도겠지만...)

저장의 원칙!
반드시 public(키워드) class 클래스명으로 저장 하며
public이 없어도 class이름으로 저장하고
class명이 여러개여도 public은 1개다.

여담? 프로그램이란...
사람이 하는 일을 그대로 순서대로 나열하는 것. 추상적이고 증명되지 않은 것을 프로그래밍화 시킬 수 없다.
순차적으로 코딩함이 일반적이며 아직까지 기본적으로 인공지능이랄 것은 없다.

여담? 초심자의 가장 큰 문제?
알고리즘이 없다는 것. 보통 실무 경력 3~4년 정도는 되야 좀 잡힌다 한다.
명령어는 암기하고 안되면 보고 치면 되지만 알고리즘이라는 놈은 그렇지 않다는 것..
알고리즘 중점의 습득이 중요하다.

Java이건 그 어떤 프로그램이건 간에 다 적용되는 말이겠지만
프로그래머가 작성한 코드는 컴퓨터가 이해할 수 없는 언어다.
따라서 통역을 해줄 컴파일러 라는 놈이 필요하다 한다.
우리는 쉘방식이라는 것으로 명령프롬포트에서 확인을 주로 하게 될 것이라는 것 정도 외에는
아직 잘 모르겠다. @_@a 이와 같은 프로그램을 Object프로그램/목적프로그램이라고도 한다고 한다.

한마디로 작성된 언어는 자바바이트코드로 컴파일(번역)되어 Virtual Machine이라는 녀석으로 컴퓨터가
테스트가 가능해진다 한다. 타 언어와는 달리 컴파일을 두번 하는 꼴이어서 느리다는 것이 단점

객체지향 언어 : Visual Basic, C#, C++, Java
구조적 프로그램언어 : C언어가 대표적인데, 이는 순차구조(위~아래 실행)/선택구조/반복구조
라는게 있다고는 하고 재사용성이나 반복적인 사용이 어렵고 유지보수가 힘들어서 객체지향시스템으로
Java라는 언어가 나왔다고는 하는데 아직 깊게 들어가지 않아 잘 모르겠고...

프로그램 작성시에는 라이브러리 라는 것이 필요하다 하는데 오라클 사이트에서 그것을 얻을(?) 수 있다.
API라고 하는데 가장 기초적인 부분이라 하며 중요하다.

URL : http://download.oracle.com/javase/7/docs/api/ 이며 대분류 / 중분류 / 소분류
대분류 상단에 보면 package라고 있는데 연관되어진 것들을 모아놓은 집단이라 보면 된다.

일단 Java는 객체지향 시스템으로 업무적인 부분이나 네트워크쪽에서 주로 사용되며
Java의 주 발전원동력으로는 인터넷이 있다 하겠다.
규칙에 의 해 코딩된 것은 컴퓨터는 알 수 없기 때문에 상단에서 기재했듯 바이트 코드로 변환하고
가상머신이 컴파일 하여 파일명.class파일을 생성하게 되고 그를 실행하기 위해 또 다른 명령어가 필요하다.

아래에서는 그것들을 기재하려 한다.

7. 컴파일 및 실행
컴파일 : 한마디로 명령프롬포트창에서 javac 파일명(첫글자대문자).java 치고 엔터. 끝?!
컴파일시 아래와 같이 .class파일이 생성되었음을 확인한다.

컴파일러 = javac 파일명.java
실행 = java 파일명

실행에는 위와 같이 java 파일명(첫글자대문자) 치고 엔터 치면 안의 내용이 실행된다. 실행 코드로는 앞으로
쓸일이 많겠으니 미리 질리면 안되니 생략...

자바는 형검사가 엄격한 언어이므로 프로그램 작성시 대/소문자 (오타는 기본이고..)를 꼭 유념해야 한다.
아래 그림 참고 ▽


참고로 가상머신이라는 놈은 C언어에서 프로그래머가 메모리의 관리라던가 주소값(포인터) 설정에도
직접 다 해야 하는 반면 자기가 알아서 다 한다고 하는데 아직까진 체감하기 어려울 듯 하다..
(첫 날이니까...-.-)

입문에 기본이자 필수적으로 외워야 할 코드 작성.. 아직 세부적으로 뭐가 뭔지 잘은 모르겠지만
본김에 외우자.

 public
class 클래스명(첫글자대문자){ // 클래스의 시작
 public static void main(String[] args){ // main이라는 메소드 없이는 프로그램 실행이 안된다.
      // 코딩시작 @_ @/  이 형식에 맞춰 쓴다. 외워라.
  // 클래스명 되도록이면 한글을 쓰지 말자.
 } // main_End
} // 클래스명_End


* 별첨 : 실행결과를 보기위해 매번 명령프롬포트 창에 들어가서 매번 컴파일(javac 파일명.java)하고
실행(java 파일명)하고를 반복하기엔 번거로움이 있어 사용하는 에디터인 에디트플러스에서 간단히
실행결과를 볼 수 있도록 하는 설정 방법 첨부
다른 에디터에서도 이와 비슷한 도구의 옵션기능이 있다면 적용가능 할 것 같다.

1.  도구 - 사용자 도구 구성 (컴파일 단축키 생성)


2. 창이 뜨면 추가 - 프로그램 (컴파일 단축키 생성)


3. 메뉴 제목에 알맞는 제목을 넣고 명령에 ...을 선택하여 찾아보기 창이 뜨면 컴파일시
    javac 파일명.java 했었던 것을 기억하며 javac.exe 파일을 선택 (컴파일 단축키 생성)


4. 인수에는 파일 이름을 선택한다. (컴파일 단축키 생성)


5. 디렉토리에는 파일 디렉토리 선택 하면 완료. (컴파일 단축키 생성)


6. 다시 추가 버튼을 누르고 메뉴 제목도 적절하게 넣은뒤 명령에 ...을 클릭하여 이번엔 자바 실행시
썼던 명령어(java 파일명)를 기억하며 java.exe 파일을 선택하고 인수로는 java 파일명 ← 이것처럼
확장자가 없었으므로 확장자를 뺀 파일 이름을 선택하고 적용 확인, 완료 (실행 단축키 생성)


7. 아래와 같이 단축키가 생성 되었음을 알 수 있다.


Ctrl + 1 (컴파일 단축키)
Ctrl + 2 (실행 단축키)





.........정리 끝;
첫날이라 방대하게 적긴 했지만 앞으로는 과연 그럴만한 여력이 있을지....?

'Java' 카테고리의 다른 글

Java_06  (0) 2011.10.31
Java_05  (0) 2011.10.29
Java_04  (0) 2011.10.27
Java_03  (0) 2011.10.26
Java_02  (0) 2011.10.25
Java_01  (0) 2011.10.24