1. 변수가 많으면 코드 가 복잡 그래서 배열(array) 기능을 이용 *배열은 같은 형의 값을 동시에 여러 개 기억하기


배열은 1)배열을 다루는 변수를 준비(배열 선언)

         2)값을 저장할 상자를 준비한다(배열 요소 생성) 의 작업이 필요     <------- 1,2단계를 한번해 할려면 int[] test = new int [5];   <----또는 배열의 초기화 를 사용하여 바로 주입 *예 --int[] test={10,80,55,50,75};

        에) int[] test;

             test= new int[5];  이렇게 배열준비

            test[0]~test[4] 로 5개 배열


2. 다차원의 배열 선언 도 마찬가지 int[][] test =new int[2][5]; 또는 int[][] test={{80,60,22,50,75},{90,55,68,72,58}}; 이며 test[첨자].length 로 갯수로 배열 값 알 수 있음


3. 클래스란 예를드러 자동차 처럼 사물의 상태 및 특성, 그와 관련된 기능을정리하여 프로그램으로 표현


 ** 클래스의 '상태 및 특성'을 표현하기 위한 수단을 필드 라고 함

 ** 클래스의 기능을 메소드

 ** 필드와 메소드 모두 클래스의 멤버라고 함

class Car{

 ...

}         <---car 클래스.

class Sample1{

....Car car1;

   car1=new Car(); ..... 객체 생성

}


%Sample1.java를 컴파일 하면 2개의 파일이 생성 (Car,Sample1)


---->클래스를 사용하는 순서

   1)클래스 선언하기

   2)클래스로 객체 생성하기


**** 클래스와 객체에 바탕을 둔 프로그램 개발 방법을 객체 지향(objext oriented)라고 함


4.메소드 호출하기

예 class Car{ ......

 void show(){

 sysout("ㅎㅎ");}}

 일때         Car클래스 객체를 생성해야 비로소 실행 할 수 있음


5.this는 자기자신

예 위에 4번에서

class Car{ ......

    void show(){

        sysout("show 메메소드 실행");

   }

   void showCar(){

       sysout("showcar 메메소드 실행");

       this.show();

   }   

}


이후

class sample1{

   실행 메인 메소드......car 객채 생성 후

   car1.showCar();                                 <---- 실행시 sysout("show 메메소드 실행"); ,sysout("showcar 메메소드 실행");

}


6.private은 클래스 외부에서 마음대로 접근할 수없는 멤버를 만드는 기능

 public은 클래스 외부에서 마음대로 접근할 수 있는 멤버를 반드는 기능

예 카 클래스의 필드를 private로 하고 메소드를 public void setNum(int n, doublg){ 조건메소드등등 } 이렇게 하면

   외부에서 car객체를 생성후 car.num=1234; 처럼 할 수 없음

                   car.setNum(123,50)<처럼 진행을 하고 올바른 값이 맞으면 저장 아니면 못하게 만들 수 있음

이렇게 클래스에 필드와 메소드를 한 곳에 모은 다음 보호하고싶은 멤버에 private을 붙여 접근을제한 하는 기능을 캡슐화 라고 함


7. 같은 이름의 메소드를 2개이상 정의할수 있는 기능 을 오버라이딩 이라고 함

예   setCar(int n)

   setCar(double g)

   setCar(int n, double g); 이렇게 3개의 메소드를 여러게 정의 할 수 있음 그러나 인수<--- 주의 해야함