이번에 설명할 내용은 Interface(인터페이스)입니다. 인터페이스는 추상 클래스보다 더 추상적인 녀석입니다. 일단 인터페이스는 메소드와 변수를 선언할 수 있습니다. 다만, 인터페이스에서 선언한 메소드는 추상 클래스의 추상 메소드처럼 몸통을 가질 수 없습니다. 그리고 인터페이스의 변수들은 무조건 'public static final' 속성을 가지게 되어 어디서든 접근 가능한 정적이고 바꿀 수 없는 변수들이 됩니다. 또한 추상 클래스와 마찬가지로 인스턴스를 가질 수도 없습니다. 일단 아래 코딩부터 보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 package blog; public class Ex_class { ..
이번에 설명할 내용은 abstract class(추상 클래스)입니다. 추상 클래스는 일반적인 클래스와 크게 다르진 않습니다. 변수를 가질 수 있고 메소드를 선언할 수 있습니다. 차이점은 다른 일반적인 클래스와 다르게 추상 메소드를 선언할 수 있다는 점과 추상 클래스라는 설계도로 만들어낸 제품, 즉 인스턴스를 가질 수 없다는 점입니다. 그렇다면 추상 메소드는 무엇일까요? 추상 메소드는 몸통을 가질 수 없는 단지 메소드명만 선언 된 메소드입니다. 일단 아래 코딩부터 보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 package blog; public class Ex_abstract { public static void m..
자바에는 Overloading과 Overriding이 있습니다. 이 두 가지는 이름도 비슷하고 메소드를 재정의하는 일을 하기에 자주 헷갈리는 개념입니다. 먼저 단어의 뜻부터 한번 보겠습니다. Overloading을 네이버에 검색하면 '과적의'라는 뜻이 뜹니다. 과적의, 그러니까 뭔가 많이 실려 있다는 뜻입니다. Overriding을 네이버에 검색하면 '우선시 되는' 등의 뜻이 뜹니다. 다른 것보다 우선시 된다는 뜻이겠죠? 이렇게 한글로 변역해서 보면 뜻부터 큰 차이가 납니다. Overloading(과적의) 과적의, 많이 실려 있다는 뜻의 Overloading부터 알아보도록 하겠습니다. Overloading은 한 클래스 내에서 메소드의 재정의를 뜻하는 말입니다. 만약에 우리가 계산기를 만든다고 가정해봅시다..
이번에 설명할 내용은 상속입니다. 지난 번 Javascript의 prototype(프로토타입)을 설명할 때 상속이 왜 중요한가에 대해서 상세히 작성했지만, 안보실 분들이 많을 거라 생각해서 다시 한번 적어봅니다. 만약에 우리가 코딩으로 계산기를 만든다고 가정해봅시다. 어떤 계산기든지 간에 기본적으로 더하기, 빼기, 곱하기, 나누기는 포함되어 있을 것입니다. 여기서 계산기를 만들어 달라고 하는 구매자의 의도에 따라 제곱근을 구하는 기능이 추가 된다든가 아니면 로그 값을 구하는 기능이 추가 된다든가 할 것입니다. 그런데, 여기서 기본적으로 사용되는 더하기, 빼기, 곱하기, 나누기 개념을 계산기 하나를 만들때마다 계속 새롭게 만들기에는 너무 번거롭습니다. 따라서, 기본 기능으로 설정해놓고 용도에 따라 기능을 ..
- Total
- Today
- Yesterday