[TIL] 1월 14일

5340 단어 TILTIL

문자열에서 숫자만 추출

[JAVA] 문자열에서 숫자만 추출

String str = "01-abc123-한글1234";
        String restr = str.replaceAll("[^0-9]","");
        System.out.println(restr);

여기서 [^0-9] 가 무슨 뜻일까

→ 0~9의 숫자가 아닌 문자열을 의미한다.

char 형 int 로 바꾸기

char a = '3';
int three = a - '0';
  • '0' 을 빼면 됨

자바의 정석 ch 7

내부 클래스(inner class)

내부 클래스란?

  • 클래스 안의 클래스

  • 내부 클래스의 장점

    • 내부 클래스에서 외부 클래스의 멤버들에 쉽게 접근할 수 있다.

    • 코드의 복잡성을 줄일 수 있다. (캡슐화)

      class A {
      	int a = 10;
      
      	class B {
      		void method() {
      				System.out.println(a)
      		}
      	}
      }
    • class A는 class B의 외부 클래스

    • class B는 class A의 내부 클래스

    • class B에서 class A의 인스턴스 생성 없이 멤버 접근 가능하다.

    • 이때 내부 클래스 B는 외부 클래스 A 이외 다른 클래스에서 잘 사용되지 않는 클래스이다.

내부 클래스의 종류와 특징

  • 내부 클래스의 종류와 유효범위(scope)는 변수와 동일
    • 내부 클래스는 변수를 선언하는 것과 같은 위치에 선언 할 수 있다.
    • 이 선언 위치에 따라 내부 클래스의 특징이 변수의 특징과 같다.
  • 인스턴스 내부 클래스(instance class)
    • 외부 클래스의 멤버 변수 선언 위치에 선언
    • 외부 클래스의 인스턴스 멤버들과 관련된 작업의 목적으로 생성됨
  • 스태틱 내부 클래스(static class)
    • 외부 클래스의 static 멤버처럼 다뤄진다.
    • 외부 클래스의 static 멤버, 특히 static 메서드에 사용될 목적으로 생성됨
  • 지역 내부 클래스(local class)
    • 외부 클래스의 메서드나 초기화 블럭 안에 선언
    • 선언된 영역 내부에서만 사용될 수 있다.
  • 익명 클래스(anonymous class)
    • 클래스 선언과 객체 생성을 동시에 하는 이름없는 클래스(일회용)
    • AWT 나 Swing 처럼 GUI 프로그래밍 시 이벤트 처리시 주로 사용됨

내부 클래스의 제어자와 접근성

  • 내부 클래스의 제어자는 변수에 사용가능한 제어자와 동일하다.

  • 내부클래스도 클래스이므로 abstract 나 final 같은 제어자를 사용할 수 있고, 멤버변수들처럼 private 이나 protected 접근 제어자도 사용 가능하다.

  • static 메서드에서 인스턴스 멤버를 다룰 수 없듯이 static 클래스에서도 인스턴스 멤버를 다룰 수 없다.

  • 내부 클래스에서 외부 클래스의 private 변수에 접근 가능하다.

    class Outer {
    		private int outerIv = 0;
    
    		class Inner {
    			int iiv = outerIv;
    		}
    }

오늘 한 일

  • 미션과 별개로 자바의 정석 진도 나가고 있는 중 (스터디 참여중)

    • 뒤로 갈수록 잘 모르는 내용이 나온다.
    • 일단 가볍게 학습하고, 필요할 때 자세히 학습하는 걸로
    • 이론만 자세히 학습하다가는 어차피 기억에 잘 안남을 것 같다.
    • 가볍게라도 학습해야 나중에 미션 수행시 이런게 있으니 사용해야지라는 생각이라도 들 것이다.
  • 오늘은 자바의 정석 내부클래스 학습

  • 날씨가 풀려서 점심시간에 공원 도는게 하루의 낙이 되어버렸다.

좋은 웹페이지 즐겨찾기