생성자 3

자바 25강. Super

자바에서는 super(키워드)가 부모, this가 자신을 뜻한다. this : 자기 자신의 heap 메모리 공간 클래스를 new 하기 전에 나중에 메모리에 뜰 heap 공간을 가리킨다는 말이다. 그럼 new를 하는 시점에 this는 메모리에 뜬 내 heap공간을 가리키게(바인딩) 된다. super : this와 마찬가지로 클래스를 new하기 전에 나중에 메모리에 뜰 부모의 heap 공간을 가리킨다는(바인딩) 말이다. + super는 extends를 했을 때만 사용이 가능하다. 자식을 new할때 상속되어있는 부모도 같이 메모리에 뜨고 부모의 생성자도 실행된다. 부모가 디폴트 생성자가 아닌 매개변수를 받는 생성자일 때 오류가 생긴다. 이때는 생성자 오버로딩을 해줘야 오류가 잡힌다. 실행하면 그냥 디폴트 생성..

JAVA 2022.01.20

자바 23강. SRP

객체 지향의 핵심 5가지 중 2가지를 배웠다. 1. 상태는 행위를 통해 변경한다. 2. DIP(의존성 역전의 원칙) 오늘은 5가지 중 3번째, SRP에 대해 알아보자. SRP 단일 책임의 원칙 (Single Responsibility Principle) 객체는 객체들끼리 협력함 -> 프로그램이 만들어짐 = 부품이 결합되는 것처럼 프로그램 만들기 편함 협력의 관계는 DIP를 지켜야한다. 추상적인 것을 바라보고 협력해야 한다. 서로 메시지를 교환하며 협력한다. 메시지를 전달하는 행위를 메서드 호출이라고 한다. 어떤 특정 객체가 가지고 있는 메서드를 책임이라고 한다. 객체들 간의 협력, 메시지 교환, 책임이 객체 지향의 3요소이다. 프로그램 설계를 위해 srp를 배우는 것이 아닌, srp로 설계된 코드를 보고..

JAVA 2022.01.20

자바 14강. 생성자

[복습] 객체지향 1원칙 (OOP를 잘 짜는 방법) 상태는 행위에 의해 변경된다. 오브젝트 = 실존할 가능성이 있는 것 클래스 = 이상적인 설계도(선언만 함) 인스턴스 = 실재하는 것 메서드(함수) = 함수가 실행되면 스택이 열린다.(메서드마다) class A { int num = 15; 함수명 ( ) { int num = 10; sysout("결과 : " + num); } } 변수는 항상 자기와 가까운 것부터 찾는다. // 결과 : 10 프로그램을 작성할 때 홀로 작동하는 객체는 거의 유용하지 않다. 객체는 메시지(message)를 통해 다른 객체와 통신하고 서로 상호 작용한다. 이때 메시지는 메서드를 호출하는 행위를 말한다. 메시지에는 추가적인 정보들이 필요할 때도 있다. 이런 정보들은 메시지의 매개..

JAVA 2022.01.13