Til 3

JAVA 인터페이스, 다형성 실습 #Day4

요구사항 Computer와 LGMonitor, SamsungMonitor를 연결하여 입력한 문자열을 모니터에 출력시키는 기능을 구현합니다. 다른 모니터로 교체할 때 최소한의 수정만으로 모니터를 교체할 수 있도록 코드를 구현해야 합니다. 요구사항 자체는 어렵지 않다. LG나 삼성 모니터에 연결한다음 연결값에 따라 Print(해상도), Setting(각 브랜드별 고유세팅)을 설정하게끔 제공하면 된다. Monitor라는 상위 클래스를 만들고 LG/삼성 고유기능을 만들면 되겠다고 생각했다. -> 이상황에서는 Monitor나 MonitorInterface나 역할이 거의 비슷함. Reference코드는 좀더 복잡하게 되어있고, 고민되는 포인트 들이 있어서 그 부분에 대해서만 포스팅해본다. ref코드를 보니 학습을 ..

Coding/언어-JAVA 2023.08.03

JAVA 인터페이스 #Day4

추상화, 다형성, 캡슐화, 상속이 자바의 "객체"지향의 핵심원리인 건 맞는데, 추상화=인터페이스 이런식으로 단정지으면 안된다. 접근제어자, 상속, 인터페이스가 유기적으로 4가지 원리를 만족시키기 위해 동작하는 것처럼 보인다. 예로 인터페이스는 메서드들의 가이드 역할(외부로 내보낼 때 가이드 역할과, 내부에서 구현할 때 강제성을 띄며 가이드 역할)을 하며 abstract 메서드들로 추상화를 하고, 동시에 외부 패키지로 부터 내부 소스를 공개하지 않게되니 캡슐화(은닉화)를 만족하며, 인터페이스 자체가 참조자료형이 되며 다형성을 만족한다. 상속의 경우 추상화,다형성,상속을 만족하고 접근제어자가 캡슐화를 지향한다. 어쨌든 객체지향, 느슨한 결합, 유연한 변경 등을 고려한다는 점이 포인트. 지난번 공부하며 상속과..

Coding/언어-JAVA 2023.08.03

JAVA 클래스, 객체 #Day2

1. static 키워드로 선언된 정적 멤버(메서드, 변수)는 클래스 내부에 저장 공간을 가지고 있기 때문에 객체 생성 없이 곧바로 사용 가능 → 따라서 static 내에서는 static 변수/메서드만 사용가능함 2. 모든 메서드를 static으로 사용하는게 좋을 때가 있음(ex. Math) - 인스턴스 변수가 없음. 값을 받아서 처리만 하면 되는 경우 - 메모리 절약 : 다른 곳에서 메서드를 참조하기 위해 메모리를 차지하는 인스턴스를 만들 필요가 없음 - 객체 간의 결합성을 낮추고 클래스의 활용성을 높임 ⇒ 즉, 굳이 인스턴스화 시킬 필요가 없을 때는 static 을 사용해보자! 3. 명명 규칙 : 클래스명 - 대문자 시작/ 메서드명 - 소문자 시작 “객체지향” 프로그래밍 언어 → 결합도(코드들이 서로..

Coding/언어-JAVA 2023.08.01