inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

생성자와 소멸자 그리고 this 키워드

생성자와 소멸자

287

장준영

작성한 질문수 5

2

강의에서 iArr배열이 객체라고하는데 왜 배열이 객체인가요?

java

답변 1

9

김동규

음.. 2달전 질문이기는 한데 저도 궁금해서 찾아봤습니다.

1. new 로 생성한 친구들은 기본적으로 특정 클래스에 대한 인스턴스를 생성할 때 사용하는 표현식인데 이를 저장하는 변수를 객체 변수라고 합니다. 
객체 변수에 저장이 이루어지니 배열이라고 볼 수 있을 것 같습니다.

예를들어 다음과 같은 코드가 있을 때

int[] arr = new int[n];

배열을 만든다기보다는 "1개 이상의 일련의 메모리 공간을 할당하는데 해당 메모리 공간의 개수는 n개 다"라는 의미가 자바에서는 좀 더 맞는거 같기도 하네요.

2. ArrayIndexOutOfBoundsException

배열을 위한 예외가 별도로 존재한다는 것이 클래스이기 때문인 것 같습니다.

3. int 자체가 클래스이다.

적으면서 찾다가 발견했는데 기본 자료형도 클래스네요.

https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html

오라클에서 제공하는 문서를 봤는데 기본 자료형도 클래스라고 하네요.

java.lang 패키지는 프로젝트 생성할 때 자동으로 import 되는 패키지 인데 여기에 클래스로 정의 되어있고 BNF문서를 아직 보지 않았지만 자주 쓰는 자료들에 대해 문법적으로 리터럴 값들 처럼 사용할 수 있도록 해준거 같아요.

나름 열심히 찾아보긴 했는데 도움이 되었으면 좋겠습니다. 

열공하세요~~

---추가---

너무 찝찝해서 BNF 보고 왔는데요.

위에서 int 클래스는 wrapper 클래스라고 자료형을 다룰 수 있는 유틸성 클래스인 것 같네요.

BNF 정의서에서는 int, float 등등을 primitive type 으로 정의가 되고 있어서 기본 자료형으로 컴파일이 이루어 지는 것 같고

배열의 경우 아에 타입 자채가 <reference type> ::= <class or interface type> | <array type>

이렇게 되어있네요.

컴파일러가 레퍼런스로 정의하고 처리하고 있어서 참조 타입이라고 이해해야할거 같아요.

문법 정의에다 못을 밖아 놓았네요;;;

BNF 링크: https://cs.au.dk/~amoeller/RegAut/JavaBNF.html

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

0

555

1

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

0

378

1

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

1

650

1

배열예제 오류

0

389

1

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

0

374

0

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

0

533

1

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

0

265

0

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

0

349

0

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

0

301

0

반환값 용도

0

337

1

블로그 작성

0

316

0

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

0

264

1

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

0

352

1

inputStream.read()질문드립니다

0

325

1

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

0

366

1

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

0

577

2

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

0

314

1

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

0

737

1

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

1

303

1

이해가 안가는게 있습니다

0

310

2

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

0

497

1

메모장을 실행하실때

0

311

1

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

0

228

2

메모장이안돼요 처음에

0

276

0