Java 유의사항

Software/Java 2013. 7. 4. 15:03

1. 선언문은 세미클론으로 끝나야 한다.

2. 코드 블록은 중괄호 한쌍에 의해 정의 됩니다. {}

3. int 변수를 정의할때 오른쪽과 같이 이름과 형식을 지정해 줘야 합니다. int x;

4. 대입 연산자는 등호 한 개로 구성됩니다. =

5. 동치 연산자는 등호 두 개로 구성됩니다. ==

6. while 순환문에서는 조건 테스트가 참이면 그 블록(중괄호 안에 있는 부분)에 있는것을 모두 실행시킵니다.

7. 조건 테스트가 거짓이면 while 순환문 코드 블록은 실행되지 않으며 순환문 블록 바로 뒤에 있는 코드로 넘어갑니다.

8. 부울 테스트는 괄호안에 들어갑니다. while(x==4){ }

1. 객체지향적인 프로그래밍을 하면 제작과 테스트 과정이 끝난 코드를 건드리지 않고도 프로그램을 확장할수 있습니다.

2. 모든 자바 코드는 클래스 내에서 정의됩니다.

3. 클래스는 해당 크래스 유형의 객체를 만드는 방법을 설명하는 역활을 합니다. 클래스는 청사진과 같다고 할 수 있지요.

4. 객체는 각자 알아서 자기 할 일을 처리할 수 있습니다. 사용자는 객체에서 작업을 처리하는 방법에 대해서는 신경쓰지 않아도 됩니다.

5. 객체에는 알고 있는 것과 할수 있는 것이 있습니다.

6. 객체가 자기 자신에 대해 알고 있는 것은 인스컨스 변수라고 부릅니다. 객체의 상태를 나타내지요.

7. 객체가 할 수 있는 것은 메소드라고 부릅니다. 객체의 행동을 나타내지요.

8. 클래스 새로 만들때는 그 클래스 유형의 객체를 만들어서 테스트하는 테스트용 클래스를 따로 만들어 보는 것이 좋습니다.

9. 클래스에서는 덜 구체적인 상위 클래스로부터 인스턴스 변수와 메소드를 상속할 수 있습니다.

10. 프로그램을 실행시킬 때 보면 자바 프로그램이란 결국 다른 객체와 대화를 하는 객체에 불과합니다.

1. 클래스에서는 객체가 아는 것과 객체가 하는 것을 정의 합니다.

2. 인스턴스 변수(상태)는 객체가 아는 것입니다.

3. 메소드(행동)는 객체가 하는 것입니다.

4. 메소드에서 인스턴스 변수를 이용하여 같은 유형의 객체가 다른 식으로 행동하게 할 수 있습니다.

5. 메소드에서 매개변수를 사용할 수 있습니다. 즉 메소드에 값 한 개 이상을 전달할 수 있습니다.

6. 전달하는 값의 개수와 유형은 반드시 메소드를 선언할 대 지정한 것과 같아야 하며 그 순서도 같아야 합니다.

7. 메소드 안팎으로 전달되는 값은 상황에 따라 자동으로 더 큰 유형으로 올라갈 수 있습니다. 더 작은 유형으로 바꿔야 한다면 강제로 캐스팅을 해야 합니다.

8. 메소드에 인자를 전달할대는 리터럴값(2, 'c'등)을 사용할수 있고 선언된 매개변수 유형의 변수 (예를 들어,int 변수 x)사용할 수도 있습니다.

9. 메소드를 선언할때 반드시 리턴 유형을 지정해야 합니다. 리턴 유형을 void 로 지정하면 아무것도 리턴하지 않아도 됩니다.

10. 메소드를 선언할때 void가 아닌 리턴 유형을 지정했을 때는 반드시 선언된 리턴 유형과 호환 가능한 값을 리턴해야 합니다.

1. 자바 프로그램을 만들때에는 우선 고수준 설계부터 시작합니다.

2. 새로운 클래스를 만들 때는 일반적으로 다음과 같은 세가지를 만들어야 합니다. 준비코드 -> 테스트 코드 -> 실제 (자바)코드

3. 준비 코드에서는 어떻게 해야 할지 보다는 무엇을 해야 할지를 기술해야 합니다. 구현은 나중에 하면 됩니다.

4. 테스트 코드를 설계할 때는 준비 코드를 활용하면 좋습니다.

5. 메소드를 구현하기 전에 테스트 코드를 만들어야 합니다.

6. 순환문 코드 반복 횟수를 미리 알 수 있는 경우에는 while보다는 for를 쓰는 것이 좋습니다.

