13. 익명 객체
·
JAVA
상속의 경우 하나의 클래스 파일을 만들어 사용해야한다. 여러 곳에서 객체를 만들어 사용을 원할 시에 생성자로 호출할 수 있기 때문이다. 하지만 클래스의 이름 없이 일회성으로 상속받는 클래스가 있는데 이것을 익명(aninymous) 객체라고 한다. 특정 위치에서만 사용하며 재사용을 원하지 않을 시에 사용하기 좋은 방법이다. 익명 자식 개체 생성 방법 연습을 위한 Parent 클래스 생성 public class Parent { void parentMethod() {}; } 필드 선언 시 초기값으로 익명 자식 객체 생성 public class A { Parent field = new Parent() { int childField; void childrenMethod(){}; @Override void pare..
12. 중첩 클래스 및 인터페이스
·
JAVA
중첩 클래스 클래스 안에 클래스를 선언 한 것을 의미한다. 클래스 간에 접근이 용이하다는 장점을 가지고 있다. 클래스 뿐만 아니라 인터페이스 또한 중첩으로 선언할 수가 있다. 중첩 클래스는 선언되는 위치에 따라 멤버클래스와 로컬 클래스로 나뉘게 된다. 멤버 클래스 클래스 멤버로 선언되는 클래스 인스턴스 멤버 클래스 A객체를 생성해야만 B 클래스 사용 가능 정적 멤버 클래스 A클래스로 바로 접근 할 수있는 B 클래스 로컬 클레스 생성자 및 메소드 내부에서 선언되는 클래스 로컬 클래스 method() 실행시에만 사용 가능한 B클래스 인스턴스 멤버 클래스 class A { class B { B() {}; //생성자 int field1; //인스턴스 필드 void method1; //인스턴스 메소드 } } 정적..
11. 추상 클래스와 인터페이스의 차이
·
JAVA
이전 포스팅을 살펴보면 추상 클래스와 인터페이스는 서로 같은 목적을 가지고 있다는 것을 확인 할 수 있다. 그것은 바로 추상 메소드를 구현해야 한다는 것이다. 눈으로 확인 할 수 있는 차이점은 인터페이스에 있는 메소드들은 모두 추상 메소드이지만 추상 클래스의 경우 추상 메소드를 선택하여 구현할 수 있다. 여기서 드는 의문점은 interface의 존재의 이유였다. 추상 클래스가 존재함에도 불구하고 interface가 있는 이유는 무엇일까? 사용 목적 추상클래스 자식 및 부모를 계속해서 확장시 킬 수 있다. 따라서 확장에 용이하다 인터페이스 다중 인터페이스 구현를 구현할 수 있다. 여기서 알 수 있듯이 자바에서는 다중 상속이 불가능하다는 특징을 가지고 있다. 다중 상속의 문제점 때문이다. 다중 상속의 문제점..
10. 인터페이스
·
JAVA
인터페이스(interface) 객체와 개발 코드가 서로 통신하는 접점 역할을 한다. 개발 코드를 수정하지 않고 객체를 변경할 수 있도록 하기 위해 사용된다. 하나의 객체가 아닌 여러 객체들과 사용이 가능하여 어떤 객체를 사용하느냐에 따라 결과값이 달라진다. 필드 선언 인터페이스는 객체 사용 방법을 정의한 것이므로 인스턴스(객체)와 정적 필드를 선언할 수 없다. 하지만 상수(final static) 필드는 선언이 가능하다. 필드 선언시 final static을 생략하더라도 컴파일시 자동으로 붙게 된다. 상수이기 때문에 대문자로 작성해야 한다. 메소드 선언 인터페이스를 통해 호출된 메소드는 객체에서 실행된다. 인터페이스에 선언된 메소드는 추상 메소드이기 때문에 public abstract이라는 특성을 가지게..
9. 추상 클래스
·
JAVA
추상 클래스 클래스들의 공통적인 특서을 모아 추상적으로 선언한 클래스를 의미한다. 실제 사용은 하지 못하고 상속 받은 자식 클래스에서 사용이 가능하다. 용도 프로젝트 진행시에 한 사람이 아닌 여러 사람이 코드를 작성하기 때문에 통일성을 주기 위해 선언한다. 공통으로 사용되는 메소드를 각자 정의한 필요가 없어 시간 절약에 용이하다. 선언 public abstract class Phone { //필드 //생성자 //메소드 } 추상 메소드 메소드를 추상적으로 만든 것을 의미하며 클래스의 필드 및 메소드를 통일하는데 목적을 둔다. 같은 특성을 지니고 있지만 메소드의 내용이 조금씩 다를 경우 사용하기에 용이하다. 선언 부모 클래스(추상 클래스) public abstract class YongIn { public ..
8. 클래스의 타입 변환 및 다형성
·
JAVA
다형성 동일한 사용 방법을 다양한 객체를 활용하여 각자 다른 결과 값을 도출하는 것을 의미한다. 컴퓨터 부품으로 예를 들어 설명하면 본체는 그대로지만 성능이 다른 그래픽 카드를 갈아 끼는 것과 비슷하다고 볼 수 있다. 자동 타입 변환 클래스도 기본 타입과 마찬가지로 타입 변환이 가능하다. 기본 타입에서는 작은 타입에서 큰 타입으로 저장될 때 발생한다. 이와 비슷하게 클래스에서도 자식 타입이 부모 타입으로 자동 타입 변환이 가능하다. Car car = new Car(); Vehicle v1 = car; Vehicle v2 = new Car(); car과 v1은 따로 동일한 객체를 참조하기 때문에 ==연산에서도 ture가 나오는 것을 확인할 수 있다. 앞에 코드와 같이 부모 타입으로 변환이 된 후에는 다시 ..
BE전문가 프로젝트
'JAVA' 카테고리의 글 목록 (2 Page)