본문 바로가기

Java74

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.
String은 참조 타입인가요? 안녕하세요! 🐥 오늘은 잠깐 String에 대해 이야기 해보려고 합니다. 정확히는 제가 공부를 하며 헷갈렸던 부분에 대해 이야기 해보겠습니다. Java를 배우면 primitive type(int, long, double, ...)과 String에 대해 가장 먼저 배우게 됩니다. 데이터 활용에 기본이 되는 형태이기 때문입니다. 그런데 String은 primitive type(기본 타입)과는 다르게 class라는 사실도 알고 계셨나요? String은 기본 타입은 아니지만 굉장히 사용 빈도가 높기 때문에 특별히 class로 제작되어 사용되는 타입입니다. Class는 reference type이기 때문에 인스턴스를 만들면 변수에는 데이터 자체가 저장되는 것이 아니라 데이터가 저장된 주소를 담게 된다는 것입니다... 2022. 5. 8.
Interface(인터페이스) 알아보기(1) Class에 대해 배우면서 Class가 object(객체)를 만들기 위한 템플릿이라는 것을 알 수 있었습니다. 그런데 이러한 class를 만들기 위해 존재하는 템플릿도 있는데요, 그것이 바로 interface(인터페이스)입니다. 사실 interface는 inheritacne(상속)의 한계를 극복하고자 등장한 개념이라고 합니다. 상속의 한계에는 뭐가 있었을까요? 바로 하나의 class만 상속이 가능하다는 점이 있었습니다! (그런 한계 때문에 composition 사용을 장려한다고도 했었죠.) 하지만 사람들은 그래도 여러 클래스의 기능들을 불러와서 사용하고 싶었나 봅니다. 아마도 동일한 코드를 반복하여 작성하지 않기 위해서겠죠? 그래서 interface라는 개념이 등장하게 되었습니다. Class를 상속할 때.. 2022. 5. 7.
반응형