From 67e984fa93c31650298eccda8daad990e936b2be Mon Sep 17 00:00:00 2001 From: YOON Date: Sun, 24 Sep 2023 22:25:21 +0900 Subject: [PATCH] =?UTF-8?q?1=EC=A3=BC=EC=B0=A8=20=ED=95=9C=EC=83=81?= =?UTF-8?q?=EC=9C=A4=20=EA=B3=BC=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "week01/\355\225\234\354\203\201\354\234\244.md" | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git "a/week01/\355\225\234\354\203\201\354\234\244.md" "b/week01/\355\225\234\354\203\201\354\234\244.md" index 12c547e..7393716 100644 --- "a/week01/\355\225\234\354\203\201\354\234\244.md" +++ "b/week01/\355\225\234\354\203\201\354\234\244.md" @@ -55,11 +55,14 @@ 인터페이스는 class로 정의되지 않고 interface로 정의가 되며 모든 멤버 메서드는 추상 메서드로 선언이 된다. 이 인터페이스 또한 상속을 강요한다. 이것을 사용하는 이유는 큰 틀을 제공하기 위함이다. 즉 설계도라고 보며 된다. 인터페이스에 있는 추상 메서드들이 무조건 상속받은 클래스에서 메서드들이 재정의되게 할 수 있다. 추상클래스는 상속받은 하위클래스에게 이것을 베이스로 추가적인 기능에다가 자신만의 구체적인 기능을 제공하고 인터페이스는 상속받은 하위클래스에게 어떤 것들이 포함되어야하는 지 강제로 다 구현하도록 하는 것이다. 차이점으로는 추상 클래스에서는 일반적인 필드와 메서드들이 포함 될 수 있다. 하지만 인터페이스는 모든 메서드들이 추상 클래스이다. 그리고 추상 클래스는 1개만 상속 될 수 있지만 인터페이스는 여러개를 상속받을 수 있다. 또 인터페이스에서 필드를 정의하면 그 필드는 public final static이 암시적으로 적용된다. 추가로 인터페이스 끼리 extends가 된다. * Java Enum에 대해 설명해주세요. - 자바에는 상수라는 개념이 존재한다. 상수는 변하지 않는 값으로 정의된다. 1은 1로 무조건 고정인 것처럼 final이라는 키워드를 사용하면 변수들도 상수처럼 사용할 수 있다. 그럴 때 문제가 생기는 것이 변수를 상수 취급을 하는 데 같은 상수 값을 가진 변수라면 다른 변수임에도 불구하고 같은 값으로 인식이 된다. 그것을 해결할 수 있는 방법으로는 연관된 상수들을 모아 클래스로 만들고 각각의 객체를 만드는 것이다. 그러면 그것들은 각자 다른 객체가 되어 상수로 취급되면서 고유한 값을 가질 수 있게 된다. 하지만 이럴 경우에 매번 그렇게 만들기도 그렇고 case문을 사용할 때 조건에 들어 갈 수 없다는 문제가 있다. 그래서 나온 것이 Enum이다. Enum은 연관된 상수들의 집합을 쉽게 만들기 위한 문법인 것이다. - ![Alt text](image-1.png) - 이 두 코드는 동일하다. 여기서 끝이 아니라 생성자,메서드 또한 구현이 가능하다. - ![Alt text](image-2.png) - 이것을 통해 상수로 취급하고 싶은 변수들을 독립적이고 집합적으로 만들 수 있다. + 자바에는 상수라는 개념이 존재한다. 상수는 변하지 않는 값으로 정의된다. 1은 1로 무조건 고정인 것처럼 final이라는 키워드를 사용하면 변수들도 상수처럼 사용할 수 있다. 그럴 때 문제가 생기는 것이 변수를 상수 취급을 하는 데 같은 상수 값을 가진 변수라면 다른 변수임에도 불구하고 같은 값으로 인식이 된다. 그것을 해결할 수 있는 방법으로는 연관된 상수들을 모아 클래스로 만들고 각각의 객체를 만드는 것이다. 그러면 그것들은 각자 다른 객체가 되어 상수로 취급되면서 고유한 값을 가질 수 있게 된다. 하지만 이럴 경우에 매번 그렇게 만들기도 그렇고 case문을 사용할 때 조건에 들어 갈 수 없다는 문제가 있다. 그래서 나온 것이 Enum이다. Enum은 연관된 상수들의 집합을 쉽게 만들기 위한 문법인 것이다. + + ![Alt text](image-1.png) + + 이 두 코드는 동일하다. 여기서 끝이 아니라 생성자,메서드 또한 구현이 가능하다. + ![Alt text](image-2.png) + + 이것을 통해 상수로 취급하고 싶은 변수들을 독립적이고 집합적으로 만들 수 있다. * 객체지향이란 무엇일까요? 객체지향을 지키면 어떤 이점을 얻을 수 있나요?