레이블이 우선순위인 게시물을 표시합니다. 모든 게시물 표시
레이블이 우선순위인 게시물을 표시합니다. 모든 게시물 표시

2016년 10월 2일 일요일

비주얼베이직(visual basic) 연산자 우선순위


우선순위 (1이 제일 높고 14가 제일 낮음)
  1. ^
  2. * /(소숫점 가지는 나눗셈)
  3. \(소숫점 버리기 나눗셈)
  4. Mod
  5. +, -
  6. &
  7. <, <=, >, >=, =, <>
  8. Not
  9. And
  10. Or
  11. Xor (다르면 참, 같으면 거짓)
  12. AndAlso (같으면 참, 다르면 거짓)
  13. OrElse
  14. =(대입)

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();
}

}

2016년 7월 17일 일요일

Java 1-2 연산자, 변수타입, 자동형변환(promotion), 연산자 우선순위

1. 주석
// 주석
/* */ 주석
@ 어노테이션 주석(사람, 시스템에 알려주는 주석)

2. static은 객체 생성없이 사용할 수 있다.
3. 자바는 대소문자 구별한다.
4. 기본 데이터 타입 종류
 > 모두 default는 0이다.(그래서 boolean의 default는 false)
타입.크기(byte)
byte.1
short.2
int.4
long.8
float.4
double.8
char.2
boolean.1
//레퍼런스타입.4(32,64bit 상관없이 4byte).default는 NULL.객체의 주소를 저장하는 변수

5. 계산식에 여러가지 데이터 타입이 섞여있을 경우, 같은 타입으로 맞추어 계산한다.
이를 프로모션이라고 한다. 맞출때는 큰 데이터 타입으로 맞춘다.
(예 : int + float = float )

6. 연산자의 우선순위.연산순서

() 왼쪽에서 오른쪽
++, --, 부호(+,-), ~, !, (cast)  오른쪽에서 왼쪽
*, /, %  왼쪽에서 오른쪽
+, -  왼쪽에서 오른쪽
<<, >>, >>>  왼쪽에서 오른쪽
<, >, <=, >=  왼쪽에서 오른쪽
==, != 왼쪽에서 오른쪽
& 왼쪽에서 오른쪽
^ 왼쪽에서 오른쪽
! 왼쪽에서 오른쪽
&& 왼쪽에서 오른쪽
!! 왼쪽에서 오른쪽
?: 왼쪽에서 오른쪽
=,+=,-=,*=,/=,%= 오른쪽에서 왼쪽

99. 실습
public class Operator {

public static void main(String[] args) {

double result = (2 + 4) * 2;
System.out.println(result);

int intA = 12;
double doubleA = 12;
float floatA = 12;
// >>는 비트를 오른쪽으로 밀어낸다.
// 1100을 오른쪽으로 2칸 밀어내어 0011, 즉 3이 된다.
intA = intA >> 2;
// 실수형은 >> 가 안된다. 에러발생
// doubleA = doubleA>>2;
// floatA = floatA >> 2;
System.out.println(intA+ " " + doubleA + " " + floatA);

System.out.println(intA);
intA++;
System.out.println(intA);

System.out.println(doubleA);
doubleA++;
System.out.println(doubleA);

int a = 6 , b = 2;
boolean result2 = a < b || b == 2;
result2 = !(a < b);
System.out.println("result2: " + result2);

// 삼항연산자 -> 조건 ? 참의값 : 거짓의값
String result3 = a==b ? "같다." : "다르다." ;
System.out.println("a와 b가 " + result3);

// 각종 수학 계산기능이 담겨있는 묶음 기능(클래스)
// Math.random() 은 무작위로 더블값을 준다.
double ra = Math.random();
System.out.println(ra);
// int dice = Math.random() * 범위 + 시작값;
// 값이나 특정 계산식의 앞에 (자료타입) 형태를 붙여주면 강제로 타입이 바뀐다.
int dice = (int)(ra * 6 + 1);
// 주사위의 값과 그값의 2배값을 출력하는 상황
System.out.println("dice: " + dice +
", dice*2: " + dice*2);

}
}