KOSTA

KOSTA 교육 (Interface, Object Class, Nested Class, String API, BoxingUnboxing)

코린이 연대기 2021. 2. 23. 19:30

배운 내용

 

  1. Interface(인터페이스)
  2. Object Class
  3. Nested Class(inner, anonymous)
  4. String API

1. Interface(인터페이스)

인터페이스는?

추상메소드와 흡사한 기능을 가지고 있으며 자식메소드를 구현하는데 사용된다. implements를 사용하여 생성한다.

인터페이스를 사용하는 이유

  • 코드의 독립성을 위하여
  • 코드의 일관성을 위하여

 

인터페이스와 추상메소드와의 차이점

  • 추상클래스는 일반 메소드와 추상메소드를 둘다 가질 수 있지만, 인터페이스는 추상메소드와 상수만 가질 수 있다.
  • 인터페이스 내에 존재하는 메소드는 public abstract로 선언한다. (abstract를 생략해도 무방하다.)
  • 인터페이스 내에 존재하는 변수는 무조건 public static final로 선언한다.
  • 인터페이스는 다중 상속과 비슷한 기능을 제공한다.

 

  • interface 클래스를 개설하여 String insertBoard메소드를 선언한다.

 

  • Oracle 클래스를 생성할 때 interface 클래스를 implements로 인터페이스한다.
  • 인터페이스 메소드를 통하여 Oracle을 리턴해준다.

 

  • Oracle과 동일한 방법으로 선언해준다.

 

  • name메소드를 선언하여 program을 파라미터값으로 선언하고 인터페이스 메소드를 선언한다.

 

  • Main메소드에서 인터페이스 클래스를 제외하고 객체를 생성해준다.
  • Manager 객체의 name 메소드를 통해 각 프로그램을 실행한다.

2. Object Class(오브젝트 클래스)

오브젝트 클래스는?

모든 클래스의 조상이며 암시적으로 모든 클래스가 상속을 받고있다.

 

오브젝트 클래스의 종류

 

equals(Object obj)
동일한 클래스에서 생성된 두 객체를 비교한다.

 

  • AccountMain에서 선언한 obj 객체에 대하여 boolean을 사용하여 오버라이드를 선언한다.
  • accountNum이 같으면 참, 다르면 거짓을 선언한다.

 

  • Main메소드에서 각 객체별 생성자 파라미터 값에 대해 선언한다.
  • 그 값이 같다면 “같다", 아니면 “다르다"를 출력한다.
  • 여기서 오버라이딩을 하지 않는다면 주소값을 비교하게 되니 주의한다.

 

toString()
문자화시키는 것을 말한다.

 

  • 변수와 생성자를 생성한다.
  • 여기서 toString을 오버라이딩 하여 문자화 시켜준다.

 

  • toString이 없다면 주소값이 출력이 되겠지만 toString을 통하여 문자화하였기 때문에 2000년 12월 2일이 출력이된다.

3. Nested Class

네스티드 클래스는?

클래스 안의 클래스라는 의미이다.

  • 소스의 가독성을 높이고, 유지보수를 용이하게 하기 위함

 

Inner Class(내부클래스)

 

  • OuterOfStatic이라는 클래스 안에 StaticNested클래스가 추가로 있는 것을 볼 수 있다.
  • 해당 클래스를 컴파일 하면 내부의 클래스도 동일하게 실행이 된다.

 

Anonymous Class(익명클래스)

 

  • Role이라는 추상클래스를를 Main에서 바로 객체로 생성한다.
  • 해당 추상메소드를 선언한다.
  • Person클래스를 객체로 생성하여 파라미터 값에 r을 선언하고 출력한다.
  • “공부 열심히 하는 학생" 이 출력된다.

3. String API

String API는?

String에 해당되는 자바의 기능을 말한다.

  • String에 관련된 API를 사용함으로서 보다 편리하고 쉽게 작업이 가능함

 

  • 문자열 선언은 String name = “”; , String name = new String(“”); 로 한다.
  • String 불변성은 자신은 메소드를 통하여 변하지 않는 것을 말하며 concat을 사용한다.
  • 불변성을 해결하기 위해 문자열을 조건문과 함께 사용한다.
  • StringBuffer, StringBuilder를 사용하여 변한다.
  • 해당 문자열의 위치를 파악하기 위해 indexOf(“”); 를 사용한다.
  • 문자열의 길이는 length를 사용한다.
  • 문자열 부분 추출은 substring(,)으로 실사용이 잦으니 꼭 기억하자.
  • 공백문자 제거는 trim()을 사용한다.
  • 문자를 배열로 전환하는 것은 split()을 사용한다.
  • 정수형을 문자열로 바꾸는 방법은 정수의 변수값을 문자열로 실행하여 바꾼다.