프로그래밍 언어27 [java] Object 클래스 정의 - 모든 클래스의 최상위 클래스 - java.lang.Object에 위치한다. - 모든 클래스는 Object 클래스의 상속을 받아서 Object 클래스의 메서드를 @Override 가능하다. (final 메서드 제외) Object 메서드의 종류 toString() 객체 정보를 String으로 바꾸어준다. 재정의해서 많이 이용된다. public class MyDate{ int year; int month; int day; public MyDate(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } @Override public String toString() { return year + "." +.. 2021. 3. 18. [java] 인터페이스 다중 상속 인터페이스 multiple inheritance 자바는 클래스에 대해선 single inheritance를 지원한다. (c++은 다중상속 지원함) 이에 대한 이유는 Diamond Problem때문인데 나중에 따로 정리해보도록 한다. 하지만 인터페이스는 다중 상속이 지원되며 인터페이스끼리도 다중 상속이 가능하다. 클래스 extends 클래스 : 가능 클래스 extends 클래스, 클래스 : 불가능 클래스 implements 인터페이스, 인터페이스: 가능 인터페이스 extends 인터페이스: 가능 인터페이스 extends 인터페이스, 인터페이스 : 가능 ++ 참고) 인터페이스 extends 클래스 : 불가능 인터페이스 implements 인터페이스 : 불가능 인터페이스 간 상속 public interface.. 2021. 3. 12. [java] 인터페이스 인터페이스 구현 코드가 아예 없으며 클래스 대신 interface라고 붙이면 된다. public interface Calc { double PI = 3.14; int ERROR = -99999999; public int add(int a, int b); public int sub(int a, int b); public int mul(int a, int b); public int div(int a, int b); } 인터페이스의 역할 구현코드도 없는데 대체 왜 사용할까? 설계 단계에서 명세서 역할을 한다. 클라이언트 프로그램에 어떤 메서드를 제공하는지 알려주는 것이다. 사용자는 인풋, 아웃풋만 알면 될뿐...구현 과정은 알 필요가 없기 때문이다. 따라서 '한 객체가 어떤 인터페이스의 타입이다' = 그 객체.. 2021. 3. 12. [java] final, 템플릿 메서드 이전 게시물인 추상 클래스/메서드와 연결되는 주제이다. 먼저 final 예약어부터 살펴보자. final 예약어 final 변수는 값이 변경될 수 없는 상수이다. 오직 한번만 값을 할당할 수 있다. final 메서드 역시 값이 불가능한 메서드로 하위 클래스에서 override(재정의)될 수 없다. final 클래스의 경우 더 이상 상속되지 않는다. 대표적인 예시로 String 클래스 public static final 상수값 정의 static을 사용하면 인스턴스를 사용하지 않고 클래스로 직접 참조할 수 있다. 따라서 public static final을 만들면 c의 define과 유사한 역할을 하게 할 수 있다. 고정된 전역변수로 사용가능! 탬플릿 메서드 추상 케서드나 구현된 메서드를 활용하여 전체의 시나.. 2021. 3. 11. 이전 1 2 3 4 5 ··· 7 다음