2016년 8월 2일 화요일

Java 1-6 클래스 class, 접근제어자

1. 가시성

접근제어자
같은 클래스
같은 패키지
상속관계,
다른 패키지
상속관계 아님,
다른 패키지
public
Y
Y
Y
Y
protected
Y
Y
Y
N
default
Y
Y
N
N
private
Y
N
N
N

// 클래스 절차
// 1. 구현과정

// 권한표기-public class 클래스이름-Aircon { }
public class Aircon { //에어컨 클래스

// 인스턴스 변수 선언 공간
int wind = 0;   //바람세기
int value = 25; //온도
boolean power = false; //전원

int turnType = 0; // 회전상태 - 0 : 회전안함, 1 : 좌우회전, 2 : 상하회전, 3 : 좌우상하회전
// 인스턴스 메서드
// 리턴타입-void,int,... 함수명(매개변수 선언1, 매개변수 선언2, ...) { }
// 자바는 주석이 하나 더있다. 색깔도 다름 "/**"치면 된다.
/**
* setTurn - 에어컨의 회전 설정
* @return int - 회전상태
* @param int type - 0 : 좌우회전 변경, 1 : 상하회전 변경
*/
int setTurn(int type) {
// 기능 구현전 예외상황처리 파트
// 전원이 꺼져있다면 회전 아닌 상태로 리턴
if (!power) return 0; //if (power == false) return 0; 와 같은 표현..

// 기능성 코드
if (type == 0) {
// 구현해야 하는 상황 -> 아래 방법1,2,3으로 구현 가능
// 0 -> 1
// 1 -> 0
// 2 -> 3
// 3 -> 2
//방법1 if (turnType == 0) { turnType = 1;}
// else if (turnType == 1) { turnType = 0;}
// else if (turnType == 2) { turnType = 3;}
// else if (turnType == 3) { turnType = 2;}
//방법2 if (turnType % 2 == 0) { turnType++;}
// else { turnType--; }
/*방법3*/ turnType += turnType%2==0 ? 1 : -1;
} else if (type == 1) {
// 구현해야 하는 상황
// 0 -> 2 -- +2
// 1 -> 3 -- +2
// 2 -> 0 -- -2
// 3 -> 1 -- -2
turnType += turnType<2 ? 2 : -2;
}
//리턴타입이 존재하는 경우(void가 아닌 경우) return 키워드를 통해 전달할 값을 명시해야 한다.
return turnType;
}

}


---------------------------------------------------------------------------------------------------

public class ClassEx {

public static void main(String[] args) {

// 클래스를 이용한 객체 생성 절차
Aircon myAircon = new Aircon();
// 인스턴스 변수를 외부에서 직접적으로 수정하는 상황
myAircon.power = true;
// 인스턴스 메서드(함수) 사용중. 리턴도 받고 있음
int type = myAircon.setTurn(1);
// 리턴 받은거 출력해봄
System.out.println("회전상태: " + type);
RemoteCon airRemote = new RemoteCon();
airRemote.aircon = myAircon;
}

}
------------------------------------------------------------------------------------------------

public class RemoteCon {
Aircon aircon;
float battery; //배터리
int setTemp(int updown){
int temp = aircon.value;
if (updown == 1) { aircon.value++;}
else if (updown ==0) { aircon.value--;}
showLcd();
return aircon.value;
}
boolean setPower() {
if (aircon.power == false) { aircon.power=true;}
else if (aircon.power == true) { aircon.power=false;}
return aircon.power;
}
void showLcd() {
System.out.println(aircon.value);
System.out.println();
}

}

댓글 없음:

댓글 쓰기