2013-10-17 2 views
2

접근 자 메서드을 이해하지 못하고 setAge, getAge 및 getName을 만들어야합니다.클래스 및 접근 자 메서드 Java

세 가지 접근 방법, setAge, getAgegetName을 추가

는 질문이다. 이 메소드는 해당 인스턴스 변수의 값을 설정하고 가져와야합니다.

public class Player { 

    protected int age; 
    protected String name; 

    public Player(String namArg) { 
     namArg = name; 
     age = 15; 
    } 
} 
+0

getter 및 setter 메서드를 만드는 방법을 묻는 중입니까? – Andrew

+0

먼저 자신을 직접 풀어보고 장애물을 맞았을 때 다시 와야합니다. 해본 적이 있다면 좀 더 구체적으로 물어 보면 우리는 과거를 잊어 버릴 수 없을 것입니다. – Shaded

+0

@Andrew 예. 예를 들어 구문을 작성하는 방법을 원합니다. –

답변

2

접근 자 메서드는 개인 필드 나 보호 된 필드의 값을 반환하는 데 사용됩니다. 메서드 이름의 시작 부분에 "get"이라는 접두어가 붙는 명명 체계가 있습니다. 예를 들어의 이름에 대한 접근 방법을 추가 할 수 있습니다 :

class Player{ 
    protected name 

//Accessor for name 
    public String getName() 
    { 
    return this.name; 
    } 
} 

당신과 같은 객체를 통해 보호 된 이름의 값에 액세스 할 수 있습니다

변경자 (mutator) 메소드는 private 필드의 값을 설정하는 데 사용됩니다
Player ball = new Player() 
System.out.println(ball.getName()) 

. 메서드 이름의 시작 부분에 "set"이라는 접두어가 붙는 명명 체계가 있습니다.

//Mutator for name 
    public void setName(String name) 
    { 
    this.name= name; 
    } 

지금 우리가 사용하는 선수의 이름을 설정할 수 있습니다 : 예를 들어, 이름 뮤 테이터 필드를 추가 할 수 ball.setName ('다윗');

0

setAbcd 메소드는 보호 된 데이터 필드를 설정하는 데 사용하는 뮤 테이터 메소드입니다. getAbcd 메서드는 일반적으로 private이며 클래스 외부에서 사용할 수 없으므로 데이터 필드의 값을 반환하는 데 사용하는 접근 자 메서드입니다.

예컨대

public void getvariableName() { 
    return variableName; 
    } 
0
public class Player { 

protected int age; 
protected String name; 

// 뮤 테이터 방법
공공 무효 setAge (문자열 A) { 연령 = A; }

public void setName(String n) { 
    name = n; 
    } 

// 접근 방법
공공 문자열 getAge() { 반환 시대; }

public string getName() { 
    return name; 
    } 


} 
+0

getName과 getAge가 반환했지만 나는 setter가 무엇을했는지 전혀 알지 못했습니다. 그게 내가 제대로하고 있는지 묻고 왜 여기 물어 봤는지. 도움을 주셔서 감사합니다 –

+0

setters는 필드의 값을 설정합니다. 클래스 내부에 private 변수를 정의하여 호출자가 setter 메서드를 호출하도록하는 것이 아이디어입니다. 나이와 같은 조건을 추가하고 싶다면 15 세 이상이어야합니다. 그래서 당신은 나이 세터 방법 안에 그 조건을 넣을 것입니다. –

1

인스턴스 변수는 연령과 이름입니다. setter 메소드는 무효이며 전달 된 인수를 해당 변수로 설정합니다. getter는 무효가 아니며 적절한 변수를 반환합니다.

질문을 다시 올리십시오.

+0

도움을 주셔서 감사합니다! :) –

0

에 대한 답변 :

왜 우리는 접근 방법이 필요합니까 : 여기 접근 방법 을 이해하지 못한다는 것입니까? 캡슐화 !!! 캡슐화가 필요한 이유는 무엇입니까?

1) 당신 (프로그래머 # 1)이 setAge, getAge 및 getName 메소드를 작성한다고 가정 해보십시오. 저는 프로그래머 # 2입니다. 나는 아마 액세스 연령과 이름을 직접 질수 없습니다. 그래서 나는 당신의 공용 접근 메소드 setAge, getAge 및 getName을 사용합니다. 이것은 코드와 변수를 엉망으로 만든다. 모든 코더를 믿을 수 없습니다.

2) setAge 방법에서 유 VALIDATION 제공 할 수

임의 악 프로그래머 : 나중에 나는 234와 같은 나이 때문에 UR 프로그램이 거 호감 하하하

결과를 만들고 싶어 유 : 아니 나는 거으로 검증 조건을 추가 내 setAge 메서드를 사용하면 나이를 0에서 90까지 동일하게 만들 수 있습니다. (원하는 것은 무엇이든지)

이것이 접근 자 메서드를 사용하는 가장 일반적인 이유입니다.

코드 설명 :

setAge 설명 (이것은 단지 주요 아이디어를 얻을 수 있습니다)

public void setAge(int ageInput) { 
if ((ageInput > 10) && (ageInput <90)) 
{age = a;}} 

랜덤 악 프로그래머가 공개 방법에 ageInput를 보냅니다. 우선, 연령 값이 올바른지 확인합니다. 그렇다면 나이 인스턴스 (개체) 변수가 ageInput이됩니다. 그렇지 않다면 아무 일도 일어나지 않을 것이며 변수가 엉망이되지 않을 것입니다.

GetAge : 현재 연령 값을 반환합니다. 멋진 일은 없어.

질문이 있으시면 알려주세요; 행운을 빈다.

관련 문제