[질문]mutator와 accessor가 이해가 안가요.
하늘빛눈망울
//**********************************************************************
public class GradeRange
{
//-----------------------------------------------------------------
// Creates an array of Grade objects and prints them.
//-----------------------------------------------------------------
public static void main (String[] args)
{
Grade[] grades =
{
new Grade(A, 95), new Grade(A-, 90),
new Grade(B+, 87), new Grade(B, 85), new Grade(B-, 80),
new Grade(C+, 77), new Grade(C, 75), new Grade(C-, 70),
new Grade(D+, 67), new Grade(D, 65), new Grade(D-, 60),
new Grade(F, 0)
};
for (Grade letterGrade : grades)
System.out.println (letterGrade);
}
}//***********************************************************************
public class Grade
{
private String name;
private int lowerBound;
//-----------------------------------------------------------------
// Constructor: Sets up this Grade object with the specified
// grade name and numeric lower bound.
//-----------------------------------------------------------------
public Grade (String grade, int cutoff)
{
name = grade;
lowerBound = cutoff;
}
//-----------------------------------------------------------------
// Returns a string representation of this grade.
//-----------------------------------------------------------------
public String toString()
{
return name + \t + lowerBound;
}
//-----------------------------------------------------------------
// Name mutator.
//-----------------------------------------------------------------
public void setName (String grade)
{
name = grade;
}
//-----------------------------------------------------------------
// Lower bound mutator.
//-----------------------------------------------------------------
public void setLowerBound (int cutoff)
{
lowerBound = cutoff;
}
//-----------------------------------------------------------------
// Name accessor.
//-----------------------------------------------------------------
public String getName()
{
return name;
}
//-----------------------------------------------------------------
// Lower bound accessor.
//-----------------------------------------------------------------
public int getLowerBound()
{
return lowerBound;
}
}위에 두개의 파일이 있습니다. GradeRange.java와 Grade.java
Grade.java를 보면 mutator와 accessor가 있거든요.
제가 보기에는 set___ , get___ 이런 메소드가 필요 없다고 생각하는데
왜 명시를 해주는건가요? 이해가 안가네요.
그냥 이런 값이 있다... 보여주는건가요? 자세히좀 알려주세요.
-
단순랩퍼
하~ 다음부터는 그렇게 할께요 ^^
-
비치나
글머리 잇으면 보기두 편해욤 ^^;
-
구슬
글을 올리실때 말머리를 달아주시면 운영자가 관리하기 편합니다. ^^
-
연꽃
실행에는 전혀 도움이 되지 않는게 맞습니다. ^_^
하지만 언젠가 프로그램의 덩치가 커지면 name 와 lowerBound를 참조해야 하는 경우가 있습니다. 그런 경우.. 필드들이 public 로 설정 되어 있으면.. 아무 곳에서나 값을 설정 할 수 있기 때문에.. 그런 부분을 막기 위해서. private로 선언해 둔것이지요.. 접근해서 쓰고 싶을때에는 저렇게 메소드를 사용하여 접근해서 사용하는것을 권장하지요.
어떤 책에서는 왜 필드들을 publi -
화이트
아..실행에는 전혀 도움이 안되는거 같아서요.
아직 mutator와 accessor를 이해를 못했거든요.
위 두가지에 대해서 설명좀 해주실 수 있으신가요? -
BabySue
*** 제가 보기에는 set___ , get___ 이런 메소드가 필요 없다고 생각하는데 ***
어떠한 점에서 이렇게 생각하시는지 설명 해 주세요~ ^_^ -
난초
***private 변수에 접근해서 쓸려고 하면 public 으로 된 set.. get... 등이 필요하지요..그래서 만들어 둔거 아닌가 합니다. ***
위의 말씀은 또 어떤 말씀이신지.......^^;;;;;;
자세히좀 설명해주세요! -
모아
이 소스에서만 본다면.. 전혀 필요 없습니다.
하지만 private 변수에 접근해서 쓸려고 하면 public 으로 된 set.. get... 등이 필요하지요..그래서 만들어 둔거 아닌가 합니다.
jdk 5.0 쓰시나요? 재미있는 문법이 눈에 띄는군요 ^_^
for (Grade letterGrade : grades)