본문 바로가기

Java42

Static 키워드 알아보기 안녕하세요! 오늘은 static 이라는 키워드에 대해서 알아보고자 합니다. 먼저 간략하게 특징을 정리해보자면, - 용도: 특정한 class에서 공통으로 사용하는 variables나 methods에 붙임. 메모리 관리를 위함. - 사용 위치: variables, methods, blocks, and nested classes - 특징: class의 instance 보다는 class 자체에 속함. 동일한 class의 instance들이 공유하는 constant variable 이나 method에 사용. 출처: https://www.geeksforgeeks.org/static-keyword-java/ 이렇게 정리될 수 있겠습니다. 그런데 이렇게만 보니 무슨 말인지 잘 모르겠더라구요 ㅎㅎ 제가 지금까지 이해한 .. 2022. 5. 12.
Inner Class - Anonymous class(익명 클래스) 이번에는 Anonymous class에 대해서 알아보려고 합니다. 직역하면 익명 클래스인데요, 말 그대로 이름이 없는 클래스입니다. 지난번에 알아본 local class와 기능은 유사하지만 다만 이름이 없다는 특징이 있습니다. 따로 이름을 붙이지 않기 때문에 선언과 생성이 동시에 이루어지게 됩니다. 버튼에 쓰이는 이벤트 핸들러(event handler)에 주로 사용이 된다고 합니다. 애플리케이션을 보면 한 화면에 여러 가지 버튼이 있는데, 이전 페이지로 가기, 확인 버튼, 글 상단으로 가기 등 각 버튼이 수행하는 기능이 다릅니다. 그럴 때 기능마다 클래스 파일을 따로 만들기 보다는 익명 클래스를 사용해서 간편하게 기능을 구현하는 것입니다. 제가 수강하고 있는 udemy강의에서 활용한 예시로 한 번 살펴보.. 2022. 5. 10.
Inner class - local class 안녕하세요! 이번에는 nested class 중에 하나인 local class에 대해서 알아보겠습니다. Local class의 경우는 block 내부에 정의됩니다. Block이라고 하면 instance block*, static block*, constructor, method, for loop이나 if 문 block등이 있습니다. (*instance block과 static block은 다음에 한 번 자세히 알아보겠습니다.) 지역변수(local variable)처럼 정의되어 있는 block의 내부에서만 사용이 가능하여, 보통 선언 후에 바로 객체를 생성해서 사용하게 됩니다. 사용할 수 있는 범위가 정의되어 있는 block에만 한정되기 때문에 사용 빈도가 높지 않다고 합니다. 사용 방법 아래 코드를 보시.. 2022. 5. 9.
Inner class 알아보기 Inner class(내부 클래스)는 단어에서 알 수 있다시피 클래스나 인터페이스 내부에 선언된 클래스를 의미합니다. 정확히 구분하면 Java에는 크게 4가지 종류의 nested class가 있는데 (nested라고 하면 어떤 물체 안에 들어가 있는 형태를 이야기 합니다. 어찌보면 단어의 의미 자체는 inner랑 유사하죠) 바로 static nested class, non-static nested class, local class, anonymous class 입니다. 이 중에서 non static nested class가 inner class 입니다. Inner class는 outer class(외부 클래스) 안에 선언되어 있는 클래스 입니다. class OuterClass { class InnerCl.. 2022. 5. 9.
Interface(인터페이스) 알아보기(1) Class에 대해 배우면서 Class가 object(객체)를 만들기 위한 템플릿이라는 것을 알 수 있었습니다. 그런데 이러한 class를 만들기 위해 존재하는 템플릿도 있는데요, 그것이 바로 interface(인터페이스)입니다. 사실 interface는 inheritacne(상속)의 한계를 극복하고자 등장한 개념이라고 합니다. 상속의 한계에는 뭐가 있었을까요? 바로 하나의 class만 상속이 가능하다는 점이 있었습니다! (그런 한계 때문에 composition 사용을 장려한다고도 했었죠.) 하지만 사람들은 그래도 여러 클래스의 기능들을 불러와서 사용하고 싶었나 봅니다. 아마도 동일한 코드를 반복하여 작성하지 않기 위해서겠죠? 그래서 interface라는 개념이 등장하게 되었습니다. Class를 상속할 때.. 2022. 5. 7.
Autoboxing & Unboxing 지난번에 알아보았던 ArrayList 기억나시나요? ㅎㅎ ArrayList를 생성하기 위해서는 안에 type을 명시해주어야 했습니다. ArrayList 이런 식으로 말이죠. 만약에 integer type을 담는 ArrayList를 만들고 싶다면 어떻게 해야할까요? ArrayList 아닐까요? 하지만 안에는 class type이 들어가야 하기 때문에 위에 처럼 표시를 하게되면 에러가 발생합니다. 변수를 선언할 때 사용하던 int가 아닌 'Integer' 라는 class를 사용해주어야 합니다. double, boolean, byte 등 primitive type에는 모두 "wrapper class"가 있습니다. (Class 여서 그런지 맨 앞 레터를 대문자로 표시하고 있습니다.) 이렇게 primitive t.. 2022. 5. 5.
반응형