허접한 질문하나요...
볼수록중독
Ex04.JAVA
import java.io.*;
public class Ex04 {
private String name;
private int length;
private int weight;
private BufferedReader in;
public Ex04(){
in = new BufferedReader(new InputStreamReader(System.in));
name = ;
length = 0;
weight = 0;
}
public void setName() throws IOException{
System.out.print(이름 :);
name = in.readLine();
}
public void setLength() throws IOException{
System.out.print(키 :);
length = Integer.parseInt(in.readLine());
}
public void setWeight() throws IOException{
System.out.print(몸무게 :);
weight = Integer.parseInt(in.readLine());
}
public void setName(String name){
this.name = name;
}
public void setLength(int length){
this.length = length;
}
public void setWeight(int weight){
this.weight = weight;
}
public void display(){
System.out.println();
System.out.println(이름 : + name);
System.out.println(키 : + length);
System.out.println(몸무게 : + weight);
System.out.println();
}
}
Ex05.java
import java.io.*;
public class Ex05 {
public static void main(String ar[])throws IOException{
Ex04 s = new Ex04();
s.setName();
s.setLength();
s.setWeight();
s.display();
}
}이렇게 해도 문제는 없던데 책에선 그런식으로 안하고
public getName(){
return name;
}
이런식으로 해주던데 이런식으로 해주는 이유가 뭔가요?
-
개미
아.. 수다님 감사합니다.. 게터랑 세터를 저런식으로 사용하면 다른 사람이 모르게 사용 할 수 있군요..
-
새콤이
아 좋은말씀 감사합니다.
-
딥와인
지금은 알아보기 좋으라구 한거지만 name를 보호하기 위해 getBabo(){ return name;} 이런식으로 하면
다른사람이 name이란 변수가 있는지 알수가 없게 되죠.. 보안부분도 사용하게 되는거죠.. -
들꿈
getter setter메소드는 매서드간의 유연성 및 변수의 보호를 위해 만듭니다..
객체지향적으로 하기 위한부분이고 자바와 c의 차이점이 이런 메서드에 의해서 윤곽이
두두러집니다.
자 인제 설명이 들어가면 맨 위에 private로 name변수를 선언했으므로 같은 클래서 내에서만
사용 가능하고 다른 클래스에서는 name에 직접적으로 name에 접근이 불가능합니다..
근데 getName()를 함으로서 이부분으로 name의 변수값을 읽을수 있고
set -
엄마몬
public String getName(){
return name;
}
이게 저기엔 없는데요 책에선 선언해주고 있거든요...
그래서 궂이 없어도 실행은되는데 어디에 쓰는지 알고싶어서요. -
슬현
질문을 이해할 수가^^;;;;
설마 getXXX/setXXX관련 질문이라고 생각한다면..
getName()메소드를 사용하는 곳도 없는데 왜 선언해주는지 인건가....--;;
암튼.. 질문 이해 불능..