클래스 : 객체를 정의해 놓은 것 , 객체를 생성하는데 사용된다.

 

인스턴스화 : 클래스로부터 객체를 만드는 과정

인스턴스 : 클래스로부터 만들어진 객체를 클래스의 인스턴스라고 함.

 

인스턴스의 생성과 사용


Tv t;
t = new Tv();

 

1. Tv t; 

       Tv클래스 타입의 참조변수 t를 선언한다. 메모리에 참조변수 t를 위한 공간이 마련된다.

 

2. t = new Tv();

         연산자 new에 의해 Tv클래스의 인스턴스가 메모리의 빈 공간에 생성된다. 

          대입 연산자에 의해 생성된 객체의 주소값이 참조변수 t에 저장된다. - 참조변수 t를 통해 Tv인스턴스에 접근할 수 있으며 인스턴스를 다루기 위해서는 참조변수가 필요하다.

 

객체배열


Tv[] tvArr = new Tv[3];
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();

Tv[] tvarr = new Tv[3];

과 같이 객체 배열을 생성하는 것은 객체를 다루기 위한 참조변수들이 만들어진 것일뿐 객체가 저장된 것은 아니다.

객체를 생성해서 객체 배열의 각 요소에 저장하는 것을 잊으면 안된다.

 

클래스의 프로그래밍적 정의


변수 -> 하나의 데이터를 저장할 수 있는 공간

배열 -> 같은 종류의 데이터를 하나의 집합으로 저장할 수 있는 공간

구조체 -> 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간

클래스 -> 데이터와 함수의 결합(구조체 + 함수)

 

 

변수


class Var {
	int ivl    //인스턴스 변수 
    static int ev;   // 클래스 변수 static 공유변수
    
    void method()  {
    int lv=0;   //지역변수

 

인스턴스 변수 -> 인스턴스마다 고유한 상태를 유지해야하는 경우에 쓰임

클래스변수 -> 인스턴스 변수 앞에 static 붙이면 된다. 모든 인스턴스들이 공유함. public을 붙이면 프로그램 어디에서나 접근가능

지역변수 -> 메서드 내에 선언되어 메서드 내에서만 사용 가능하다.

 

 

클래스 변수는 클래스에 해당되는 변수이기 때문에 c1.width의 값을 50으로 바꾸어주면 클래스 변수의 값이 50으로 변환되어 c2.width를 출력하면 50이 출력된다.

이는 Card.width , c1.width , c2.width가 같은 공간을 참조하기 때문이다.

        System.out.println(Card.height);
        Card c1 = new Card();
        c1.kind = "HEART";
        Card c2 = new Card();
        c2.kind = "DIA";
        c1.width = 50;
        System.out.println(c2.width);

 

메서드


장점

      높은 재사용성 

      중복된 코드의 제거

      프로그램의 구조화 

 

메서드의 선언부

       메서드의이름 , 매개변수 선언 , 반환타입으로 구성 

                   

int add(int x,int y) {
	int result = x+y;
    return result;
    }

  

메서드의 호출

             메서드이름(값1,값2)

인자 = 메서드를 호출할 때 괄호()안에 지정해준 값

매개변수 = 메서드 선언시 지정된 변수들

 

 

 

 

+ Recent posts