inflearn logo
강의

Course

Instructor

Do it! Introduction to Java Programming with Eun Jong

Using object arrays (2)

Book 클래스 안에서 bookName과 author를 private으로 선언했는데

223

seung lee

15 asked

0

private으로 멤버변수를 선언하고나서

접근할 수 있는 get함수와 set함수 다 만들거면 왜 멤버변수를 private으로 설정하나요?

읽게만 하고싶고 못쓰게 하려면 private으로 변수 제어해놓고 get함수만 만드는건 이해하겠는데

get,set함수 둘다 만들거면 private은 왜 쓰나요? 이유가 궁금합니다.

java

Answer 1

2

ghzm02641021

예를 들자면, "자동차"라는 클래스에서 "기름" 이라는 변수가 public로 선언 되었을때, 외부에서 값을 넣을 수 있습니다.

현실세계에서 생각해봅시다. 기름을 넣으려고 주유소를 가서 주유를 하는 상황이라고 가정 합시다.

기름 변수에 음수로 넣었다고 가정해보면, 말이 안되잖아요?  차에 기름을 넣었는데 마이너스 만큼 넣을수가 없죠 ..

 근데 public로 선언하면 외부에서 바로 접근이 가능하니, 음수를 넣을 수가 있단 말이죠.

 

이러한 문제를 방지하기 위해 private이 있습니다.

외부에서 이상한 값을 직접 넣지못하게 접근하는것을 막아두고 get,set 메소드를 통해 한번 검증? 호출하는 방식으로, 이해하면 되겠네요

즉, 호출시 set메소드에 음수는 대입할수 없다 라는 제약조건을 걸어서 음수 값을 못넣게 할 수 있습니다.

0

seung lee

우와 그렇네요 그런 기능을 넣을 수가 있군요! 감사합니다 이해됐습니다

이클립스 활성화가 안되는부분이있어요ㅜㅜ

0

435

1

책에 자료실

0

498

1

StudentID

0

561

1

인터페이스와 가상 메서드

0

357

1

11분쯤 price, int price 질문

0

353

1

For문 (중첩된 반복문) 구구단 문의 드립니다.

0

791

1

반복문 별 출력 연습문제

0

398

1

비트 연산자 질문입니다.

1

375

1

Scheduler scheduler = null 굳이 하는 이유가 있나요

1

336

0

Class간의 연결

1

298

1

선생님 스킬

0

400

1

초기화 에러!!!

0

286

1

선생님 영상에서 목소리가 좀 작은 것 같습니다 ㅠㅠ

2

304

0

출력

2

233

0

Main 함수 저번 강의 거가 나와요

0

319

1

결과값오류

1

226

0

printIn 함수 질문

0

456

1

24분 57초에 질문 있습니다!!

0

364

1

1분36초쯤에 말씀하시는 자바닥??그거 보라고 하셨는데 자바닥이 뭐죠..?

0

253

1

메서드와 생성자

0

399

2

참조형 데이터 타입은 클래스 이름과 같아야 하나요?

0

287

1

반환값은 정수 밖에 안되나요?

0

274

1

9분33초 설명!!부탁 드립니다!

0

300

1

48분쯤에 {"B","C","D""} 를 왜 {'B','C','D'}로 바꿨죠?

0

298

1