-
자바 데이터필드 캡슐화의 장점자바 JAVA 2020. 7. 28. 08:25
numberOfObjects는 비공개적이므로 수정할 수 없다
. 이것은 변조를 방지한다. 을 위해
예를 들어, 사용자는 numberOfObjects를 100으로 설정할 수 없다. 100으로 만드는 유일한 방법은
Circle 클래스의 100개의 객체를 만드십시오.
TestCircleWithPrivateDataFields와 Circle을 하나의 클래스로 결합했다고 가정해 보십시오.
TestCircleWithPrivateDataFields의 주요 방법을 Circle로 이동. 할 수 있었다
myCircle.radius를 주요 방법으로 사용하십니까? 정답은 체크포인트 질문 8.22를 참조하십시오.
디자인 가이드
데이터가 변조되는 것을 방지하고 클래스를 쉽게 유지관리할 수 있도록 하기 위해,
데이터 필드를 비공개로 선언하다
8.20 접근자 방법이란? 돌연변이 방법이란 무엇인가? 접근자 메서드와 돌연변이 메서드에 대한 명명 규칙은 무엇인가?
8.21 데이터 필드 캡슐화의 이점은 무엇인가?
8.22 다음 코드에서 circle 클래스는 반경이 비공개로 되어 있으며 myCircle은 a circle이다.
서클 클래스의 객체 강조 표시된 코드가 문제를 일으키는가? 그렇다면
이유를 설명하다
공용 클래스 서클 {
사설 이중 반지름 = 1;
/*** 이 원의 영역 찾기 */
공용 이중 getArea() {
반송 반지름 * 반지름 * 수학.PI;
}
공용 정적 보이드 주(String[] args) {
Circle myCircle = 새 Circle();
System.out.println("Radius is " + );
}
}
8.10 객체를 메소드에 전달
객체를 메소드에 전달하는 것은 객체의 참조를 전달하는 것이다.
객체를 메소드에 전달할 수 있다. 배열을 통과하는 것처럼, 물체를 통과하는 것은 실제로 지나가는 것이다.
물체의 참조 다음 코드는 myCircle 개체를 다음과 같은 인수로 전달한다.
printCircle 방법:
Java는 정확히 하나의 전달 변수, 즉 값별 전달 모드를 사용한다. 앞의 코드에서는
myCircle 값은 printCircle 방법에 전달된다. 이 값은 a에 대한 참조임
수표
키
포인트
사물을 통과시키다.
가치별 패스
8.10 방법 323에 객체 전달
목록 8.11의 프로그램은 원시 타입을 통과하는 것의 차이를 보여준다.
값 및 기준 값 전달
LISTING 8.11 TestPassObject.java
CircleWithPrivateDataFields c, in time)
printAreas()
printAreas(myCircle, n); 통과 객체
객체 매개변수
반지름 영역
CircleWithPrivateDataFields 클래스는 Listing 8.9에 정의되어 있다. 프로그램이 통과하다.
CircleWithPrivateDataFields 객체 myCircle 및 n ~까지의 정수 값
printAreas(myCircle, n)(9줄)를 호출하여 반지름 1, 2, 3의 영역 테이블을 인쇄한다.
4, 5, 샘플 출력에 표시된 바와 같이.
그림 8.18은 프로그램의 메서드를 실행하기 위한 통화 스택을 보여준다. 참고:
객체는 힙에 저장된다(섹션 6.6 참조).
원시 데이터 형식의 인수를 전달할 때 인수의 값이 전달된다. 인
이 경우 n(5)의 값은 시간 단위로 전달된다. printAreas 메소드 내부, 내용
시간의 변화; 이것은 n의 내용에 영향을 주지 않는다.
참조 유형의 인수를 전달할 때 객체의 참조가 전달된다. 이 점에서.
case, c는 myCircle을 통해서도 참조되는 객체에 대한 참조를 포함한다. 그러므로
printAreas 메서드 내에서 c를 통해 객체 속성 변경은 동일함
변수 myCircle을 통해 방법 외부에서 수행하는 것과 같은 효과. 참조에 대한 값별 전달은 의미론적으로 공유, 즉 다음에서 참조되는 개체로 가장 잘 설명할 수 있다.
방법은 전달되는 물체와 동일하다.
패스 바이 셰어링
324 8장 오브젝트 및 클래스
8.23 원시 유형의 매개변수 전달과 통과 간의 차이 설명
참조 유형의 매개 변수 다음 프로그램의 출력을 표시하십시오.
에 필요한 공간
'자바 JAVA' 카테고리의 다른 글
자바 String Class (문자열 클래스 ) (0) 2020.07.29 자바 문자열 비교 (0) 2020.07.28 JAVA OBJECT CLASSS 와 객체 및 캡슐화 (0) 2020.07.28 자바 코딩 테스트 ( 슬롯 찾기, 쿠폰 수집기 문제) (0) 2020.07.26 자바 중간 시험 (코딩테스트 배열문제) (0) 2020.07.26