개발자 학습/JAVA 복습

10월 8일 (6일차)(3월 14일 오전&오후 영상 복습)

aelin14 2024. 10. 8. 21:55

- 2차원 배열 : 
heap 메모리에 행(열을 참조하는 주소값이 있음), 열(값이 있음) 각각의 메모리 칸이 있는거


1) 정방형
    int [][] num;
    num = new int[3][2];   >3행 2열의 2차원 정방형 배열
    행의 길이? num.length
    2번째 행의 길이? num[1].length
    3번째 열의 2번째 요소? num[2][1]

foreach로 2차배열 출력하기
for (int[] n : num) {
for(int v : n ) {
System.out.println( v );
    }
}

2) 비정방형
    int [][] num = new int[3][];    << 여기서 열 크기를 지정하지 않는게 키포인트!!!
    num[0] = new int[1];
     num[1] = new int[3];     << 열의 크기를 이때 작성한다.
    num[2] = new int[2];


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

- 파라미터: 메서드의 소괄호에 있는 변수
- 아규먼트: 파라미터에 저장되는 값

- 이클립스를 통해 메인메서드에 아규먼트 넣는 방법
  실행 하고자 하는 파일 오른쪽 클릭> 런애즈> run configuration> 실행하고자 하는 파일 확인 후 arguments탭으로 변경> 넣고자 하는 아규먼츠 값 넣기(공백으로 구분함, 문자열로 나타내고 싶으면 쌍따옴표로 바꿔라)
- arguments 탭에서 variables 버튼 누른 후 Strgin prompt 이거 선택 설정하면은 일반 런애즈 하는경우 입력할 수 있는 창이 나와서 위 과정을 생략 시킬 수 있음.

- int num = Integer.parseInt("10"); 
  >> 문자열 형태의 정수를 실제 정수로 변경하는 방법

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

-  랜덤값 얻기
  - java.util.Random 클래스 이용

  - 방법
   1) Random 클래스 객체 생성
      
       import java.util.Random;

       Random r = new Random();

   2) 랜덤값 반환하는 메서드 사용

      int n = r.nextInt();
      int n2 = r.nextInt(3); // 0, 1, 2 중에서 랜덤하게 반환
      float f = r.nextFloat(); 
      double d = r.nextDouble();
      boolean b = r.nextBoolean(); 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

- 클래스

   - 자바에서는 객체(object)를 어떻게 표현할까? 

    현실세계             OOP               가상세계(자바 프로그래밍)
    ------                            --------------------
    고양이 객체    --------------------------> 클래스로 표현 ( Cat 클래스 )
    -속성: 이름,나이,성별... ------------------> 변수로 표현 (인스턴스 변수)
    -동작(기능):먹기,뛰기,... -----------------> 메서드로 표현

- 반드시 클래스를 사용할려면 객체생성해야 된다. 
문법:
 클래스명  변수명 = new 클래스명();

 -  heap 메모리에 생성된 Cat을 인스턴스(instance)라고 부른다.
   인스턴스안에 있는 구성요소인 변수와 메서드를 멤버(member)라고 부른다.

- Cat 인스턴스의 구성요소(변수,메서드)를 접근하기 위해서는
      c 참조변수를 이용한다.
      방법: c.변수/c.메서드()

- 주의할 점은 main 메서드를 지정하지 않는다. (*************)
       이유는 재사용하기 위함이다. ( 클래스 재사용 )
       main메서드가 없기 때문에 실행이 안됨.
       실행하기 위해서 main메서드를 가진 임의의 클래스(핸들링 클래스)를 추가해야 된다.

      결론:
            Cat 클래스 (main 없음)

    TestCat 클래스 ( main 있음, Cat 핸들링 역할: 객체생성등.... )