본문 바로가기
IT_tech/JAVA&JSP&스프링

자바 클래스(Class).. C의 구조체(Struct)랑 뭐가 다를까??

by 신드로 2019. 1. 21.

1. C 구조체의 탄생..


문제 : 변수라는 것은, 하나의 데이터 타입만 저장할수 있다..

해결 : 여러가지 변수를 저장가능한 뭔가가 필요해 ! 구조체 등장!!


struct  Man  { //사람

int age;   //나이

int height; //키

float weight; //몸무게

}

나이,키,몸무게로 이뤄진 구조체 즉. 사람이 등장했다.

사람에 값을 입력 하면...


Man Superman;

Superman.age = 28;

Superman.height = 180;

Superman.weight = 81.4'


이런식으로 .을활용하여 Supman구조체에 속한 값들에 값을 할당한다.


2. 자바의 클래스

자바는 구조체 대신에 Class라는 말을 쓴다. 

함수대신에 Method 라는 말을 쓴다. 왜냐면...피카츄가 진화하면.. 라이츄라고 부르는..

아무튼.. 그 모양은 비슷하지만 좀더 발전된 형태라고 보면 되겠습니다..

클래스와 구조체의 차이점은... 

변수 선언이후 메모리 생성여부에 있습니다.


Man Batman;    // 변수 선언

Batman= new Man();  //메모리 생성


C는 변수선언과 동시에 메모리가 생성되지만, 자바는 따로 메모리 생성을 해줘야한다

변수선언과 메모리 생성을 한번에 진행 할수도 있다.


Man Batman = new Man(); // Batman 변수 생성과 동시에 new 연산자로 메모리 생성


메모리 생성을 안하면....메모리가 없다는 .에러가 나겠죠..?..ㅎㅎ;;

클래스(기존의 구조체) 변수는 일반적인 변수와 구분해서 객체 또는 객체변수라고 합니다.


Batman= new Man(); 에서 Man() 이라는 것은 생성자라고 명칭된다.


1.Man이라는 객체를 생성하고...


2. Man객체 소속의 변수들에 메모리를 생성해주고 확인까지...완료^ㅆ^