본문 바로가기
Language/Java

[Java] java 입문 07 - 생성자 / static / Array / Loop

by 별토끼. 2017. 5. 16.
반응형


[Java] java 입문 07 - 생성자 / static / Array / Loop


  • 생성자를 이용한 객체생성과 메소드 이용
- 인자로 전달받을 수 있는 생성자를 만든다.

- 객체를 생성한다.

- 출력하는 메소드를 생성한다.

- 메인클래스에서 객체를 3개 생성하고 출력한다.

- 출력할 때 메소드를 접근하는 법은 객체에 . 으로 접근한다.


  • static 메소드의 필드 접근

- static을 포함한 필드는 클래스명으로 접근이 가능하다.

- static을 포함하지 않은 필드는 클래스명으로 접근할 수 없다.

=> 객체를 생성해서 키값(id값)으로 접근해야 한다.

- 같은 클래스 내부에서는 클래스명을 붙이지 않아도 된다. (12, 13줄)


  • Array
- dataType[ ] 형태의 데이터타입을 갖는다. 
EX > int[ ], double[ ] 등

- 배열은 heap영역에서 id값으로 관리된다.
- 참조 데이터 타입이 배열로 만들어질 경우 배열에 key값이 담긴다.

- 디버깅 했을 때 담기는 값 알아보기

: array는 id값을 갖는 참조 데이터 타입이다.

: 기본 데이터 타입은 value값을 갖는다.

: 참조 데이터 타입은 id값을 갖는다.

 - 배열을 생성(int[] nums3=new int[3] 등)한 후 값을 담는다.(nums2[0]=10 등..)


* 배열요소에 참조데이터 타입이 들어가는 경우

- Car 클래스에 생성자를 3개 생성한다.

- 일반 멤버 메소드 drive()를 선언한다.

- 객체 생성하는 것과 같은 형태로 dataType에 주의하여 배열을 생성한다.

- 메소드 호출도 아래와 같이 가능하다.

 * debug결과

   - cars의 객체는 각각 id값이 다 다르다.

   - cars2의 객체는 모두 같은 객체이므로 id값이 같다.


  • Array를 인자로 갖고있는 method 호출하기
- array를 dataType에 맞게 생성하여 넣어주면 된다.

* 방법1

* 방법2


  • Array에서 오류

 - RunTime 오류(ArrayIndexOutOfBoundsException)
  : 컴파일은 되지만 실행중에 오류가 발생한다. 
  : Array를 적당한 dataType을 선언하지 않아서 발생한다.

- NullPointerException 오류

  : nums2에 참조값이 존재하지 않는다.

  : 그럼에도 length 호출을 하여 NullPointerException 오류가 발생한다.



  • Loop
- for문
:  i는 for문을 벗어나면 사라진다
:  tmp변수는 for문을 벗어나면 사라진다

*debug결과 

- debug할 경우 i와 tmp변수가 사라졌음을 알 수 있다.


* 배열 값을 출력하는 for문

 - 배열의 length라는 필드를 이용할 수 있다.

 - 반복문 속 배열의 값을 변수에 넣을 때, 변수 Type 선언에 주의해야한다.


반응형

댓글