오버라이딩4 익명 클래스 (Anonymous Class) [ 익명 클래스 ] 별도의 클래스를 만들지 않고 인스턴스 생성과 동시에 오버라이딩 수행 일회성 오버라이딩이라고 할 수 있음 본래 한 클래스에 있는 메소드를 오버라이딩 하기 위해서는 다른 클래스에서 상속 후 오버라이딩 해야합니다. 하지만 일회성으로 오버라이딩을 하기 위해 상속받은 클래스를 새로 만드는 것은 매우 비효율적입니다. 이럴 경우 인스턴스 생성과 동시에 필요한 부분을 오버라이딩 하는 방법이 익명 클래스입니다. 문법은 간단합니다. 클래스 하나를 인스턴스로 만들고 대괄호를 열고 닫아서 필요한 부분을 오버라이딩 하면 됩니다. 대괄호 뒤에는 세미콜론(;)이 붙어야 합니다. 오버라이딩만 가능하고 새로운 메소드를 추가할 수는 없습니다. package study.first; public class Study .. ▸JAVA/기본 문법 2019. 12. 10. 객체 값 출력_toString 메소드 오버라이딩 [ toString 메소드 ] 기본 상속된 Object 클래스의 메소드 객체가 가진 정보를 문자열로 만들어 출력 인스턴스 출력 시 Object.hashCode()로 생성된 해시값을 문자열로 반환시켜줌 인스턴스의 값을 출력할 때 그냥 인스턴스를 넣거나 기본 toString()메소드를 사용하면 해시값을 포함한 이상한 값이 출력됩니다. 만들어 둔 인스턴스의 정보를 편하게 출력하기 위해 toString()메소드를 오버라이딩 해두면 편리합니다. 먼저 기본 Object.toString()를 사용해서 인스턴스 하나를 출력해본 결과입니다. 그냥 인스턴스만 넣어도 동일하게 작동합니다. package study.first; public class Main { public static void main(String[] a.. ▸JAVA/기본 문법 2019. 12. 10. 다형성의 활용 (오버라이딩) 게임에서 각 캐릭터가 각자 주어진 무기를 들고 발사하는 프로그램을 만든다고 가정해 보겠습니다. 절차지향언어인 C언어에서는 각 캐릭터(변수)에 맞춰서 무기를 발사(함수)하도록 합니다. 하지만 객체지향언어인 Java에서는 각 캐릭터마다 자신의 무기를 이미 가지고 있고(클래스), 어떻게 발사해야할지(메소드)도 미리 알고 있습니다. 따라서 C언어에서는 캐릭터를 먼저 소환한 후 무기 발사를 명령해야하지만(절차대로) Java에서는 무기를 발사한다라는 명령을 내려두고 캐릭터를 소환합니다. 그럼 그 캐릭터가 알아서 자신의 무기를 발사하게 됩니다. 그래서 객체지향언어인 것이죠. 이렇게 미리 명령을 내려 두고 캐릭터를 소환해주기 위해 사용하는 방식이 다형성의 성질 중 하나인 오버라이딩입니다. 먼저 위의 예시를 구현하기.. ▸JAVA/기본 문법 2019. 12. 10. 객체지향 언어의 특징(다형성) [4/4] 4. 다형성 하나의 클래스나 메소드가 다양한 방식으로 동작이 가능한 것을 의미 부모클래스가 자식클래스의 값으로 대체되는 오버라이딩 같은 메소드의 매개변수(parameter)에 따라 다르게 동작하는 오버로딩 다형성 또한 상속과 마찬가지로 객체지향 고유의 특징입니다. 예를 들어 C언어에서 아래와 같은 프로그램을 만들었다고 가정하겠습니다. 서로 입력값의 갯수 또는 타입이 다르기 때문에 모두 다른 함수로 만들어줘야 합니다. "인자값을 받아서 특정한 결과값을 출력한다"라는 공통적인 행위이지만, 각자 개별적이고 독립적인 함수(일종의 객체)로 실행됩니다. 우리가 한 파일에다가 함수들을 모아둘 순 있지만 기본적으로 저 함수들은 그냥 서로 연관성이 1도 없는 개별적 함수들로 존재합니다. 저런 게 10가지가 있다면.. ▸JAVA/기본 상식 2019. 12. 9. 이전 1 다음 💲 추천 글 반응형