728x90
수업내용
1교시 (09:30-10:20)
- 어제 배운 내용 복습
배열 : 데이터를 순차적으로 나열하는 것
자바 배열 : 같은 데이터타입(자료형) 순차적으로 나열한 것이다.
배열의 개수 : n
배열의 길이 : n
배열의 인덱스 : n - 1 (0부터 시작)
자료형 참조변수 [] = new 자료형[n];
기초자료형
참조자료형
String <== rt.jar에 있는 모든 클래스
사용자정의 클래스
참조변수: 기초자료형도 배열로 사용하면 객체가 된다.
int i;
int ii[];
new 인스턴스 과정에서 배열의 상자가 기본값으로 초기화된다.
byte short int long = 0
char = ' ' '\u0000'
float double = 0.0
String, 사용자정의클래스, rt.jar : 객체 = null;
1차원 배열
자료형 참조변수[] = new 자료형[n];
자료형 참조변수[] = new 자료형[]{};
자료형 참조변수[] = {};
자료형 참조변수[];
참조변수 = new 자료형[]{};
배열의 길이를 구하는 속성의 이름 : length 필드
논리연산자 boolean 1byte
false true
Flow Control * 연산자
if switch
for while do~while
if문은 true참일 때만 수행된다.
else문은 if문장의 true가 아닌 false 경우에만 수행된다.
===========================================================================
명령행 인수: main 함수의 파라미터인 스트링 배열이다.
main(String args[]) {}
java 패키지명.클래스이름 데이터1 데이터2
--------------------------------------------------------
String args[] = new String[]{"데이터1", "데이터2"};
String args[] = {"데이터1", "데이터2"};
String s0 = args[0];
String s1 = args[1];
java 패키지명.클래스이름 데이터1 데이터2 데이터3
--------------------------------------------------------
String args[] = new String[]{"데이터1", "데이터2", "데이터3"};
String args[] = {"데이터1", "데이터2", "데이터3"};
String s0 = args[0];
String s1 = args[1];
String s2 = args[2];
java 패키지명.클래스이름 테 이 터1 테이터2 데이터3
--------------------------------------------------------
String args[] = new String[]{"데", "이", "터1", "데이터2", "데이터3"};
String args[] = {"데", "이", "터1", "데이터2", "데이터3"};
String s0 = args[0];
String s1 = args[1];
String s2 = args[2];
String s3 = args[3];
String s4 = args[4];
java 패키지명.클래스이름 "데 이 터1" 테이터2 데이터3
----------------------------------------
String args[] = new String[]{"데 이 터1", "데이터2", "데이터3"};
String args[] = {"데 이 터1", "데이터2", "데이터3"};
String s0 = args[0];
String s1 = args[1];
String s2 = args[2];
===========================================================================
2교시 (10:30-11:20)
- Scanner 사용하여 입력값 받기
package a.b.c.ch1;
import java.util.Scanner;
public class Exam_FlowControl_5 {
public int add(int x, int y) {
return x + y;
} // end of add()
public static void main(String args[]) {
System.out.println("연산할 수를 잘 입력하시오 >>> : ");
Scanner sc = new Scanner(System.in);
// public int nextInt()
int x = sc.nextInt();
System.out.println("x >>> : " + x);
int y = sc.nextInt();
System.out.println("y >>> : " + y);
Exam_FlowControl_5 ef5 = new Exam_FlowControl_5();
int addSum = ef5.add(x, y);
System.out.println("addSum >>> : " + addSum);
} // end of main()
} // end of Exam_FlowControl_5 class
/*
C:\00.KOSMO108\10.JExam\ch1>java a.b.c.ch1.Exam_FlowControl_5
연산할 수를 잘 입력하시오 >>> :
1
x >>> : 1
2
y >>> : 2
addSum >>> : 3
*/
3교시 (11:30-12:20)
- API에서 클래스 찾아서 import해서 사용하기
package a.b.c.ch1;
/*
1. import 규칙
java.lang.* 패키지에 있는 클래스를 제외한 모든 패키지에서는 꼭 import 키워드를 사용해야 한다.
2. import할 때는 패키지명.클래스이름으로 사용해야 한다. <-- 이유: 소스 코드 가독성 때문에
3. 빌트인 클래스의 참조변수에는 주소값을 보여주는 경우도 있고 아닌 경우도 있다.
4. 클래스를 메모리에 올리는 동작은 new 키워드 말고도 다른 것들이 여러 가지가 있다.(앞으로 공부할 예정)
*/
import java.util.Scanner;
import java.util.Date;
import java.util.Calendar;
public class Exam_FlowControl_5 {
public int add(int x, int y) {
return x + y;
} // end of add()
public static void main(String args[]) {
Date d = new Date();
// public static int identityHashCode(object x)
System.out.println("System.identityHashCode(d) >>> : " + System.identityHashCode(d));
System.out.println("d >>> : " + d + "\n");
Calendar c = Calendar.getInstance();
System.out.println("System.identityHashCode(c) >>> : " + System.identityHashCode(d));
System.out.println("c >>> : " + c + "\n");
System.out.println("연산할 수를 잘 입력하시오 >>> : ");
// public static final InputStream in
Scanner sc = new Scanner(System.in);
// public int nextInt()
int x = sc.nextInt();
// public static final PrintStream out
System.out.println("x >>> : " + x);
int y = sc.nextInt();
System.out.println("y >>> : " + y);
Exam_FlowControl_5 ef5 = new Exam_FlowControl_5();
int addSum = ef5.add(x, y);
System.out.println("addSum >>> : " + addSum);
} // end of main()
} // end of Exam_FlowControl_5 class
/*
C:\00.KOSMO108\10.JExam\ch1>java a.b.c.ch1.Exam_FlowControl_5
연산할 수를 잘 입력하시오 >>> :
1
x >>> : 1
2
y >>> : 2
addSum >>> : 3
*/
- 문자 숫자
package a.b.c.ch1;
public class Exam_numString {
public static void main(String args[]) {
// 문자 숫자: 숫자를 문자열로 표현한 것 : 숫자를 더블 쿼테이션으로 묶은 것
String sX = "1";
String sY = "2";
System.out.println(sX + sY);
int iX = Integer.parseInt(sX);
int iY = Integer.parseInt(sY);
System.out.println(iX + iY);
System.out.println("문자열 더하기하면 숫자도 문자열이 된다. >>> : ");
System.out.println("" + (iX + iY));
System.out.println("" + iX + iY);
} // end of main()
} // end of Exam_numString class
4교시 (12:30-13:20)
- 문자 숫자를 숫자로 변환 / 숫자를 문자로 변환
package a.b.c.ch1;
public class Exam_numString {
public static void main(String args[]) {
// 문자 숫자: 숫자를 문자열로 표현한 것 : 숫자를 더블 쿼테이션으로 묶은 것
String sX = "1";
String sY = "2";
System.out.println(sX + sY);
int iX = Integer.parseInt(sX);
int iY = Integer.parseInt(sY);
System.out.println(iX + iY);
System.out.println("문자열 더하기하면 숫자도 문자열이 된다. >>> : ");
System.out.println("" + (iX + iY));
System.out.println("" + iX + iY);
// 문자 숫자를 숫자로 변환 : parse
String sI = "1";
String sL = "11";
String sF = "1.123";
String sD = "1.1";
// public static int parseInt(String s)
int iVal = Integer.parseInt(sI);
// public static long parseLong(Strings)
long lVal = Long.parseLong(sL);
// public static float parseFloat(String s)
float fVal = Float.parseFloat(sF);
// public static double parseDouble(String s)
double dVal = Double.parseDouble(sD);
System.out.println("iVal >>> : " + iVal);
System.out.println("lVal >>> : " + lVal);
System.out.println("fVal >>> : " + fVal);
System.out.println("dVal >>> : " + dVal);
// 숫자를 문자로 변환
int nInt = 100;
long nLong = 101L;
float nFloat = 1.01F;
double nDouble = 1.001D;
// public static String toString(int i)
String sInt = Integer.toString(nInt);
// public static String toString(long i)
String sLong = Long.toString(nLong);
// public static String toString(float f)
String sFloat = Float.toString(nFloat);
// public static String toString(double d)
String sDouble = Double.toString(nDouble);
System.out.println("sInt >>> : " + sInt);
System.out.println("sLong >>> : " + sLong);
System.out.println("sFloat >>> : " + sFloat);
System.out.println("sDouble >>> : " + sDouble);
// public static Integer valueOf(String s)
String s0 = String.valueOf(nInt);
// public static Long valueOf(String s)
String s1 = String.valueOf(nLong);
// public static Float valueOf(String s)
String s2 = String.valueOf(nFloat);
// public static Double valueOf(String s)
String s3 = String.valueOf(nDouble);
System.out.println("s0 >>> : " + s0);
System.out.println("s1 >>> : " + s1);
System.out.println("s2 >>> : " + s2);
System.out.println("s3 >>> : " + s3);
String ss = nInt + ""; // 사용을 지양하자
System.out.println("ss >>> : " + ss);
} // end of main()
} // end of Exam_numString class
5교시 (14:30-15:20)
- 증감 연산자
package a.b.c.ch1;
public class Exam_Operator {
public static void main(String args[]) {
/*
증감 연산자 increment and decrement operators
++x x를 먼저 1 증가시킨 후 그 값을 사용
--x x를 먼저 1 감소시킨 후 그 값을 사용
x++ x값을 먼저 사용한 후 1 증가
x-- x값을 먼저 사용한 후 1 감소
*/
int aX = 10;
System.out.println(aX);
aX++; // aX = aX + 1 --> 11 = 10 + 1
System.out.println(aX);
++aX; // 11
System.out.println(aX); // 12
int aXX = 100;
System.out.println(aXX); // 100
int aa = aXX++; // int aa = aXX = aXX + 1 // 100
System.out.println(aa); // 101
aa = ++aXX;
System.out.println(aa); // 102
} // end of main()
} // end of Exam_Operator class
- [교재 81p] 조건연산자
- 지역변수는 항상 디폴트 값으로 초기화한다.
package a.b.c.ch1; public class Exam_Operator { public void inc_dec_Oper() { /* 증감 연산자 increment and decrement operators ++x x를 먼저 1 증가시킨 후 그 값을 사용 --x x를 먼저 1 감소시킨 후 그 값을 사용 x++ x값을 먼저 사용한 후 1 증가 x-- x값을 먼저 사용한 후 1 감소 */ int aX = 10; System.out.println(aX); aX++; // aX = aX + 1 --> 11 = 10 + 1 System.out.println(aX); ++aX; // 11 System.out.println(aX); // 12 int aXX = 100; System.out.println(aXX); // 100 int aa = aXX++; // int aa = aXX = aXX + 1 // 100 System.out.println(aa); // 101 aa = ++aXX; System.out.println(aa); // 102 } public static void main(String args[]) { Exam_Operator eo = new Exam_Operator(); System.out.println("eo >>> : " + eo); // Exam_Operator 클래스의 eo 참조변수로 inc_dec_Oper() 함수를 호출한다.(invoke) eo.inc_dec_Oper(); // 삼항 연산자 ternary operator // 조건식 ? 결과1 : 결과2; // 조건식의 결과가 TRUE이면 결과1, FALSE이면 결과2 int fatherAge = 45; int motherAge = 47; // char ch = ' '; char 자료형 빈 문자로 초기화하기 char ch = '\\u0000'; // char 자료형 유니코드로 초기화하기 boolean bool = fatherAge > motherAge; System.out.println("bool >>> : " + bool); ch = (fatherAge > motherAge) ? 'T' : 'F'; System.out.println("ch >>> : " + ch); if (fatherAge > motherAge) { System.out.print("true >>> : "); } else { System.out.print("false >>> : "); } // 하기 로직은 사용을 지양한다. if (fatherAge > motherAge) System.out.print("ture >>> : "); // System.out.print("true >>> : <<<<<<<<<>>>>>>>>>); else System.out.print("false >>> : 1"); System.out.print("false >>> : <<<<<<<<<>>>>>>>>> 2"); System.out.print("false >>> : <<<<<<<<<>>>>>>>>> 3"); } // end of main() } // end of Exam_Operator class
6교시 (15:30-16:20)
- Short Circuit 현상
package a.b.c.ch1;
public class Exam_Operator {
public void inc_dec_Oper() {
/*
증감 연산자 increment and decrement operators
++x x를 먼저 1 증가시킨 후 그 값을 사용
--x x를 먼저 1 감소시킨 후 그 값을 사용
x++ x값을 먼저 사용한 후 1 증가
x-- x값을 먼저 사용한 후 1 감소
*/
int aX = 10;
System.out.println(aX);
aX++; // aX = aX + 1 --> 11 = 10 + 1
System.out.println(aX);
++aX; // 11
System.out.println(aX); // 12
int aXX = 100;
System.out.println(aXX); // 100
int aa = aXX++; // int aa = aXX = aXX + 1 // 100
System.out.println(aa); // 101
aa = ++aXX;
System.out.println(aa); // 102
}
// 삼항 연산자
public void ternary_Oper() {
// 삼항 연산자 ternary operator
// 조건식 ? 결과1 : 결과2;
// 조건식의 결과가 TRUE이면 결과1, FALSE이면 결과2
int fatherAge = 45;
int motherAge = 47;
// char ch = ' '; char 자료형 빈 문자로 초기화하기
char ch = '\u0000'; // char 자료형 유니코드로 초기화하기
boolean bool = fatherAge > motherAge;
System.out.println("bool >>> : " + bool);
ch = (fatherAge > motherAge) ? 'T' : 'F';
System.out.println("ch >>> : " + ch);
if (fatherAge > motherAge) {
System.out.print("true >>> : ");
} else {
System.out.print("false >>> : ");
}
// 하기 로직은 사용을 지양한다.
if (fatherAge > motherAge)
System.out.print("ture >>> : ");
// System.out.print("true >>> : <<<<<<<<<>>>>>>>>>);
else
System.out.print("false >>> : 1");
System.out.print("false >>> : <<<<<<<<<>>>>>>>>> 2");
System.out.print("false >>> : <<<<<<<<<>>>>>>>>> 3");
}
public static void main(String args[]) {
Exam_Operator eo = new Exam_Operator();
System.out.println("eo >>> : " + eo);
// Exam_Operator 클래스의 eo 참조변수로 inc_dec_Oper() 함수를 호출한다.(invoke)
eo.inc_dec_Oper();
// Exam_Operator 클래스의 eo 참조변수로 ternary_Oper() 함수를 호출한다.(invoke)
eo.ternary_Oper();
// Short Circuit 현상
// 단락 회로 평가 Short Circuit Evaluation : SCE
// 논리 곱(&&) 연산과 논리 합(||) 연산을 할 때 두 항을 모두 살행하지 않더라도
// 결과 값을 알 수 있는 경우에 나머지 항은 실행되지 않는다.
/*
&&연산 ||연산
T AND T = T T OR T = T
T AND F = F T OR F = T
F AND T = F F OR T = T
F AND F = F F OR F = F
*/
int num1 = 10;
int i = 2;
boolean b0 = (num1 = num1 + 10) < 10; // false
boolean b1 = (i = i + 2) < 10; // true
boolean b2 = b0 && b1; // false
System.out.println("b0 >>> : " + b0);
System.out.println("b1 >>> : " + b1);
System.out.println("b2 >>> : " + b2);
boolean value = ((num1 = num1 + 10) < 10) && ((i = i + 2) < 10); // F && T = F
System.out.println("value >>> : " + value);
System.out.println("num1 >>> : " + num1);
System.out.println("i >>> : " + i);
boolean b3 = (num1 = num1 + 10) > 10; // true
boolean b4 = (i = i + 2) < 10; // true
boolean b5 = b3 || b4; //true
System.out.println("b3 >>> : " + b3);
System.out.println("b4 >>> : " + b4);
System.out.println("b5 >>> : " + b5);
boolean value1 = ((num1 = num1 + 10) > 10 || ((i = i + 2) < 10)); // T || T = T
System.out.println("value1 >>> : " + value1);
System.out.println("num1 >>> : " + num1);
System.out.println("i >>> : " + i);
} // end of main()
} // end of Exam_Operator class
7교시 (16:30-17:20)
- 관계 연산
package a.b.c.ch1;
public class Exam_Operator {
// 증감 연산자
public void inc_dec_Oper() {
/*
증감 연산자 increment and decrement operators
++x x를 먼저 1 증가시킨 후 그 값을 사용
--x x를 먼저 1 감소시킨 후 그 값을 사용
x++ x값을 먼저 사용한 후 1 증가
x-- x값을 먼저 사용한 후 1 감소
*/
int aX = 10;
System.out.println(aX);
aX++; // aX = aX + 1 --> 11 = 10 + 1
System.out.println(aX);
++aX; // 11
System.out.println(aX); // 12
int aXX = 100;
System.out.println(aXX); // 100
int aa = aXX++; // int aa = aXX = aXX + 1 // 100
System.out.println(aa); // 101
aa = ++aXX;
System.out.println(aa); // 102
}
// 삼항 연산자
public void ternary_Oper() {
// 삼항 연산자 ternary operator
// 조건식 ? 결과1 : 결과2;
// 조건식의 결과가 TRUE이면 결과1, FALSE이면 결과2
int fatherAge = 45;
int motherAge = 47;
// char ch = ' '; char 자료형 빈 문자로 초기화하기
char ch = '\u0000'; // char 자료형 유니코드로 초기화하기
boolean bool = fatherAge > motherAge;
System.out.println("bool >>> : " + bool);
ch = (fatherAge > motherAge) ? 'T' : 'F';
System.out.println("ch >>> : " + ch);
if (fatherAge > motherAge) {
System.out.print("true >>> : ");
} else {
System.out.print("false >>> : ");
}
// 하기 로직은 사용을 지양한다.
if (fatherAge > motherAge)
System.out.print("ture >>> : ");
// System.out.print("true >>> : <<<<<<<<<>>>>>>>>>);
else
System.out.print("false >>> : 1");
System.out.print("false >>> : <<<<<<<<<>>>>>>>>> 2");
System.out.print("false >>> : <<<<<<<<<>>>>>>>>> 3");
}
// 논리 연산
public void shortCircuit_Oper() {
// Short Circuit 현상
// 단락 회로 평가 Short Circuit Evaluation : SCE
// 논리 곱(&&) 연산과 논리 합(||) 연산을 할 때 두 항을 모두 살행하지 않더라도
// 결과 값을 알 수 있는 경우에 나머지 항은 실행되지 않는다.
/*
&&연산 ||연산
T AND T = T T OR T = T
T AND F = F T OR F = T
F AND T = F F OR T = T
F AND F = F F OR F = F
*/
int num1 = 10;
int i = 2;
boolean b0 = (num1 = num1 + 10) < 10; // false
boolean b1 = (i = i + 2) < 10; // true
boolean b2 = b0 && b1; // false
System.out.println("b0 >>> : " + b0);
System.out.println("b1 >>> : " + b1);
System.out.println("b2 >>> : " + b2);
boolean value = ((num1 = num1 + 10) < 10) && ((i = i + 2) < 10); // F && T = F
System.out.println("value >>> : " + value);
System.out.println("num1 >>> : " + num1);
System.out.println("i >>> : " + i);
boolean b3 = (num1 = num1 + 10) > 10; // true
boolean b4 = (i = i + 2) < 10; // true
boolean b5 = b3 || b4; //true
System.out.println("b3 >>> : " + b3);
System.out.println("b4 >>> : " + b4);
System.out.println("b5 >>> : " + b5);
boolean value1 = ((num1 = num1 + 10) > 10 || ((i = i + 2) < 10)); // T || T = T
System.out.println("value1 >>> : " + value1);
System.out.println("num1 >>> : " + num1);
System.out.println("i >>> : " + i);
}
public static void main(String args[]) {
Exam_Operator eo = new Exam_Operator();
System.out.println("eo >>> : " + eo);
// Exam_Operator 클래스의 eo 참조변수로 inc_dec_Oper() 함수를 호출한다.(invoke)
eo.inc_dec_Oper();
// Exam_Operator 클래스의 eo 참조변수로 ternary_Oper() 함수를 호출한다.(invoke)
eo.ternary_Oper();
// Exam_Operator 클래스의 eo 참조변수로 shortCircuit_Oper() 함수를 호출한다.(invoke)
eo.shortCircuit_Oper();
// 관계 연산
boolean bool0 = 1 > 2; // false
boolean bool1 = 'a' > 'b'; // 97 > 98, 자바는 숫자 int만 안다. 연산을 하면 int형으로 형변환한다.
boolean bool2 = 'A' > 'b';
// boolean bool3 = "A" > "B";
/*
Exam_Operator.java:130: error: bad operand types for binary operator '>'
boolean bool3 = "A" > "B";
^
first type: String
second type: String
1 error
*/
// boolean bool4 = "A" > 'b';
// boolean bool5 = "가" > "나";
boolean bool6 = '가' > '나';
System.out.println("bool0 >>> : " + bool0);
System.out.println("bool1 >>> : " + bool1);
System.out.println("bool2 >>> : " + bool2);
// System.out.println("bool3 >>> : " + bool3);
// System.out.println("bool4 >>> : " + bool4);
// System.out.println("bool5 >>> : " + bool5);
System.out.println("bool6 >>> : " + bool6);
// == 상등 연산자, 등가 연산자는 숫자 연산만 한다.
int iX = 10;
int iY = 10;
boolean bVal0 = iX == iY; // true
System.out.println("bVal0 >>> : " + bVal0);
// equals() 함수는 문자열 연산만 한다.
// java.lang.String
// public boolean equals(Object anObject)
// public boolean equalsIgnoreCase(String anotherString)
String s0 = "abc";
String s1 = "abc";
String s2 = "Abc";
String s3 = "Abc ";
boolean bVal4 = s0.equals(s1);
System.out.println("bVal4 >>> : " + bVal4); // true
boolean bVal5 = s0.equals(s2);
System.out.println("bVal5 >>> : " + bVal5); // false
boolean bVal6 = s0.equalsIgnoreCase(s2);
System.out.println("bVal6 >>> : " + bVal6); // true
boolean bVal7 = s0.equalsIgnoreCase(s3);
System.out.println("bVal7 >>> : " + bVal7); // false
} // end of main()
} // end of Exam_Operator class
- 총 정리
package a.b.c.ch1;
public class Exam_Operator {
// 증감 연산자
public void inc_dec_Oper() {
/*
증감 연산자 increment and decrement operators
++x x를 먼저 1 증가시킨 후 그 값을 사용
--x x를 먼저 1 감소시킨 후 그 값을 사용
x++ x값을 먼저 사용한 후 1 증가
x-- x값을 먼저 사용한 후 1 감소
*/
int aX = 10;
System.out.println(aX);
aX++; // aX = aX + 1 --> 11 = 10 + 1
System.out.println(aX);
++aX; // 11
System.out.println(aX); // 12
int aXX = 100;
System.out.println(aXX); // 100
int aa = aXX++; // int aa = aXX = aXX + 1 // 100
System.out.println(aa); // 101
aa = ++aXX;
System.out.println(aa); // 102
}
// 삼항 연산자
public void ternary_Oper() {
// 삼항 연산자 ternary operator
// 조건식 ? 결과1 : 결과2;
// 조건식의 결과가 TRUE이면 결과1, FALSE이면 결과2
int fatherAge = 45;
int motherAge = 47;
// char ch = ' '; char 자료형 빈 문자로 초기화하기
char ch = '\u0000'; // char 자료형 유니코드로 초기화하기
boolean bool = fatherAge > motherAge;
System.out.println("bool >>> : " + bool);
ch = (fatherAge > motherAge) ? 'T' : 'F';
System.out.println("ch >>> : " + ch);
if (fatherAge > motherAge) {
System.out.print("true >>> : ");
} else {
System.out.print("false >>> : ");
}
// 하기 로직은 사용을 지양한다.
if (fatherAge > motherAge)
System.out.print("ture >>> : ");
// System.out.print("true >>> : <<<<<<<<<>>>>>>>>>);
else
System.out.print("false >>> : 1");
System.out.print("false >>> : <<<<<<<<<>>>>>>>>> 2");
System.out.print("false >>> : <<<<<<<<<>>>>>>>>> 3");
}
// 논리 연산
public void shortCircuit_Oper() {
// Short Circuit 현상
// 단락 회로 평가 Short Circuit Evaluation : SCE
// 논리 곱(&&) 연산과 논리 합(||) 연산을 할 때 두 항을 모두 살행하지 않더라도
// 결과 값을 알 수 있는 경우에 나머지 항은 실행되지 않는다.
/*
&&연산 ||연산
T AND T = T T OR T = T
T AND F = F T OR F = T
F AND T = F F OR T = T
F AND F = F F OR F = F
*/
int num1 = 10;
int i = 2;
boolean b0 = (num1 = num1 + 10) < 10; // false
boolean b1 = (i = i + 2) < 10; // true
boolean b2 = b0 && b1; // false
System.out.println("b0 >>> : " + b0);
System.out.println("b1 >>> : " + b1);
System.out.println("b2 >>> : " + b2);
boolean value = ((num1 = num1 + 10) < 10) && ((i = i + 2) < 10); // F && T = F
System.out.println("value >>> : " + value);
System.out.println("num1 >>> : " + num1);
System.out.println("i >>> : " + i);
boolean b3 = (num1 = num1 + 10) > 10; // true
boolean b4 = (i = i + 2) < 10; // true
boolean b5 = b3 || b4; //true
System.out.println("b3 >>> : " + b3);
System.out.println("b4 >>> : " + b4);
System.out.println("b5 >>> : " + b5);
boolean value1 = ((num1 = num1 + 10) > 10 || ((i = i + 2) < 10)); // T || T = T
System.out.println("value1 >>> : " + value1);
System.out.println("num1 >>> : " + num1);
System.out.println("i >>> : " + i);
}
// 관계 연산
public void relational_Oper() {
// 관계 연산
boolean bool0 = 1 > 2; // false
boolean bool1 = 'a' > 'b'; // 97 > 98, 자바는 숫자 int만 안다. 연산을 하면 int형으로 형변환한다.
boolean bool2 = 'A' > 'b';
// boolean bool3 = "A" > "B";
/*
Exam_Operator.java:130: error: bad operand types for binary operator '>'
boolean bool3 = "A" > "B";
^
first type: String
second type: String
1 error
*/
// boolean bool4 = "A" > 'b';
// boolean bool5 = "가" > "나";
boolean bool6 = '가' > '나';
System.out.println("bool0 >>> : " + bool0); // false
System.out.println("bool1 >>> : " + bool1); // false
System.out.println("bool2 >>> : " + bool2); // false
// System.out.println("bool3 >>> : " + bool3);
// System.out.println("bool4 >>> : " + bool4);
// System.out.println("bool5 >>> : " + bool5);
System.out.println("bool6 >>> : " + bool6); //false
// == 상등 연산자, 등가 연산자는 숫자 연산만 한다.
int iX = 10;
int iY = 10;
boolean bVal0 = iX == iY; // true
System.out.println("bVal0 >>> : " + bVal0); // true
// equals() 함수는 문자열 연산만 한다.
// java.lang.String
// public boolean equals(Object anObject)
// public boolean equalsIgnoreCase(String anotherString)
String s0 = "abc";
String s1 = "abc";
String s2 = "Abc";
String s3 = "Abc ";
boolean bVal4 = s0.equals(s1);
System.out.println("bVal4 >>> : " + bVal4); // true
boolean bVal5 = s0.equals(s2);
System.out.println("bVal5 >>> : " + bVal5); // false
boolean bVal6 = s0.equalsIgnoreCase(s2);
System.out.println("bVal6 >>> : " + bVal6); // true
boolean bVal7 = s0.equalsIgnoreCase(s3);
System.out.println("bVal7 >>> : " + bVal7); // false
} // end of relational_Oper()
public static void main(String args[]) {
Exam_Operator eo = new Exam_Operator();
System.out.println("eo >>> : " + eo);
// Exam_Operator 클래스의 eo 참조변수로 inc_dec_Oper() 함수를 호출한다.(invoke)
eo.inc_dec_Oper();
// Exam_Operator 클래스의 eo 참조변수로 ternary_Oper() 함수를 호출한다.(invoke)
eo.ternary_Oper();
// Exam_Operator 클래스의 eo 참조변수로 shortCircuit_Oper() 함수를 호출한다.(invoke)
eo.shortCircuit_Oper();
// Exam_Operator 클래스의 eo 참조변수로 relational_Oper() 함수를 호출한다.(invoke)
eo.relational_Oper();
} // end of main()
} // end of Exam_Operator class
- 연산자 활용
package a.b.c.ch1;
public class Exam_Operator_1 {
public boolean idCheck(String id, String pw) {
// 지역변수는 그 자료형의 default 값으로 초기화해서 사용한다.
boolean bool = false;
if ( id != null && id.length() > 0
&& pw != null && pw.length() > 0) {
System.out.println("Exam_Operator_1.idCheck ::: id >>> : " + id);
System.out.println("Exam_Operator_1.idCheck ::: pw >>> : " + pw);
if ("PGW".equals(id) && "PGW00".equals(pw)) {
bool = true;
}
}
System.out.println("Exam_Operator_1.idCheck ::: bool >>> :" + bool);
return bool;
} // end of idCheck()
public static void main(String args[]) {
/*
초기화 연습
String s0 = "";
String s1 = null;
*/
String id = "PGW";
String password = "PGW00";
// 문자열 null 체크는 하기와 같이 한다.
if ( id != null && id.length() > 0
&& password != null && password.length() > 0) {
System.out.println("Exam_Operator_1.main ::: id >>> : " + id);
System.out.println("Exam_Operator_1.main ::: password >>> : " + password);
Exam_Operator_1 eo1 = new Exam_Operator_1();
// public boolean idCheck(String id, String pw)
boolean bool = eo1.idCheck(id, password);
System.out.println("Exam_Operator_1.main ::: bool >>> : " + bool);
if (bool) {
System.out.println("로그인 성공 >>> : ");
} else {
System.out.println("로그인 실패 >>> : ");
}
} else {
System.out.println("아이디와 패스워드를 잘 입력하시오 >>> : ");
}
} // end of main()
} // end of Exam_Operator_1 class
8교시 (17:30-18:30)
- 오늘 배운 내용 복습 및 질문 시간
Notes
- import 할 때 어떤 클래스를 import 할지 찾아서 쓰기. * 쓰지 말기 (단, 연구 시에는 가능)
- 프로그래밍 잘 하는 방법 : 변수와 함수 → 상수 → 문자와 숫자
- Boolean은 꼭 로그를 찍어보면서 한다.
728x90
'국비지원교육 (22.01-22.07) > 강의노트' 카테고리의 다른 글
22-02-11(금) 012일차 [Java] while문, do while문, 2차원 배열 (0) | 2022.04.16 |
---|---|
22-02-10(목) 011일차 [Java] for문 (0) | 2022.04.16 |
22-02-08(화) 009일차 [Java] 배열, 논리 연산(Boolean), 제어 흐름(If문) (0) | 2022.04.10 |
22-02-07(월) 008일차 [Java] char 자료형, 1차원 배열, 형변환, String클래스 (0) | 2022.04.10 |
22-02-04(금) 007일차 [Java] 객체와 인스턴스, 함수(return여부)와 변수(static여부) (0) | 2022.04.10 |