inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!

내부 클래스와 익명 클래스

내부클래스수업때 객체생성에 관하여

180

김동현

작성한 질문수 1

0

내부클래스 수업때

왼쪽 화면의 객체생성하는 코드를 보면

OuterClass.InnerClass in = oc.new InnerClass(); 라고 되어있는걸 볼 수 있습니다.

OuterClass.InnerClass in = new oc.InnerClass(); 가 뭔가 더 직관적인것 같은데 이건 틀린표현입니까?

밑의 static 클래스인 SinnerClass의 생성코드는

OuterClass.SInner si = new OuterClass.SInnerClass();라고 되어있네요

무슨 차이죠?

java

답변 1

2

안중원

설명을 해드리자면

객체를 만들때 new라는 키워드를 사용하여 인스턴스로 만들잖아요?

잘 생각해보시면 왜 new의 위치가 저기인지 이해가 가실겁니다.

OuterClass.InnerClass in = oc.new innerClass();

라는 코드는 OuterClass.InnerClass 의 자료형을 가진 in 변수에 이미 할당받은 변수 oc의 클래스만 저장하겠다 라는 뜻입니다.

OuterClass.InnerClass in = new oc.InnerClass();로 코드를 작성한다면

이미 할당받은 oc 마저도 재 할당하라는 뜻의 new가 되겠죠?

oc의 자료형은 OuterClass입니다.

Outer.Class.InnerClass는 더 큰범위인 OuterClass를 담을수없습니다.

그러므로 강사님이 말씀해주신것 처럼 new OuterClass.InnerClass(); 로 쓰셔야합니다.

서식 문자 실습 중 콘솔 결과값 글자 깨짐

0

556

1

19-4 : super 클래스 부분에서

0

379

1

비트를 뒤에서부터 읽으셔서 궁금해서 질문드립니다!

1

650

1

배열예제 오류

0

389

1

GC 동작시기가 궁금합니다.

0

374

0

자바 18버전으로 다운받아도 되나요?

0

533

1

클래스 생성과 관련하여 질문 있습니다

0

265

0

형변환시 신규 메모리가 할당 되는지

0

349

0

Socket을 null로 처음에 선언해주는 이유가 뭘까요?

0

303

0

반환값 용도

0

339

1

블로그 작성

0

316

0

삼항연산자 잘못 적으셨어요

0

265

1

어느것부터 다운로드를 해야하는지 좀 막히네요

0

352

1

inputStream.read()질문드립니다

0

325

1

System.out.println("i + j = " + (i+j); 이렇게 쓰는 이유가 뭔가요? " "i + j " = (i +j)라고 쓸수 있는거 아닌가요?

0

368

1

<for문> 예시 작성시 에러발생 질문드립니다

0

577

2

이해가 안가는 부분이 있습니다.. 선생님들.. 도와주세요..!!

0

314

1

인터페이스를 사용 하는 이유가 무엇인가요?..

0

737

1

혹시 영상 만드시고 업로드 전 확인 안하시나요..? 잡음..

1

304

1

이해가 안가는게 있습니다

0

310

2

jdk-16.0.1은 jre가 없이 jdk만 설치되는게 정상인가요?

0

498

1

메모장을 실행하실때

0

313

1

강의 중 말씀해주신 형변환된 코드가 알고 싶어요.

0

231

2

메모장이안돼요 처음에

0

277

0