자바

수민·2022년 6월 2일
0

개발

목록 보기
16/45

인터페이스의 여러가지

추상메서드

  • 모든 선언된 메서드는 추상 메서드 public abstract


static 메서드이기떄문에 인터페이스 이름으로 호출도 가능하다.

여러 인터페이스 구현

  • 자바의 인터페이스는 구현코드가 없으므로 하나의 클래스가 여러 인터페이스는 구현 할 수 있음.
  • 디폴트 메서드가 중복되는 경우는 구현하는 클래스에서 재정의 하여야 함.

인터페이스의 상속

  • 인터페이스 사이에도 상속을 사용할 수 있음
  • extends 키워드를 사용
  • 인터페이스는 다중 상속이 가능.

클래스 상속과 인터페이스 구현 함께 쓰기

  • 실무에서 프레임워크나 오픈소스와 함꼐 연동되는 구현을 하게되면 클래스 상속과 인터페이스의 구현을 같이 사용하는 경우가 많음.

  • 책이 순서대로 대여가되는 도서관 구현

  • 책을 보관하는 자료 구조가 Shelf에 구현됨

  • Queue 인터페이스를 구현함

  • SehIf클래스를 상속받고 Queue를 구현한다.

Object클래스- 모든 클래스의 최상위 클래스

  • import하지않아도 자동으로 import됨
  • import.java.lang.*
  • 많이 사용하는 기본 클래스들이 속한 패키지

모든 클래스는 Object클래스를 상속 받는다.

  • java.lang.object 클래스
  • 모든 클래스의 최상위 클래스는
  • 모든 클래스는 Object에서 상속받고, Objecf의 클래스의 메서드중 일부는 재정의해서 사용할 수 있음.

toString()메서드

  • 객체의 정보를 String으로 바꿀떄 사용.

equals() 메서드

  • 두 인스턴스의 주소 값을 비교하여 true/false를 반환
  • 재정의하여 두 인스턴스가 논리적으로 동일함의 여부를 구현함
  • 인스턴스가 다르더라도 논리적으로 동일한경우 ture를 반환할수있도록 재정의 할 수 있음.

HashCode() 메서드

  • HashCode()는 인스턴스의 저장 주소를 반환함
  • 힙메모리에 인스턴스가 저장되는 방식이 hash방식
  • Hash:정보를 저장,검색하는 자료구조
  • 자료의 특정 값(키 값)에대한 저장위치를 반환해주는 해시 함수를 이용.

두개는 다른객체이기 떄문에 false를 반환한다.

equals는 주소를같냐 고 물어보는거기꺠문에
false를 반환

주소값이 같냐고 물어봤기떄문에 true를 반환한다.

다운캐스팅


주소는다르지만 논리적으로같냐고 물어봤기떄문에
true를 반환한다.

str1=str2 는 메모리값을 주는것이아닌 같을때
같은 해시코드가 반환되면 된다.

학번이 반환되게 하면된다.

clone메서드

  • 객체의 원본을 복제하는데 사용하는 메서드
  • 생성과정의 복잡한 과정을 반복하지않고 복제할수 있음
  • Clone()메서드를 사용하면 객체의 정보(멤버 변수값등 ...)가 동일한 또 다른 인스턴스가 생성 되는 것이므로, 객체지향 프로그램에서의 정보은닉, 객체 보호의 관점에서 위배될 수 있음
  • 해당 클래스의 clone()메서드의 사용을 허용한다는 의미로 cloneeable 인터페이스를 명시

String 클래스

  • String 선언하기
  • String str1=new String("abc");
  • String str="abc";

연결-새로운 문자를 연결하기떄문에 메모리낭비가 초래됨.

StringBUilder,StringBuffer 활용하기

  • 내부적으로 가변적인 char[]를 멤버 변수로 가짐
  • 문자열을 여러번 연결하거나 변경할 때 사용하면 유용함
  • 새로운 인스턴스를 생성하지 않고 char[]를 변경함
  • StringBuffer

Class 클래스

  • 자바의 모든 클래스와 인터페이스는 컴파일 후
    class파일이 생성됨
  • Class클래스는 컴파일된 class파일을 로드하여
    객체의 동적 로드하고, 정보를 가져오는 메서드가 제공됨
profile
헬창목표

0개의 댓글