이번에 설명할 내용은 enum입니다. enum은 enumeration의 약자로 enumeration은 열거라는 뜻을 가지고 있습니다. 열거라는 뜻을 가지고 있는 enum은 배열과 비슷하게 생각할 수 있으나 배열과는 속성을 달리하는 녀석입니다. 배열이 데이터들의 집합체라면 enum은 class의 일종입니다. 따라서, 단순히 데이터를 저장하는 것 외에도 메소드나 변수를 선언하는 것을 enum 내부에서 할 수 있습니다. 일단 먼저 가장 단순한 형태의 enum부터 보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 package blog; public class enumTest { public static void main(String[] args) { System.out.println(animal.lion..
이번에 설명할 내용은 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은 한 클래스 내에서 메소드의 재정의를 뜻하는 말입니다. 만약에 우리가 계산기를 만든다고 가정해봅시다..
- Total
- Today
- Yesterday