4월 26일 내용정리
getter 와 setter가 아직 정확하게 정리가 안됐는데,
아래 문제 풀고 좀 정리됨
1.private 은 클래스안에서만 접근이 가능하고,
다른 클래스에서 접근할려면,getter 와 setter로 접근해야 한다.
2.setter로 필드를 초기화하고, getter로 접근이 가능하다.
3.getter 와 setter는 메서드로 상속이 가능하다.
4.getter 와 setter가 있다면 생성자가 필요없다.
왜냐면 setter로 초기화시킬 수 있기 때문이다.
부모클래스
package study_0426_05;
public class Point {
//필드선언
private int x,y;
//생성자
//getter 와 setter가 있어서 초기화한 생성자가 필요없다.
//getter 와 setter
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
//메서드
void tostring() { //toString() 메서드가 따로 있어서 새로 만듬
System.out.println("x 좌표:"+getX()+" ,y 좌표:"+getY());
}
}
상속 받은 자식클래스
package study_0426_05;
public class MovablePoint extends Point{
//필드 선언
private int xSpeed,ySpeed;
//생성자
//getter 와 setter가 있어서 초기화한 생성자가 필요없다.
//getter 와 setter
public int getxSpeed() {
return xSpeed;
}
public void setxSpeed(int xSpeed) {
this.xSpeed = xSpeed;
}
public int getySpeed() {
return ySpeed;
}
public void setySpeed(int ySpeed) {
this.ySpeed = ySpeed;
}
//메서드
void tostring() {
System.out.println("x 좌표:"+getX()+" ,y 좌표:"+getY()+" x이동속도:"+xSpeed+" , y이동속도:"+ySpeed );
}
}
실행클래스
package study_0426_05;
public class main {
public static void main(String[] args) {
//자식객체 생성
MovablePoint myMovablePoint =new MovablePoint();
//setter로 필드 초기화
myMovablePoint.setX(10);
myMovablePoint.setY(20);
myMovablePoint.setxSpeed(30);
myMovablePoint.setySpeed(40);
//setter로 초기화한 메서드 호출
myMovablePoint.tostring();
}
}