외규장각 도서 환수 모금 캠페인

1. 형과 변수
자바의 값에는 그에 해당하는 형(Type)이 있다.
ex) "Hello World" -> String 형
     System.out -> PrintStream
     13 -> int
변수 : 형, 이름, 값을 담아두는 메모리 상의 저장소
변수 선언 ex) String greeting = "Hello World!";
        특정 형의 변수를 새로 선언하고, (option)초기값을 배정한다.
식별자 : 변수, 메소드, 클래스의 이름을 말한다.
식별자의 규칙
*문자, 숫자, 밑줄문자(_)를 나열하여 만들수 있다. 단 숫자로 시작할 수 없다.
*?와 %와 같은 그 이외의 심벌은 사용불가
*공백은 들어갈수 없다.
*public과 같은 예약어(프로그램이 정해놓은 단어) 사용불가
*대소문자 구분

2. 배정 연산자
배정 연산자(=)를 통해 변수를 초기화해야 한다.또 배정 연산자를 통해 재배정할 수 있다.
int luckyNumber = 13;
과 같은 방법으로 luckyNumber라는 변수에 13이라는 값을 배정하였다.
여기에 다시 luckyNumber = 12;를 입력하면
luckyNumber라는 변수에는 12가 배정된다.

3. 객체, 클래스, 메소드
객체 : 프로그램에서 메소드 호출의 대상이 되는 실체
메소드 : 객체의 내부 데이터에 접근하는 일련의 명령으로 구성
클래스 : 자신에 속한 객체에 적용할 수 있는 메소드 정의

4. 메소드 매개변수와 반환 값
매개변수는 메소드의 입력이 되어 정해진 명령을 수행가능하게 해준다.
메소드의 반환값은 호출한 코드에서 사용하기 위해서 메세지가 계산한 결과이다.
ex) System.out.println(greeting)
     System.out.println는 C의 printf와 같은 기능을 하는 메소드이다. greeting이 매개변수이며 메소드의 입력이 된다.
하나의 클래스에 같은 이름의 메소드가 둘 이상인 경우(매개 변수형은 다름) 메소드이름이 중복되었다고 한다.

5. 수형
|- 정수 : 전체 수
|- 부동소수점 : 소수점 이하 부분
    -> 컴퓨터에서 주를 일련의 유효숫자(1~9)와 소수점의 위치로 어떻게 표현하는가를 나타낸다.
double형은 소수점 이하 부분을 가질 수 있는 부동소수점수를 나타낸다.

6. 객체의 구성
ex) Rectangle 클래스
 

이것은 4개의 수를 담고 있는 메모리 블록을 나타낸다. 실제로 Rectangle 클래스는 4개의 변수로 구성되어 있다.

이때 새 객체를 구성 하는 방법은 new 연산자, 클래스이름, 매개변수나열이다.
 new Rectangle(5, 10, 20, 30)
보통 new 연산자의 결과는 변수에 저장되므로
ex) Rectangle box = new Rectangle(5, 10, 20,30);
만약 매개변수 없이 객체를 구성한다해도 괄호는 붙여야 하며 변수는 모두 0이다.
ex) new Rectangle();

7. 접근 메소드와 상태변이 메소드
접근 메소드 : 객체에 접근하여 객체의 상태를 바꾸지 않고 그 객체에 대한 정보를 반환해주는 메소드
ex) String 클래스의 length 메소드
상태변이 메소드 : 객체의 상태를 바꾸는게 목적인 메소드
ex) Rectangle 클래스의 translate 메소드
--------------------------------------------------------
import java.awt.Rectangle;
public class MoveTester {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Rectangle box = new Rectangle(5, 10, 20, 30);
  
  box.translate(15, 25);
  
  System.out.println("After moving, the top-left corner is : ");
  System.out.println(box.getX());
  System.out.println(box.getY());
 }
}
--------------------------------------------------------
컴파일을 해보면 상태변이 메소드로 인해 X Y값이 변했다는 것을 알 수 있다.

<참고>
자바의 모든 API는 웹상에 공개되어 있는 설명도 되어있다.
자바 API 보러가기

9. 객체 참조
객체가 선언되어 초기화가 되었다고 해서 하나의 객체가 모든 정보를 가지고 있는 것이 아니고 객체는 단지 메모리 블록에 대한 주소값을 가지고 있는 것이다.

그림과 같이 된다.
만약 Rectangle box2 = box;를 추가하게 된다면 어떻게 될것인가?

이렇게 같은 주소를 가리키게 되어 box2로도 접근이 가능하다

수는 객체와 달리 그 값을 그대로 가지게 된다.
int luckyNumber = 13; 이라고 정의를 하게 되면
메모리의 어느 한 부분에 luckyNumber = 13이라고 저장된다.
만약 int luckyNumber2 = luckyNumber; 라고 정의를 한다면???
이것은 luckyNumber의 숫자를 읽어서 luckyNumber2의 메모리영역에 복사가 된다.

객체와 수의 참조는 다르다는 것을 명심하길 바란다.

ps. 역시나 두번째도 쉽지 않네요;;;;
     이러다가 언제 마무리 할지 모르겠어요.^^;;;
Posted by 닉네임영역
,


사랑합니다. 편안히 잠드소서