[TIL] 1월 14일
문자열에서 숫자만 추출
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;
}
}
오늘 한 일
-
미션과 별개로 자바의 정석 진도 나가고 있는 중 (스터디 참여중)
- 뒤로 갈수록 잘 모르는 내용이 나온다.
- 일단 가볍게 학습하고, 필요할 때 자세히 학습하는 걸로
- 이론만 자세히 학습하다가는 어차피 기억에 잘 안남을 것 같다.
- 가볍게라도 학습해야 나중에 미션 수행시 이런게 있으니 사용해야지라는 생각이라도 들 것이다.
-
오늘은 자바의 정석 내부클래스 학습
-
날씨가 풀려서 점심시간에 공원 도는게 하루의 낙이 되어버렸다.
Author And Source
이 문제에 관하여([TIL] 1월 14일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@yeon/TIL-1월-14일
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
클래스 안의 클래스
내부 클래스의 장점
-
내부 클래스에서 외부 클래스의 멤버들에 쉽게 접근할 수 있다.
-
코드의 복잡성을 줄일 수 있다. (캡슐화)
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 이외 다른 클래스에서 잘 사용되지 않는 클래스이다.
- 내부 클래스는 변수를 선언하는 것과 같은 위치에 선언 할 수 있다.
- 이 선언 위치에 따라 내부 클래스의 특징이 변수의 특징과 같다.
- 외부 클래스의 멤버 변수 선언 위치에 선언
- 외부 클래스의 인스턴스 멤버들과 관련된 작업의 목적으로 생성됨
- 외부 클래스의 static 멤버처럼 다뤄진다.
- 외부 클래스의 static 멤버, 특히 static 메서드에 사용될 목적으로 생성됨
- 외부 클래스의 메서드나 초기화 블럭 안에 선언
- 선언된 영역 내부에서만 사용될 수 있다.
- 클래스 선언과 객체 생성을 동시에 하는 이름없는 클래스(일회용)
- AWT 나 Swing 처럼 GUI 프로그래밍 시 이벤트 처리시 주로 사용됨
내부 클래스의 제어자는 변수에 사용가능한 제어자와 동일하다.
내부클래스도 클래스이므로 abstract 나 final 같은 제어자를 사용할 수 있고, 멤버변수들처럼 private 이나 protected 접근 제어자도 사용 가능하다.
static 메서드에서 인스턴스 멤버를 다룰 수 없듯이 static 클래스에서도 인스턴스 멤버를 다룰 수 없다.
내부 클래스에서 외부 클래스의 private 변수에 접근 가능하다.
class Outer {
private int outerIv = 0;
class Inner {
int iiv = outerIv;
}
}
미션과 별개로 자바의 정석 진도 나가고 있는 중 (스터디 참여중)
- 뒤로 갈수록 잘 모르는 내용이 나온다.
- 일단 가볍게 학습하고, 필요할 때 자세히 학습하는 걸로
- 이론만 자세히 학습하다가는 어차피 기억에 잘 안남을 것 같다.
- 가볍게라도 학습해야 나중에 미션 수행시 이런게 있으니 사용해야지라는 생각이라도 들 것이다.
오늘은 자바의 정석 내부클래스 학습
날씨가 풀려서 점심시간에 공원 도는게 하루의 낙이 되어버렸다.
Author And Source
이 문제에 관하여([TIL] 1월 14일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yeon/TIL-1월-14일저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)