오늘 공부한 내용은 클래스와 인스턴스다.
이전 C언어와 두드러진 특징 중 하나가 자바는 객체지향언어라는 점이다.

이 객체에 대한 개념을 이해하는 것이 중요하다.
* 객체지향 프로그래밍은 현실에 존재하는 사물과 대상, 그리고 그에 따른 행동을 있는 그대로 실체화시키는 형태의 프로그래밍이다.

객체를 생성하려면 class가 필요하다.
class를 먼저 설계하고 선언해두고,
이를 이용해 객체를 생성하는 것이다.

* 전에 javac 컴파일을 하면 class 이름으로 .java 파일이 만들어진다고 했었는데 그럼 클래스가 여러개이면 어떻게 될까? -> 클래스의 수만큼 .java 파일이 생성된다.

(class를 선언했다고 객체가 생성되는 것은 아니다.)
객체를 공부하다 보니 C와 비슷한 놈이 떠올랐다.
구조체다.
수업시간에 교수님이 C언어에서 구조체를 잘 사용하면 객체지향 프로그래밍을 할 수 있다고 얘기해 주신 것이 떠올랐다.
아..!!
:)

객체를 생성할 때
ex)
FruitSeller seller = new FruitSeller();
이런 식으로 생성하는데 맨 왼쪽의 FruitSeller는 자료형이다. 객체를 표현하는 자료형이다.
seller는 객체 변수이름이다.
new는 FruitSeller라는 객체를 생성하고 그 주소를 반환한다.
* 주소를 반환하기 때문에 seller라는 객체 변수에 주소값이 저장된다.
이 내용을 쉽게 받아들이기 위해서
메소드에서 객체를 호출하는 경우를 생각해보면 된다.
객체를 호출할 때 객체를 복사해서 전달 할까?
아니면 같은 객체를 공유하면서 사용할까?



(메소드에서 객체 호출)


(객체 호출 결과)


이 화면을 보면 알 수 있다. 객체는 같은 것을 사용하고 있다.
위에서 말했듯이 객체의 주소를 가지고 객체 이름변수에 저장했기 때문에,
객체 이름변수를 넘겨주면 그 주소를 넘겨주는 것이고 같은 객체에 접근하는 것이다.

생성자
-> 생성자는 메소드 호출 후 딱 한번만 실행되는 메소드이다.
목적은 인스턴스(객체) 변수의 초기화이다.

생성자를 이용하면 인스턴스 변수의 초기화를 쉽게 할 수 있다.

문제 7-1 2번 문제

(문제 class 설계)

-> Child라는 클래스를 만들고

생성자로 초기화

win 메소드, 추가로 작성하다보니 lose 메소드도 필요하여 추가하였다.

print 메소드 를 사용하였다.


(문제 해결 코드)


(결과 화면)


(참조 - 난 정말 JAVA를 공부한 적이 없다구요. , 윤성우)


+ Recent posts