7. 변수에 1을 더할때는 선/후 증가 연산자를 쓰면 됩니다.

8. 변수에서 1을 뺄 때는 선/후 감소 연산자를 스면 됩니다.

9. String 을 int 로 바꿀때에는 Integer.parseInt()를 쓰면 됩니다.

10. Integer.parseInt()는 숫자를 나타내는 String("0","1","2"등)에 대해서만 사용할수 있습니다.

11. 순환문을 중간에 무조건(부울 테스트 조선이 아직 참인 경우에도) 빠져 나올때는 break를 사용하면 됩니다.

1. ArrayList 는 자바 API에 포함되어 있는 클래스 입니다.

2. ArrayList에 뭔가를 집어넣을 때는 add()를 쓰면 됩니다.

3. ArrayList에서 뭔가를 제거할 때는 remove()를 쓰면 됩니다.

4. ArrayList에 들어있는 어떤 것의 위치를 알고 싶다면 (또는 들어있는지 알고 싶다면)indexOf()를 쓰면 됩니다.

5. ArrayList가 비어잇는지 확인할 때는 isEmpty()를 쓰면 됩니다.

6. ArrayList의 크기(원소의 개수)를 알고 싶다면 size()메소드를 쓰면 됩니다.

7. 일반 배열의 길이 (원소의 개수)를 알고 싶을 때는 length라는 변수를 쓰면 됩니다.

8. ArrayList는 필요에 따라 그 크기가 동적으로 바뀝니다. 객체를 추가하면 커지고 제거하면 작아집니다.

9. 선언할때 지정한 배열 유형에 매치되는 것만 넣을수 있는 일반 배열과 달리 ArrayList에는 아무객체나 집어 넣을수 있습니다.

10. 원시 유형은 ArrayList에 직접 집어 넣을수 없습니다.

11. 클래스는 패키지 단위로 묶입니다.

12. 클래스에는 패키지명과 클래스명을 합쳐서 만든 전체 이름이 있습니다. ArrayList 클래스의 전체 이름은 java.util.ArrayList입니다.

13. java.lang을 제외한 다른 패키지에 들어있는 클래스를 사용하려면 자바에 클래스의 전체 이름을 알려줘야 합니다.

14. 소스 코드 맨 위에서 import 선언문을 사용하거나 코드에서 그런 클래스를 사용할 때마다 항상 전체 이름을 입력해도 됩니다.


1. 인스턴스 변수는 그 변수가 들어있는 객체 안에(힙 안에)저장됩니다.

2. 인스턴스 변수가 객체에 대한 레퍼런스인 경우에는 레퍼런스와 객체가 모두 힙에 저장됩니다.

3. 어떤 클래스 유형에 대해 new키워드를 사용할 때 실행되는 코드를 생성자라고 합니다.

4. 생성자명은 반드시 클래스명과 같아야 하며 리턴 유형은 없어야 합니다.

5. 생성자를 이용하여 생성되는 객체의 상태(인스턴스 변수)를 초기화할 수 있습니다.

6. 클래스에 생성자가 없으면 컴파일러에서 기본 생성자를 만듭니다.

7. 기본 생성자는 언제나 인자가 없는 생성자입니다.

8. 클래스를 만들 때 생성자를 만들면(어떤 종류의 생성자를 만들어도) 컴파일러에게 기본 생성자

를 만들어 주지 않습니다.

9. 인자가 없는 생성자를 만들고 싶은데, 인자가 있는 생성자가 따로 있다면 인자가 없는 생성자도

손수 만들어야 합니다.

10. 가능하면 프로그래머가 제대로 된 객체를 만들 수 있게 인자가 없는 생성자도 만드는 것이 좋

습니다. 그런 경우에는 기본값ㅇ르 지정해야 겠죠?

11. 생성자 오버로딩을 활용하면 클래스에 두개 이상의 생성자를 만들수 있습니다.

12. 오버로드된 생성자들의 인자 목록은 반드시 서로 달라야 합니다.

13. 인자 목록이 똑같은 생성자가 두개 이상 있을 수 없습니다. 인자 목록을 따질때는 순서와 인자

의 유형을 모두 따집니다.

14. 프로그래머가 직접 기본값을 지정하지 않아도 인스턴스 변수는 자동으로 기본값이 지정됩니다.

원시 유형의 기본값은 0/0.0/false고 객체에 대한 레퍼런스의 기본값은 null입니다.

1. 정적 메소드(static method)는 객체 레퍼런스 변수 대신 클래스명을 써서 호출합니다.

