전체 글

·CS
오버라이드란 부모클래스에게 상속받은 메소드를 상황이나 요건에 맞게 변형해서 사용하는 것이다. 이해를 위한 비유 : 커피가 든 잔을 줬는데 홍차가 땡겨서 커피 버리고 홍차를 따라 마시는 것 @Override는 오버라이드 하는 함수의 형식을 상속받는 함수의 형식과 다르게 하거나 이름을 다르게 하는 등의 실수를 방지해준다. 하지만 방지해주는거지 필수는 아니다.다만 실수 안 할 자신이 있다고 해도 보고 이해하기 편한데 안 쓸 이유도 굳이 없는 것 같다. 아래 예시에서 @Override가 있는 hello 메소드의 경우 String 매개변수를 안 쓸 경우 "부모클래스에 이거랑 같은 형식의 메소드가 없습니다."라고 에러가 뜬다. ide에서 친절하게 바로 만들기를 추천해주기도 한다. @Override가 없는 hi 메소..
·CS
인터페이스란? 추상 메서드만을 가질 수 있고 구현메서드는 가질 수 없는 일종의 추상 클래스다. 이해를 위한 비유 : 교수님 과제와 같다. 교수님은 과제 주제(이름)만 던져주시지 뭘 채워주시지는 않는다. 채우는 건 학생(자식클래스)의 몫이다. 그래서 자식클래스들에게 함수의 기능을 강제적으로 전부 구현하게 하는데에 목적이 있다. 이때문에 다형성의 특징을 갖고 있다. 또한 추상화는 따로 구현을 해야 하는게 아니라 공통적인 속성과 기능을 정의하는 것이기 때문에 추상화를 할 때 편리하게 사용할 수 있다. 다만 일반 추상 클래스와 다르게 상속해 줄 기능이 구현된 메서드가 없기 때문에 상속성의 특징은 없는 것 같다. 캡슐화도 인터페이스는 추상메소드만 있기 때문에 힘들 것 같다... 참고로 자바는 클래스의 다중 상속을..
·CS
다형성이란 먼저 예를 들자면 지금의 나는 아들이자 친구이자 학생인 것처럼 같은 이름을 하고 있지만 상황이나 맥락 등 여러 요건에 따라 다른 역할을 수행할 수 있는 특성이다. 대표적으로는 메소드 오버라이딩과 메소드 오버로딩이 있다. public interface Phone { public abstract void TurnOff(); public abstract void TurnOn(); // 폰마다 벨소리는 다를 수 있다. public abstract void Call(); } public class AndroidPhone implements Phone{ //안드로이드 폰 벨소리 @Override public void Call(){ System.out.println("빰~ 빠밤 빰~ 빰 바빰 빰 밤"); ..
·CS
캡슐화란 클래스가 쉽게 손상되거나 변형되지 못하게 내부를 보호,은닉하는 것이다. 하지만 외부와의 접속을 위해 몇 부분만 공개 노출할 수도 있다. 캡슐화 방법은 크게 2가지가 있다. 접근 제어자를 사용하는 방법 private (클래스 내에서만 접근 가능) dafult (같은 패키지 내에서만 접근 가능) protected (같은 패키지 + 다른 패키지의 하위클래스에서 접근가능) public (어디든 접근 가능) 접두어 get/set을 붙인 메소드를 사용하는 방법 public class AndroidPhone{ // 접근을 허용 안하는 멤버변수 private String color; // 외부에 접근을 허용할 멤버변수 private String model; // public으로 열려있는 get/set메소드를 ..
·CS
상속성(inheritance)이란 기존에 있던 클래스에 살을 붙이거나 변형,확장(extends)해서 새로운 클래스를 만드는 자바의 문법요소를 뜻한다. 이때 기존에 있던 클래스를 ( 상위,부모,super ) 클래스 ,새로운 클래스를 ( 하위,자식,sub ) 클래스라고 한다. 추상화를 통해 묶은 공통점들이 보통 부모로 많이 쓰인다. // 부모 클래스 public class Phone { String model; String company; void Call(){ System.out.println("신호가 가는 중 입니다."); }; void TurnOff(){ System.out.println("전원을 종료합니다."); }; void TurnOn(){ System.out.println("전원을 켭니다.");..
·CS
일단 추상이 뭔지에서 시작하자 추상이란 "여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용." by 국어사전 이걸 바탕으로 한 추상화에 대한 나의 해석 "간소화하고 공통점으로 묶어서 정리하는 것" // 간단한 예시 // 세상 모든 전화기는 적어도 전화를 걸고 전원을 키고 끌 수 있다. public interface Phone { public abstract void Call(); public abstract void TurnOff(); public abstract void TurnOn(); }
forrest13
forrest