본문 바로가기
[study]이론정리/JAVA(eclipse)

java 6일차_ 5일차 정리

by yoon9i 2024. 3. 15.

1. 배열(array)

  용도: 같은 타입의 데이터를 여러개 저장가능한 방법.
  특징: 같은 타입만 저장 가능.
       한번 생성된 배열은 크기변경이 불가. ( 크기변경할려면 다시 생성해야 된다.)
       배열은 참조형( 배열명(변수)는 주소값을 갖는다. )
       배열에 데이터는 기본형 데이터(8개)도 가능하고 참조형 데이터(클래스)도 가능하다.
       배열의 요소접근은 인덱스(첨자)를 이용하고 0부터 시작한다. 예>  배열명[idx]
       배열의 길이는 배열명.length 를 사용한다.

   사용방법: 
     1) 배열선언
       데이터타입 [] 배열명;  // 배열명의 데이터타입은 ( 데이터타입 [] ), 참조형이기 때문에 주소값을 갖는다.
       데이터타입 배열명 [] ;

     2) 배열생성 ( new )
       배열명 = new 데이터타입[size];  // 생성된 배열이 heap 메모리에 생성됨. heap 메모리에 생성된 변수는 자동초기화됨.

     3) 배열초기화 // 인덱스를 이용, 0부터 사용가능
       배열명[idx]=값;

     4) 배열크기
       배열명.length;

    배열생성 3가지 방법
      1) new 이용
         int [] num;
 num = new int[3];
 num[0]=10;
 num[1]=20;
 num[2]=30;

      2) 리터럴 이용
         int [] num = {10,20,30};
   
      3) new + 리터럴 이용
         int [] num;
 num = new int[]{10,20,30};

2. 2차원배열 ( 다중행/다중열 로 구성 )

   1) 정방형배열 ( 모든행의 열의 길이가 동일. 특징은 하나의 new로 행과 열을 동시에 생성.
      가. new 이용
          int [][] num;
  num = new int[2][2]; // new int[행크기][열크기] 2X2

  num[0][0]=10;
          num[0][1]=20;
  num[1][0]=30;
  num[1][1]=40;

  행의길이: num.length
  1행의 열길이: num[0].length

      나. 리터럴 이용
          int [][] num = { {10,20},{30,40}};

      다. new + 리터럴 이용
          int [][] num = new int[][]{ {10,20},{30,40}};

   2) 비정방형배열 ( 행의 열의 길이가 다르다. 특징은 하나의 new 로 행을 만들고 여러번의  new로 열을  생성 )

      가. new 이용
          int [][] num;
  num = new int[2][];  // 행부터 생성

  //나중에 열을 만듬
  num[0]=new int[1];
  num[1]=new int[3];

          //배열초기화
  num[0][0]=10;
  num[1][0]=20;
  num[1][1]=30;
  num[1][2]=40;

      나. 리터럴 이용
          int [][] num = { { 10 },{20,30,40}};

      다. new + 리터럴 이용
         int [][] num = new int[][]{ {10},{20,30,40}};

    =====> 배열 사용시 Arrays 클래스의 도움을 받으면 배열처리를 손쉽게 할 수 있다.


3. Integer.parseInt("10")
  역할: "10" 는 연산불가.
       연산하기 위해서 "10" 를 10로 변경해야 된다.
       예>  int num = Integer.parseInt("10");
           float f = Float.parseFloat("3.14");

4. 랜덤값 얻기
   - java.util.Random 클래스 이용
   - 사용방법:
       
       Random r  = new Random(); // Random의 구성요소 ( 변수와 메서드 )

       r.nextInt()
       r.nextInt(n)
       r.nextFloat()
       ..

5. 클래스
 
 가. 객체(object)
    정의: 현실세계의 존재하는 사물의미.
         만약에 A 동물병원에서 '애완동물 관리'하는 프로그램 개발 의뢰를 받았음.
 주문(order)---> 분석 ---> 설계----->구현 -----> 테스트 -----> 배포
 분석단계의 핵심작업: 애완동물관리 프로그램에 적합한 객체(object)를 추출.
                 예> 고양이객체(속성과동작), 강아지객체(속성과동작)

 나. 클래스(class)
    정의: 분석단계에서 추출한 고양이 객체(속성과동작)를 자바에서 표현하는 방법.
        고양이객체 ---------------------> 고양이클래스인 Cat
속성     --------------------->  인스턴스변수
동작     ----------------------> 메서드

public class Cat{
           //속성인 인스턴스 변수
   String name;
   int age;
   String gender;

   //동작인 메서드
}

 다. 인스턴스(instance)
    정의: 2마리 관리한다고 가정
         예> 야옹이 2 암컷 ,   망치 1 수컷

 main(){

 Cat c1 = new Cat();
 c1.name="야옹이";
 c1.age=2;
 c1.gender="암컷";


 Cat c2 = new Cat();
 c2.name="망치";
 c2.age=12;
 c2.gender="수컷";