Math.random() vs. myFoo.fo()

2. 정적 메소드는 힙에 그 메소드가 들어있는 클래스의 인스턴스가 없어도 호출할수 있습니다.

3. 특정 인스턴스 변수값에 의존하지 않는(그리고 그럴 가능성도 전혀 없는)유틸리티 메소드는 정

적 메소드로 만드는 것이 좋습니다.

4. 정적 메소드에서는 특정 인스턴스와는 연관되지 않기 때문에(클래스 하고만 연관되기 때문에)

어떤 인스턴스 변수값도 사용핤 없습니다. 어떤 인스턴스에 들어있는 인스턴스 변수값을 사용

해야 할지 결정할 수 없기 때문입니다.

5. 정적 메소드가 아닌 메소드는 보통 인스턴스 변수 상태와 연관되어 있기 때문에 정적 메소드에서

는 정적 메소드가 아닌 메소드를 사용할 수 없습니다.

6. 정적 메소드만 들어있는 클래스가 있다면 그 클래스의 인스턴스를 만들 필요가 없기 때문에 그

생성자를 private로 지정하는 것이 좋습니다.

7. 정적변수(static Variable)는 해당 클래스에 속하는 모든 객체에서 공유하는 변수입니다. 인스턴

스 변수는 각 인스턴스마다 사본이 하나씩 있지만 정적 변수는 한 클래스에 복사본이 하나밖에

없습니다.

8. 정적 메소드에서도 정적 변수를 사용할 수 있습니다.

9. 자바에서 상수를 만들때는 변수에 static과 final로 지정하면 됩니다.

10. final로 지정한 정적변수는 변수를 선언할 때 또는 정적 초기화 부분에서 반드시 값을 대입해야

합니다.

static{

DOG_CODE=420;

}

11. 상수(final로 지정한 정적 변수)의 이름은 (일반적으로)모두 대문자로 붙입니다.

12. final로 지정한 변수값은 값을 한번 대입하면 바꿀 수 없습니다.

13. final 인스턴스 변수값은 선언할때 또는 생성자에서 대입해야 합니다.

14. final 메소드는 오버라이드할 수 없습니다.

15. final 클래스는 확장할 수 없습니다.(하위클래스를 만들 수 없습니다.)

1. 실행 중에 문제가 생기면 메소드에서 예외를 던질 수 있습니다.

2. 예외는 언제나 Exception 유형의 객체입니다. (다형성을 설명한 장에서 배웠듯이 어떤 객체이 상

속 트리 위쪽 어딘가에 Exception이 있다면 그 객체는 Exception객체입니다.).

3. RuntimeException 유형에 속하는 예외에 대해서는 컴파일러에서 신경을 쓰지 않습니다.

RuntimeException은 선언하지 않아도 되고 try/catch로 포장할 필요도 없습니다(물론, 선언을 하

거나 try/catch블럭을 써도 되긴 합니다.)

4. 컴파일러에서 항상 확인하는 Exception 유형을 '확인 예외' 라고 부르는데 정확하게 말하자면

'컴파일러에서 확인하는 예외'라고 할 수 있습니다. 컴파일러에서 확인하지 않는 예외는

RuntimeException 뿐입니다. 다른 모든 예외에 대해서는 정해진 규칙에 따라 적절한 코드를 사

용해야 합니다.

5. 메소드에서 예외를 던질 때는 throw 키워드를 사용하며, 그 뒤에는 새로운 예외 객체를 만드는

구문을 적어주면 됩니다. throw new NoCaffeineException();

6. 확인 예외를 던질 수 있는 메소드를 선언할 때는 반드시 throw Exception선언문을 써서 예외를

던질 수 있다는 사실을 공표해야 합니다.

7. 확인 예외를 던지는 메소드를 호풀할 때는 반드시 정해진 규칙을 준수해야 합니다.

8. 예외를 처리할 준비가 되어있다면 예외를 던지는 메소드를 호출하는 코드를 try/catch로 감싸야

하며 예외 처리/복구 코드는 catch 블록안에 넣어야 합니다.

9. 예외를 처리할 준비가 되지 않았다면 공식적으로 예외를 '회피'함으로써 컴파일러에서 그냥 넘어

가게 할수 있습니다.

'Software > Java' 카테고리의 다른 글

Eclipse 단축키  (0) 2013.07.04
Java 용어  (0) 2013.07.04
Class  (0) 2013.07.04
[JAVA] package 란?  (0) 2013.07.04
Java의 변수 타입  (0) 2013.07.04
Posted by MegaNzine
,