inflearn logo
강의

Course

Instructor

Mastering Java Basics with Teacher Eun-jong (Do it! Introduction to Java Programming) - Part 1 (Basics)

질문드려요

242

Levi

8 asked

0

public class Company {

private static Company instance = new Company();

 

private Company() {}

 

public static Company getInstance() {

if(instance == null) {

instance = new Company();

}

return instance;

}

}
위에 코드에서 유일한 객체를 생성하면 instance에 참조값이 저장되고,

그럼 if(instance == null) 조건문에서 instance에는 참조값이 저장되어 있으므로 null이 아니라서 패스하고 return instance 하게 되는게 맞을까요?

만약 유일객체를 먼저 생성하지 않았다면 멤버변수로 private static instance;만 선언하구 함수 호출시에 유일 객체 생성해서 리턴하는 방법으로 사용하면 될까요?

객체를 생성하고 나면 인스턴스가 자동초기화된 상태일텐데 null이랑 동등 비교하니 조금 헷갈려서 질문드려요!

java 객체지향

Answer 1

0

eunjong

null 여부를 체크하는건 일종의 방어적인 코드라 볼 수 있습니다. 그럴 일은 없지만 혹시라도 유일 객체가 null 이 되는 경우 이를 다시 생성해주는 의미입니다. 그렇지 않은 경우는 말씀하신 대로 이미 생성된 instance가 반환됩니다.

0

Levi

위의 코드에서는 생성한 객체의 해시코드가 저장되어서 null값이 아니게 되는건 맞나요?

질문드려요

0

437

4

구현과 오버라이딩

0

238

1

문제답안

1

240

2

교재 속 나 혼자 코딩 문제 답안관련 질문

1

320

1

회차 강의pdf파일 보는 방법이 없나요?

0

567

1

singleton pattern

0

380

2

return 사용되는 위치가 궁금합니다

0

469

2

오버라이드 할때 @override 안적어도 되나요?

0

545

1

pakage 내에서 main함수는 하나만 존재해야하나요?

0

727

1

왜 이렇게 하는지 설명은 없나요?

0

411

1

p.88 연습문제1 질문입니다.

0

281

1

강의노트 어디서 볼수 있을까요?

0

449

4

강의노트 어디서 볼 수 있을까요?

0

677

2

예제코드 다운로드 오류

0

538

1

복습문제는 어디서 확인할수있을까요?

0

410

1

static 메서드 main문 안에 선언 시 오류 발생 이유가 궁금합니다.

0

386

1

강의노트는 어디서 확인할 수 있을까요

0

485

1

실행을 하면 결과가 깨져서 나와요

0

374

3

복습 문제 들은 어디서 받아 볼 수 있나요

0

389

2

비트 연산자 질문

0

295

1

upgradeLevel에 인수를 넣기 위해 새로 AdvancedLevel 과 같은 instance를 생성하는게 어색하게 느껴집니다.

0

334

1

p.243

0

233

2

p.237

0

250

2

p.196

0

271

1