728x90
클래스를 선언 할 때 필드는 일반적으로 private 접근 제한을 한다.
읽기 전용 필드가 있을 수 있다. (Getter의 필요성)
외부에서 엉뚱한 값으로 변경할 수 없도록 한다. (Setter의 필요성)
Getter
priative 필드의 값을 리턴하는 역할을 한다.
-필요한 경우 필드의 값을 가공해서 리턴한다.
getFieldName() 또는 isFieldName() 메소드를 말한다.
-필드 타입이 boolean 일 경우 isFieldName() 이다.
class Car {
private double speed;
public double getSpeed() {
//타입은동일하게 //필드의 speed에서 get+ s를대문자로변경
return;}}
//private double speed;에 제공
//필요한 경우 필드의 값을 가공해서 리턴
double getSpeed() {
double km = speed*1.6;
retrun km;
}
//필드의 타입이 boolean타입일경우
class Car {
private boolean stop;
public boolean isStop() {
//boolean일 경우 is로 시작
return stop;}};
Setter
외부에서 주어진 값을 필드값으로 수정한다.
-필요한 경우 외부의 값을 유효성을 검사한다. (올바른값인지확인)
setFieldName(타입변수)메소드를 말한다.
-매개변수 타입은 필드의 타입과 동일하다.
//setter 올바른 값만 받는다
class Car {
private double speed;
public void setSpeed(double speed){
//set으로시작 필드이름앞대문자로
this.speed = speed;
//필드의 값으로 외부에서 받은것을 대입
}
void setSpeed(double speed){
if(speed < 0){
this.speed = 0;
return;
} else {
this.speed = speed;}
}
private 의 데이터는 바꿀수없으니
getter 와 setter를 사용해 바꾸는 것.
getter 와 setter의 차이점은 setter은 매개변수를 받는다
getter은 가져오는 것 = 값을 가져와서 새로운 것을 만든다 / setter은 수정하는 것 = 값을 수정해서 사용
메소드호출
싱글톤
하나의 애플리케이션 내에서 단하나만 생성되는 객체
package examsingleton;
public class Singleton {
//외부에서 new연산자로 생성자를 호출할수없도록막기
//정적필드
private static Singleton singleton = new Singleton();
//생성자
private Singleton() {}
//외부에서 호출할수있는 정적메소드 getInstance()선언
static Singleton getInstance() {
return singleton;
}
}
싱글톤은 완전히 폐쇄적이면서, getInstance라는 통로밖에없다.
package examsingleton;
public class SingletonExam {
public static void main(String[] args){
//Singleton obj1 = new Singleton(); 컴파일 에러
//Singleton obj2 = new Singleton(); 컴파일 에러
Singleton obj1 = Singleton.getInstance();
Singleton obj2 = Singleton.getInstance();
if(obj1 == obj2) {
System.out.println("Singleton ==");
} else {
System.out.println("Singletone =!");
}
}
}
private static 을 같이 붙여서 사용한다.
getInstance() 로 정적 필드에서 참조하고 있는 자신의 객체 리턴
싱글톤은 객체 하나 만들어서 여기저기 쓰인다.
이미지 출처 : 이것이자바다
728x90
'STUDY > JAVA' 카테고리의 다른 글
[JAVA] 슬라임 게임 만들기 (0) | 2022.06.21 |
---|---|
[JAVA] 22-06-28 for문 이용해서 별 찍기 ☑ (0) | 2022.06.21 |
[JAVA] 22-06-20 자바 생성자 / this() ☑ (0) | 2022.06.20 |
[JAVA] 22-06-17 Package ☑ (0) | 2022.06.17 |
[JAVA] 22-06-17 클래스 (CLASS) ☑ (0) | 2022.06.17 |