JAVA(2)

Ming·2024년 6월 10일

해당 내용은 실습이 주가 되었으므로 깃허브 링크로 대신함.

배열(Array)

배열 생성 및 초기화

  • 배열 생성과 동시에 생성
  int[] iArray = new int[] {1, 2, 3, 4, 5}; // 배열 생성과 동시에 초기화
  double dArray[] = {1.1, 2.2, 3.3, 4.4, 5.5}; // 배열 생성과 동시에 초기화
  • 배열 생성 시 에러나는 case
    - 배열 변수를 이미 선언한 후에 중괄호를 사용한 배열 생성은 불가능하다.
      int[] iArray;
      iArray = {1, 2, 3, 4, 5}; // 에러 발생
    • 위의 경우, 다음과 같이 해결 가능하다.

        int[] iArray;
        iArray = new int[] {1, 2, 3, 4, 5};
      
  • 배열 생성 시 초기화 되는 값

배열 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/04_%EB%B0%B0%EC%97%B4

열거 타입(Enum)

  • 한정된 값만을 갖는 데이터 타입이다.
  • 열거 타입은 몇 개의 열거 상수(Enumeration Constant) 중에서 하나의 상수를 저장하는 데이터 타입이다.
  • 열거 타입의 생성자는 반드시 private으로 선언해야 한다.

메소드

  • name(): 열거 상수가 가지고 있는 문자열을 반환한다.
  • ordinal(): 전체 열거 상수 중 몇 번째 열거 상수인지 정숫값을 반환한다. (0부터 시작)
  • equals(): 매개값으로 전달되는 열거 상수와 동일한 열거 상수인지 확인 후 true 또는 false를 반환한다.
  • compareTo(): 매개값으로 주어진 열거 상수를 기준으로 전후로 몇 번째 위치하는 정숫값을 반환한다

열거 타입 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/05_%EC%97%B4%EA%B1%B0%ED%83%80%EC%9E%85

클래스

접근 제한자

  • public: 외부에서 자유롭게 접근이 가능하다.
  • protected: 같은 패키지 또는 자식 클래스에서만 접근이 가능하다.
  • default: 같은 패키지에 소속된 클래스에서만 접근이 가능하다.
  • private: 외부에서의 접근을 제한하고 선언된 클래스에서만 접근이 가능하다.

객체 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/06_%EA%B0%9D%EC%B2%B4

필드 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/07_%ED%95%84%EB%93%9C

생성자 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/08_%EC%83%9D%EC%84%B1%EC%9E%90

메소드 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/09_%EB%A9%94%EC%86%8C%EB%93%9C

메소드 오버로딩

  • 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것
  • 메소드 오버로딩을 통해서 매개값을 다양하게 받아서 필요한 처리할 수 있다.
  • 메소드 오버로딩의 조건은 매개변수의 타입, 개수, 순서 중 하나가 달라야 한다.
  • 매개변수 이름만 바꾸는 것, 리턴 타입만 다르고 매개변수가 동일한 것도 메소드 오버로딩이 아니다.
  • 호출 시점에 메소드 구분이 가능해야한다.

정적 메소드

  • 메소드 내부에서 정적 멤버를 사용하거나 필드를 사용하지 않는다면 정적 메소드로 선언한다.
  • 객체의 필드나 메소드에 접근할 수 없고 this 키워드를 사용할 수 없다.

정적 변수 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/10_%EC%A0%95%EC%A0%81%EB%A9%A4%EB%B2%84

상속 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/11_%EC%83%81%EC%86%8D

메소드 오버라이딩

  • 부모 클래스의 메소드를 자식 클래스에서 다시 재정의해서 사용하는 것
  • @Override 어노테이션을 붙여 준다. (생략 가능)
  • 부모 클래스의 메소드가 private 접근 제한을 가지면 자식 클래스는 메소드를 오버라이딩 할 수 없다.
  • 자식 객체에서 오버라이딩된 메소드를 가지면 부모 객체의 메소드는 삭제되는 것이 아닌 오버라이딩된 메소드에 의해 가려지게 된다.
  • 자식 클래스 내부에서 오버라이딩된 부모 클래스의 메소드를 호출해야 하는 상황이 발생한다면 super를 통해서 부모 메소드를 호출할 수 있다.
  • 부모 클래스의 접근 제한자보다 좁은 영역의 접근 제한자를 자식 클래스에 사용할 수 없다.

다형성 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/12_%EB%8B%A4%ED%98%95%EC%84%B1

추상클래스 실습

https://github.com/mjms0214/BEYOND_SW_CAMP_8/tree/main/JAVA/13_%EC%B6%94%EC%83%81%ED%81%B4%EB%9E%98%EC%8A%A4

0개의 댓글