[TIL] 1월 14일

yeon·2021년 1월 14일
0

문자열에서 숫자만 추출

[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;
    		}
    }

오늘 한 일

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

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

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

10개의 댓글

comment-user-thumbnail
2021년 1월 14일

저도 오늘 자바의 정석 chap7 봤는데 반가워요😆😆

1개의 답글
comment-user-thumbnail
2021년 1월 14일

뒤로 갈수록 객체 지향 파트로 넘아가면 그쵸...저는 추상화, 인터페이스, 다형성, enum 등등 모르는 부분이 많네요. 이번 미션하면서 무조건 미션에만 집중할게아니라 자바 객체지향 공부를 같이해줘야겠다는 생각을 했습니다 ㅎㅎ

1개의 답글
comment-user-thumbnail
2021년 1월 15일

https://regexone.com/ 가볍게 익히기 좋아요.

1개의 답글
comment-user-thumbnail
2021년 1월 15일

내부클래스에 대해 어제 공부했는데 막 와닿지 않았는데 정리 잘 해주셔서 다시 한번 공부가 되네요. 캡슐화 및 외부클래스에서만 사용이 될때 사용하는 점 배워갑니다. 감사해요~
공원도는 것이 하루의 낙이라는 점 격공합니다! 바깥바람 쐬는게 이렇게 중요한 일이 될줄이야...

1개의 답글
comment-user-thumbnail
2021년 1월 15일

0-9 가 왜 문자열을 의미 할까요~? ㅎㅎ

1개의 답글