JAVA 공부(107)
-
Day14 - 클래스 내에서 객체 만들기
이번에는 클래스 에서 객체 만들기를 해 볼 겁니다 눈치가 빠르신 분들은 가르쳐 드리지 않아도 아시고 계시겠지만..... 클래스를 만들고 객체화를 할 때 어떻게 사용하죠? 클래스명 name = new 클래스명(생성자); 이렇게 사용하죠? 여기서 앞 부분. 클래스명 name 이 부분만 생각해 봅시다 어디서 많이 본 것 같지 않으세요? int a; 이거랑 똑같이 생겼는데? 그렇습니다. 바로 클래스는 하나의 데이터 타입이죠 그러면, 멤버변수로 만들 수도 있을 것 같다는 생각 해보셨나요? 호텔 이라는 객체를 만들 었다고 생각을 해 봅시다. 그 호텔 안에, 요리사도 있고, 호텔직원도 있을 수 있겠죠? 여기서 요리사, 호텔직원 은 객체겠죠? 이렇게 직원과, 요리사를 클래스로 만들 었습니다 그리고 호텔 클래스 안에 직..
2021.03.06 -
Day14 - 캡슐화, 정보 은닉 / setter , getter
이번에는 정보 은닉, 캡슐화에 대해 알아 봅시다 캡슐화 캡슐화는 객체지향프로그래밍의 특징 중 하나로, 연관된 데이터와 함수를 논리적으로 묶어놓은 것 입니다. 즉. 비슷한 데이터, 비슷한 기능 들을 묶어서 사용하는 겁니다. 우리가 이미 하고 있는거에요 Student 는 학생이죠? 우리는 학생에 있을 법한 변수를 넣고, 있을 법한 기능을 넣어 줬습니다. 그리고, 뜬금없이 Student에 fly 같은 기능을 넣지는 안잖아요? 이게 바로 캡슐화에요. 정보 은닉 자. 생각해 봅시다 여러분의 개인정보 소중한가요? 소중하죠 왜 소중한가? 음... 왜 소중할까요? 그건 스스로 생각해 봅시다 아무튼. 데이터는 소중하죠? 그러면, 이 데이터를 아무나 막 설정하고, 보고 하면 되나요? 안되죠? 그렇기 때문에 우리는 정보를 ..
2021.03.06 -
Day14 - 접근 제한자
오늘은 비대면 수업인 날 금요일 입니다 ~ 번갈아 가면서 학원에 나가기 때문에, 오늘은 집에서 Zoom 회의를 통해 수업을 들어요 ~ 오늘만 지나면 주말 입니다 ~ 이번에는 접근 제한자에 대해 알아 봅시다 접근 제한자 은행에 금고와 창구가 있다고 가정을 해봅시다. 은행의 고객들(모든 사람)은 은행에 방문을 해서 창구에서 볼일을 봅니다. 이 고객들은 금고에 들어갈 수 있나요? 없겠죠 금고에는 은행원들만 들어갈 수 있겠죠? 이러한 기능을 구현하기 위해서 접근 제한자가 있는 겁니다. 먼저 종류를 봅시다 1. public : 어디서나 접근 가능 2. protected : 같은 클래스, 같은 패키지 접근 가능 ( 다른 패키지일 경우 상속을 통해 접근 가능 ) 3. default : 같은 클래스, 같은 패키지 접근..
2021.03.05 -
Day13 - super
이번에는 오늘의 마지막 super 를 배워 봅시다 super 저희는 이미 super 라는 걸 대충 알고 있습니다. 부모 클래스 를 영어로 뭐라 그러죠? super class 자식 클래스를 sub class 라고 합니다. 그러면 super 라는 기능을 예상해 볼수 있겠죠? 부모 클래스를 가리키는 기능 입니다. 이미 배운 this 가 부모 클래스를 가르키는 super 가 된다고 생각하면 됩니다. 이 점 생각하면서 본론으로 들어가 봅시다 - super 는 한단계 위 부모클래스의 객체를 지정할 때 사용하는 키워드 입니다. - super. 을 사용하면 부모클래스의 멤버를 참조할 수 있습니다. - super() 는 생성자 내부에서만 사용이 가능하며, 부모클래스의 생성자를 호출하는데 사용합니다. - 생성자의 첫 라인..
2021.03.04 -
Day13 - this
이번에는 this 에 대해 알아 봅시다 this 영어로 이런 뜻을 가지고 있는 this 는 프로그래밍 에서도 똑같이 쓰입니다. 보통 클래스의 생성자 에서 많이 사용이 되는데요.. 자기 자신의 객체를 지칭할 때 쓰입니다. 무슨 말이냐면, my self , 나 자신 ... 예제를 통해서 확인 해봅시다. Person 클래스에서 가지고 있는 멤버변수 name , age 가 있는데 매개변수로 받은 name 과 age 와 이름이 똑같죠? 그렇기 때문에 this는 Person 클래스에서 가지고 있는 멤버 변수다 라고 해주는 겁니다. this 는 Person 대신에 온다고 생각을 하면 되겠습니다. 이거를 똑같이 메서드에도 적용을 할 수 있는데요 accel 이라는 메서드를 만들었다고 생각해 봅시다. 같은 클래스 내에 있..
2021.03.04 -
Day13 - Quiz를 풀어봅시다
오늘부터는 클래스 상속에 오버로딩에 오버라이딩에 왔다 갔다 해야 해서, 보기 불편할 수 있을 것 같네요 - 부모 클래스 Calculator 를 상속받는 자식 클래스 Computer - Calculator 은 멤버변수 result, pi 를 가지고 있음 - Calculator 의 메서드(기능) - int multi(int a) - result에 a값을 곱하는 기능 - int div(int a) - result에 a값을 나누는 기능 - double circle(int a) - 반지름 a의 원의 넓이를 구하는 기능 ( pi 사용 ) - Computer 의 메서드(기능) - circle()을 오버라이딩 하고 pi 대신 Math.PI 사용 - double rect(double a) - 정사각형의 넓이를 구하는 기..
2021.03.04