2020/03(25)
-
인터페이스 (interface)
인터페이스란 클래스의 한 종류이며, 일종의 추상클래스이다. 추상메소드 들로만 이루어진 추상메소드의 집합체 클래스라고 볼 수 있다. 추상클래스보다 추상의 정도가 높아 구현이 없는 메서드와 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있으며 그외에 어떠한 요소도 허용하지 않는다. 인터페이스의 사용방법 interface의 상속은 implements 키워드를 사용한다. 인터페이스도 타입으로 사용할 수 있다. 인터페이스를 임플리먼트 한 클래스 타입의 인스턴스 객체를 만드는 것은 가능 하다 인터페이스를 왜쓸까? 1.추상메소드를 하나라도 갖고 있으면 클래스도 추상화 되야된다라는 단점 2. abstract라는 키워드를 꼬박꼬박 다 써야한다는 귀찮음 3. 상속은 단일 상속밖에 안되지만..
2020.03.12 -
추상클래스(abstract class), 익명클래스(anonymous class)
추상클래스는 “미완성 설계도”에 비유할 수 있다. 클래스가 미완성이라는 거은 멤버의 개수에 관계된 것이 아니라 단지 미완성 메서드(추상 메서드)를 포함하고 있다는 의미이다. 중요한 점은 추상클래스는 인스턴스를 생설할 수 없다. 또한 상속을 통해서 자식클래스에 의해서만 완성(구현)될 수 있다. 이렇게 함으로써 이 클래스를 사용할 때는 상속을 받아 구현을 해주어야 된다는 의미이다. -추상클래스에는 하나 이상의 추상메소드가 있어야 한다. 추상메소드 앞에는 abstract 키워드를 붙여준다 -클래스에 하나라도 추상 메소드가 포함되었다면 클래스도 추상 클래스이므로 클래스명 앞에도 ‘abstract’키워드를 붙여야 한다. 추상메서드는 구현부가 없으므로 괄호{}대신 문장의 끝을 알리는 ';'을 적어준다. 상속받은 추..
2020.03.12 -
다형성(polymorphism),오버라이딩(overriding),오버로딩(overloading)
다형성(polymorphism)이란? 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미합니다. 자바에서는 이러한 다형성을 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현하고 있습니다. 다형성은 상속, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나입니다. type이 여러개다, 여러개의 타입을 하나의 코드로 처리할수 있다 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 구현한 기능 자식클래스의 객체 내부에는 부모클래스로 만든 객체가 포함되어있기 때문에 부모클래스의 참조변수로 자식클래스의 객체를 참조할 수 있음. 상속받았다면 자기자신의 타입 아니고 부모타입의 객체도 참조할 수 있다. 부모타입 변수명=new 자식타입(); 객체 ..
2020.03.11 -
상속(Inheritance)
상속이란 상속이란 어떤 클래스가 다른 클래스의 멤버 변수와 멤버 함수를 물려받는 것 상속은 원래의 것에 이어 붙이는 개념 상속이라고 생각하지말고 extend! 부모클래스에서 확장된 객체를 갖게 된다고 생각하자. 상속받는 클래스-> 자식 클래스, 하위 클래스 또는 서브 클래스 상속을 해주는 클래스-> 부모 클래스, 상위 클래스 또는 슈퍼 클래스 부모 클래스(parent class) 와 자식 클래스(children class)는 자바 지정예약어 extends에 의하여 정해진다. 하나의 부모 클래스(parent class)는 여러개의 자식 클래스(children)을 가질 수 있다. 반대로 하나의 클래스는 여러개의 클래스로부터 상속을 받을수는 없다. ->즉 단일 상속만 가능 하다. (인스턴스를 사용하여 다중상속..
2020.03.11 -
toString()
모든 클래스의 가장 최상위 클래스는 Object 클래스 이다. 자바에서 제공하는 모든 클래스들은 계층 구조로 되어있고, 그 최상위로 올라가면 Object 라는 클래스가 존재한다. 우리가 일반적으로 생성하는 클래스들도 extends 로 직접 상속하지는 않았지만 자바 컴파일러는 일반 클래스를 Object 하위 클래스로 자동설정하게 되어있다. 결론은 자바 라이브러리나 유저가 만든 모든 클래스는 Object 클래스를 부모클래스로 상속받아서 사용하게 된다. Object 클래스에는 어떤 메소드들이 있을까? toString 메소드란? -객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴하는 메소드 이다. java.lang.Object 클래스가 toString 메서드가 제공하지만, 해당 메서드를 호출하면 반환되는 ..
2020.03.10 -
접근제한자[private,public,protected,default],getter, setter
접근 제한자 접근 제한자란, 외부로부터 접근을 제어하는 키워드이다. 접근 제한자의 종류는 4가지로, private/default/protected/public 이 있다. private은 비공개, public은 완전 공개를 의미한다. public 과 private public 키워드는 완전한 공개를 의미한다. 모두가 사용할 수 있는 공공의 산물이 되는 것이다. 이와 반면 private은 비공개를 의미한다. 오직 해당 클래스 내부에서만 사용할 수 있게 된다. 접근 제한자는 필드와 메소드에 적용될 수 있다. public 선언되면 외부의 접근이 가능하나, private의 경우 외부 접근이 불가능하다. 게터와 세터(getter&setter) private 필드는 외부 접근이 불가능하다 게터를 사용하면 privat..
2020.03.10