반응형 전체 글160 [JAVA]인터페이스(interface) 구현과 형변환 구현 코드가 없는 인터페이스(interface) 인터페이스는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 한다. 인터페이스는 추상 메서드와 상수로만 이루어져 있다. 구현된 코드가 없기 때문에 당연히 인터페이스로 인스턴스를 생성할 수도 없다. 인터페이스의 요소 상수: 모든 변수는 상수로 변환 추상 메서드: 모든 메서드는 추상 메서드로 변환 디폴트 메서드: 기본 구현을 가지는 메서드, 구현 클래스에서 재정의 할 수 있음 정적 메서드: 인스턴스 생성과 상관없이 인터페이스 타입으로 사용할 수 있는 메서드 private 메서드: 인터페이스를 구현한 클래스에서 사용하거나 재정의 할 수 없다. 인터페이스 내부에서만 기능을 제공하기 위해 구현하는 메서드 실습 [메모리 구조] [Calc 클래스] p.. 2020. 6. 29. [JAVA] 상속 관계(IS - A 관계, HAS - A 관계) IS - A관계(is a relationship : inheritance) 일번적인(general) 개념과 구체적인(specific) 개념과의 관계 상위 클래스 : 일반적인 개념 클래스( 예 - 포유류) 하위 클래스 : 구체적인 개념 클래스( 예 - 사람, 호랑이, 독수리 등) 단순히 코드를 재사용하는 목적으로 사용하지않는다. 의미를 부여해야한다. HAS - A관계(composition) 한 클래스가 다른 클래스를 소유한 관계 예 - Student가 Subject를 포함하는 관계 class Student { Subject major; } 2020. 6. 23. [JAVA]다형성(Polymorphism) 다형성이란 하나의 코드가 여러 자료형으로 구현되어 실행되는 것을 말한다. 다형성은 추상 클래스, 인터페이스에서 구현된다. 또한 안드로이드, 스프링 등 자바 기반의 프레임워크에서 응용할 수 있는 객체 지향 프로그램의 중요한 개념이다. 객체 지향 프로그래밍의 유연성, 재활용성, 유지보수성에 기본이 되는 특징을 가지고 있다. | 다형성 구현 방법 하나의 클래스를 상속받은 여러 클래스가 있는 경우 각 클래스 마다 같은 이름의 서로 다른 메서드를 정의한다. 상위 클래스 타입으로 선언된 하나의 변수가 여러 인스턴스에 대입되어 다양한 구현이 실행 될 수 있다. | 다형성 예시 클래스 구현하기 /*다형성*/ /*[실습]예시로 그린 클래스 구현하기*/ package polymorphismTest; //Animal 클래스.. 2020. 6. 23. [JAVA] 가상 메서드(virtual method) [추가설명] 상속에서 상위 클래스와 하위 클래스에 같은 이름의 메서드가 존재할 때 호출되는 메서드는 인스턴스에 따라 결정된다. 선언한 클래스형이 아닌 생성된 인스턴스의 메서드를 호출하는 것. 인스턴스의 메서드가 홀출되는 기술을 '가상 메서드(virtual method)'라고 한다. 가상메서드 자바의 클래스는 필드(멤버변수)와 메서드(멤버 함수)로 이루어져 있다. 클래스를 생성하여 인스턴스가 만들어지면 필드(멤버 변수)는 힙 메모리에 위치한다. 변수가 사용하는 메모리와 메서드가 사용하는 메모리는 다르다. 변수는 인스턴스가 생성될 때마다 새로 생성되지만, 메서드는 실행해야 할 명령 집합이기 때문에 인스턴스가 달라도 같은 로직을 수행해야 한다. 같은 객체의 인스턴스를 여러 개 생성한다고 해서 메소드도 여러개 .. 2020. 6. 23. [JAVA]업캐스팅(upcasting) [참고] - 클래스형과 클래스의 자료형, 인스턴스형, 인스턴스의 자료형은 모두 비슷한 의미로 사용하는 용어 상위클래스로 암묵적(묵시적) 클래스 형 변환 개념 면에서 보면 상위 클래스가 하위 클래스보다 일반적인 개념이고, 기능 면에서 보면 하위 클래스가 상위 클래스보다 기능이 많다. 👉상속받은 클래스는 상위 클래스 기능을 모두 사용할 수 있고 추가로 더 많은 기능을 구현하기 때문. 하위클래스는 하위클래스형이면서 동시에 상위클래스 형이기도 하다. 즉, 하위클래스로 인스턴스를 생성 할 때 이 인스턴스의 자료형을 상위클래스형으로 클래스 형변환하여 선언할 수 있다. 👉하위클래스는 상위클래스를 상속 받았기 때문. 즉, 하위클래스에 상위클래스가 포함 된 것. 반대로 상위클래스로 인스턴스를 생성할 때 하위클래스형으로 .. 2020. 6. 22. [JAVA]부모를 부르는 SUPER 예약어 super 예약어는 하위 클래스에서 상위 클래스로 접근 할 때 사용한다. 하위 클래스는 상위 클래스의 주소, 즉 참조값을 알고 있다. 이 참조값을 가지고 있는 예약어가 바로 super 이다. this가 자기 자신의 참조값을 가지고 있는 것과 같다고 생각하면 된다. 또한 super는 상위 클래스의 생성자를 호출하는데 사용된다. 상위 클래스의 필드(멤버 변수)나 메서드(멤버 함수)를 참조하는 super 상위 클래스에 선언한 필드(멤버 변수)나 메서드(멤버함수)를 하위 클래스에서 참조할 때도 super를 사용한다. //상위 클래스의 showCustomerInfo()메서드를 참조하여 담당 상담원의 아이디를 추가로 출력합니다. public String showVIPInfo() { return super.showC.. 2020. 6. 22. 이전 1 ··· 12 13 14 15 16 17 18 ··· 27 다음 반응형