AI교육과정 - Java.7

단비·2022년 10월 6일
0

AI교육과정

목록 보기
7/69
  • 박싱(Boxing)
    • 기본 타입을 래퍼클래스로 변환
      • int num=10;
      • Integer i = new Integer(num)
  • 언박싱
    • 래퍼클래스를 기본타입으로 변환 int num = i.intValue();
  • static
    • 모든 객체가 공유한다는 의미
    • static이 붙은 변수는 클래스 변수라고 부름 (static이 붙지 않은 변수는 instance 변수라고 부름)
    • 메모리에 우선 로드되므로 속도가 빠름
    • 메모리가 회수되지 않기 때문에 사용 시 주의
    1. 변수에 적용

      • 모든 객체가 변수를 공용으로 사용 (ex) Math.PI
    2. 블록에 적용

      • 같은 객체가 여러개 만들어지더라도 단 한번만 실행되는 코드블록을 만듬
    3. 메소드에 적용
      - 객체를 사용하지 않고 클래스.메소드 이름으로 적용하여 사용

          Math.random()
          
      static(){} // 여러번 호출해도 한 번만 실행됨
  • 추상클래스
    • 하나 이상의 추상 메소드를 포함한 클래스
    • 객체 생성을 할 수 없음 (자식 클래스에서 상속하여 객체를 생성, 자식 클래스는 또 다른 클래스를 상속 받을 수 없음)
    • 변수의 타입으로 선언하는 용도와 상속의 본연의 기능으로 특정한 코드를 하위 클래스로 물려주기 위해 생성
    • 나머지 기능은 일반 클래스와 동일
    • 추상화 클래스의 다형성
      • 추상화클래스는 다형성을 보장하기위해 나타난 개념
      • 자식클래스에서 반드시 메소드를 재정의 해야함 → 다형성 보장
      1. 추상화
        • 공통된 행동, 필드를 묶어 하나의 클래스를 만드는 것
      2. 추상 메소드
        • 메소드 선언만 돼있고 구현부가 없는 메소드
  • 인터페이스
    • 자바는 다중 상속을 지원하지 않으므로 인터페이스를 사용해서 다중 상속을 구현

    • 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서 다른 클래스 사이의 매개 역할을 담당하는 일종의 추상 클래스와 비슷

    • 인터페이스는 추상 메소드와 상수만을 포함할 수 있음 → 인스턴스 메소드, static 메소드도 포함(jdk8~)

      접근제어자 interface 인터페이스이름 {
      		타입 상수이름 =; // public static final 타입 변수명으로 JVM이 자동으로 변환
      		public 반환형 메소드명(매개변수1,배개변수2); // abstract를 작성하지 않아도 JVM에서 자동으로 붙여줌
      }
      
      접근제어자 class 클래스이름 implements 인터페이스이름{} // 구현 방법
      접근제어자 class 클래스이름 extends 부모클래스이름 implements 인터페이스이름{} // 상속 방법
      접근제어자 class 클래스이름 extends 부모클래스이름 implements 인터페이스이름1, 인터페이스이름2{} // 여러개 상속 방법
  • API(Application Programming Interface)
    • 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
  • 인터페이스(Interface)
    • 개발코드와 객체가 서로 통신하는 접점 역할
  • 상수(final)
    • 클래스, 변수, 메소드에서 사용할 수 있는 키워드
    • 변환할 수 없는 상태를 나타냄
    1. 클래스에서 사용, 상속할 수 없게됨

      final class 부모클래스명{}
      class 자식클래스명 extends 부모클래스명{ // 에러}
    2. 변수에서 사용, 값을 재할당 할 수 없음

      final String str = "apple";
      str = "banana"; // 에러
    3. 메소드에서 사용, 오버라이딩 불가

      class 부모클래스명{
      		final String method1(){
      					return}
      }
      public class 자식클래스명 extends 부모클래스명{
      		String method1(){  // 에러
      					return2
      		}
      }
  • 패키지(Package)
    • 클래스 파일들을 체계적으로 관리하도록 사용하는 디렉토리 개념
    • 패키지를 생성하지 않고 기본 파일들이 저장된 공간을 default package라고 부름
  • 접근제어자
    • 외부에 공개되는 수준을 의미
    1. public
      • 모든 외부에서 직접 접근하거나 호출
    2. protected
      • 현재 클래스와 동일한 패키지거나 다른 패키지더라도 상속 시 접근하거나 호출 가능
    3. default
      • 현재 클래스와 동일한 패키지 내에서만 접근하거나나 호출(접근 제어자를 쓰지않은 경우 default)
    4. private
      • 현재 클래스의 {} 바깥쪽에서는 절대 접근하거나 호출할 수 없음
    • 클래스의 접근 제한
      • public, default만 사용 가능
      • public인 경우 외부에 클래스를 노출, default는 현재 패키지에만 접근할 수 있게함
    • 필드의 접근 제한
      • public, protected, default, private 모두 사용 가능
      • 일반적으로 private, public static으로 선언하는 것이 일반적
    • 메소드의 접근 제한
      • public, protected, default, private 모두 사용 가능
      • 추상 메소드의 형태는 private는 불가능
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글