728x90
수업내용
1교시 (09:30-10:20)
- 정보처리기사 중요성
- 어제 수업 리뷰
- 내가 사용하는 도구 잘 알기
- 프로그램의 버전 파악
- 자바의 범위를 줄이면서 배우고 있는데 그 범위가 대부분 예약어(키워드임)
- package : keyword : 디렉토리를 나타냄
- 클래스는 자바 프로그램의 최소 단위
- 패키지도 컴파일 해야 한다.
- javac -d . classname.java
- java packagename.classname
- 네임스페이스
- 패키지도 컴파일을 해야 한다
- 소스파일과 바이트 파일의 경로가 다를 수 있음 >> 바이트 파일이 있는 곳까지 가서 실행하면 안된다. packaganame.classname과 같이 네임스페이스로 실행
- class : keyword
- 자바 프로그램의 최소 단위이다.
- 구성원은 변수와 함수이다.
- 클래스가 메모리에 올라가면 객체가 된다.
- 접근제한자 : keyword : 접근을 제한
- public
- protected
- default
- private
- 변수 : 데이터를 담는 상자 << 타입을 저장해서 씀 : Type based language ← 메모리를 적게 쓰려고!
- 문자
- 숫자
- 자바에서의 데이터 표현
- 데이터의 크기가 있음
- 데이터의 크기별 출력
- 내가 사용하는 도구 잘 알기
2교시 (10:30-11:20)
- 자바에서의 데이터 표현 및 주석 달기 연습
// 패키지 a.b.c.ch1을 선언한다.
// Exam_Var_Box 의 클래스를 패키지 a.b.c.ch1 하위에 두세요
// C:\00.KOSMO108\10.JExam\ch1\a\b\c\ch1\Exam_Var_Box
package a.b.c.ch1;
// java.lang 패키지에 있는 Integer 클래스를 가져와서 Exam_Var_Box 클래스에서 사용하기
// java.lang 패키지에 있는 클래스들(자원) 자바 프로그램을 만드는데 사용하는 가장 기본적인 클래스들이기 때문에
// 자바 엔진에서 import 키워드를 사용해서 불러오지 않아도 사용할 수 있게 만들어져 있다.
// java.lang.* 패키지 이외의 다른 자원은 무조건 import 키워드로 불러와야 한다.
import java.lang.Integer;
// class 키워드를 사용해서 Exam_Var_Box 일반 클래스를 선언한다.
// 접근 제한자 : Access Modifier를 public 키워드를 부여해사
// 모든 클래스에서 : 다른 패키지에 있는 클래스도 호출해서(불러서) 사용할 수 있게 한다.
// a.b.c.ch1.Exam_Var_Box
public class Exam_Var_Box {
// 콘솔 어플리케이션의 main() 함수
public static void main(String args[]) {
// 콘솔에 "십진수 0 : 이진수로 >>> : " 문자열을 출력하시오
// + : "십진수 0 : 이진수로 >>> : "와 Integer.toBibaryString(0) 결과를 더하세요
// 문자열 + 숫자 = 문자열이다
// Integer.toBinaryString(0) : java.lang 패키지에 있는 Integer 클래스
// Integer 클래스는 숫자 중 정수를 다루는 클래스이다.
// toBinaryString() : Integer 클래스에 있는 함수(메서드)이다.
// toBinaryString() 함수(메서드)는 숫자로 들어오는 아규먼트를 이진수로 변환한다.
// toBinaryString(0) : 숫자 0을 이진수로 변환한다.
System.out.println("십진수 0: 이진수로 >>> : " + Integer.toBinaryString(0));
// toOctalString() : Integer 클래스에 있는 함수(메서드)이다.
// toOctalString() 함수(메서드)는 숫자로 들어오는 아규먼트를 팔진수로 변환한다.
// toOctalString(0) : 숫자 0을 팔진수로 변환한다.
System.out.println("십진수 0: 팔진수로 >>> : " + Integer.toOctalString(0));
// toHexString() : Integer 클래스에 있는 함수(메서드)이다.
// toHexString() 함수(메서드)는 숫자로 들어오는 아규먼트를 십육진수로 변환한다.
// toHexString(0) : 숫자 0을 십육진수로 변환한다.
System.out.println("십진수 0: 십육진수로 >>> : " + Integer.toHexString(0));
// \n : 문자 상수이다. : 라인을 한 칸 떨어뜨린다. : 캐리지 리턴(CR) + 라인 피드(LF)
System.out.println("\n");
System.out.println("십진수 1: 이진수로 >>> : " + Integer.toBinaryString(1));
System.out.println("십진수 1: 팔진수로 >>> : " + Integer.toOctalString(1));
System.out.println("십진수 1: 십육진수로 >>> : " + Integer.toHexString(1));
System.out.println("\n");
System.out.println("십진수 2: 이진수로 >>> : " + Integer.toBinaryString(2));
System.out.println("십진수 2: 팔진수로 >>> : " + Integer.toOctalString(2));
System.out.println("십진수 2: 십육진수로 >>> : " + Integer.toHexString(2));
System.out.println("\n");
System.out.println("십진수 3: 이진수로 >>> : " + Integer.toBinaryString(3));
System.out.println("십진수 3: 팔진수로 >>> : " + Integer.toOctalString(3));
System.out.println("십진수 3: 십육진수로 >>> : " + Integer.toHexString(3));
System.out.println("\n");
System.out.println("십진수 4: 이진수로 >>> : " + Integer.toBinaryString(4));
System.out.println("십진수 4: 팔진수로 >>> : " + Integer.toOctalString(4));
System.out.println("십진수 4: 십육진수로 >>> : " + Integer.toHexString(4));
System.out.println("\n");
System.out.println("십진수 5: 이진수로 >>> : " + Integer.toBinaryString(5));
System.out.println("십진수 5: 팔진수로 >>> : " + Integer.toOctalString(5));
System.out.println("십진수 5: 십육진수로 >>> : " + Integer.toHexString(5));
System.out.println("\n");
System.out.println("십진수 6: 이진수로 >>> : " + Integer.toBinaryString(6));
System.out.println("십진수 6: 팔진수로 >>> : " + Integer.toOctalString(6));
System.out.println("십진수 6: 십육진수로 >>> : " + Integer.toHexString(6));
System.out.println("\n");
System.out.println("십진수 7: 이진수로 >>> : " + Integer.toBinaryString(7));
System.out.println("십진수 7: 팔진수로 >>> : " + Integer.toOctalString(7));
System.out.println("십진수 7: 십육진수로 >>> : " + Integer.toHexString(7));
System.out.println("\n");
System.out.println("십진수 8: 이진수로 >>> : " + Integer.toBinaryString(8));
System.out.println("십진수 8: 팔진수로 >>> : " + Integer.toOctalString(8));
System.out.println("십진수 8: 십육진수로 >>> : " + Integer.toHexString(8));
System.out.println("\n");
System.out.println("십진수 9: 이진수로 >>> : " + Integer.toBinaryString(9));
System.out.println("십진수 9: 팔진수로 >>> : " + Integer.toOctalString(9));
System.out.println("십진수 9: 십육진수로 >>> : " + Integer.toHexString(9));
System.out.println("\n");
System.out.println("십진수 10: 이진수로 >>> : " + Integer.toBinaryString(10));
System.out.println("십진수 10: 팔진수로 >>> : " + Integer.toOctalString(10));
System.out.println("십진수 10: 십육진수로 >>> : " + Integer.toHexString(10));
// main() 함수를 닫는 블록
} // end of main()
// Exam_Var_Box 클래스를 닫는 블록
} // end of Exam_Var_Box
3교시 (11:30-12:20)
- [교재 39~41p] 아스키
- 2진수, 16진수, 8진수
- 부호비트
- 변수 [교재 44p]
- 자료형
- [교재 375p] Wrapper 클래스 ← 형변환 ← 자바의 모든 자원은 객체
기초 자료형 primitive type
- 숫자
- 정수
- Byte byte 1byte(8bit)
- Short short 2byte(16bit)
- Integer int 4byte(32bit)
- Long long 8byte(64bit) 정수l, 정수L
- 실수 0.0(지수부.기수부)
: 컴퓨터는 더 세밀하게 표현하는 것을 더 크다고 본다. 정수보다 실수가 무조건 더 큼.- Float float 4byte(32bit) 실수f, 실수F
- Double double 8byte(64bit) 실수d, 실수D
- 정수
- 문자
- 문자
- Character char 2byte(양의 정수 16bit, 문자를 다루기 때문에 음수를 가질 수 없다.)
- 논리
- 논리 Boolean boolean 1byte(8bit)
- 문자
----------------------> 묵시적 형변환이 일어난다.
byte - char - short - int - float - double
명시적 형변환을 해야 한다. <----------------------
4교시 (12:30-13:20)
- 변수의 선언과 값 할당 후 주석 달기
// 패키지 선언
package a.b.c.ch1;
// 클래스 선언
public class Exam_Var_1 {
// 메인 함수 선언
public static void main(String args[]){
/*
1. int 형 데이터 타입을 선언한다.
2. level : int 형 데이터 타입을 사용하려고 level 변수명을 선언한다.
3. = : 대입 연산자
4. 10 : 정수형 10 숫자(리터럴)을 선언한다.
5. ; : 문장을 종결하는 ; 세미콜론(기호, 연선자)를 선언한다.
*/
// 6. int 형 변수 level을 선언하고 값 10을 초기화 했다.
// level 이라는 변수에 정수 자료형 int (4byte)의 공간을 선언하고 10 할당
int level = 10;
// level 변수명을 호출해서(불러와서) level 변수에 초기화된 데이터를 콘솔에 출력한다.
// 변수 출력
System.out.println(level);
// i 라는 변수에 자료형 int (4byte)의 공간을 선언
int i;
/*
System.out.println(i);
Exam_Var_1.java:11: error: variable i might not have been initialized
System.out.println(i):
^
1 error
*/
// 변수 i에 100 할당
i = 100;
// 변수 출력
System.out.println(i);
} // end of main()
} // end of Exam_Var_1
5교시 (14:30-15:20)
- byte 형
- [교재 50p] 바이트 단위의 정보를 저장하거나 통신할 때 주로 사용합니다.
// 패키지 선언
package a.b.c.ch1;
// 클래스 선언
public class Exam_Byte {
// main() 함수 선언
public static void main(String args[]) {
// Byte의 값 콘솔에 출력
System.out.println("byte의 크기는 1 바이트 >>> : " + Byte.BYTES);
// Byte의 크기 콘솔에 출력
System.out.println("byte의 사이즈는 8 비트 >>> : " + Byte.SIZE);
// byte 형 데이터 타입을 bMax 변수명을 선언하여, Byte의 최대값(127)을 할당
byte bMAX = Byte.MAX_VALUE;
// bMax 변수명을 호출해서 bMAX 변수에 초기화된 데이터를 콘솔에 출력 : 127
System.out.println("byte의 최대값 :: Byte.MAX_VALUE >>> : " + bMAX);
// byte 형 데이터 타입을 bMin 변수명을 선언하여, Byte의 최소값(-128)을 할당
byte bMin = Byte.MIN_VALUE;
// bMin 변수명을 호출해서 bMin 변수에 초기돠된 데이터를 콘솔에 출력 : -128
System.out.println("byte의 최소값 :: Byte.MIN_VALUE >>> : " + bMin);
// Byte의 최댓값인 127보다 큰 수를 할당하고자 하면 에러가 남
// byte b_1 = 128;
// System.out.println("b_1 >>> : " + b_1);
// Byte의 최솟값인 -128보다 작은 수를 할당하고자 하면 에러가 남
// byte b_2 = -129;
//System.out.println("b_2 >>> : " + b_2);
} // end of main()
} // end of Exam_Byte
6교시 (15:30-16:20)
- 메모리에 관여하는 키워드
- static: static을 쓰면 버추얼 머신이 메모리에 올려줌
- [교재 191p] 사용자가 프로그램을 실행하면 메모리에 프로그램이 상주합니다. 이때 프로그램 영역 중에 데이터 영역이 있습니다. 이 영역에는 상수나 문자열 static 변수가 생성됩니다. ⭐⭐⭐
- [교재 192p] 생성과 소멸 - 프로그램이 처음 시작할 때 상수와 함께 데이터 영역에 생성되고 프로그램이 끝나고 메모리를 해제할 때 소멸됨
- new
- extends
- implements
- static: static을 쓰면 버추얼 머신이 메모리에 올려줌
package a.b.c.ch1;
public class Exam_Static {
static byte b;
static void aM(){
System.out.println("aM()함수");
}
public static void main(String args[]) {
// static 키워드가 붙은 변수를 호출해서 사용할 때는
// 클래스이름.변수이름으로 호출해서 사용한다.
System.out.println("b >>> : " + Exam_Static.b);
System.out.println("b >>> : 이것도 되는데 사용하지 말기 >>> : " + b);
// static 키워드가 붙은 함수를 호출할 때는
// 클래스이름.함수이름으로 호출해서 사용한다.
Exam_Static.aM();
//단 static 키워드가 붙은 함수에서는
// static 키워드를 사용할 수가 없다.
// 예) main() 함수 블록에서는 static 키워드를 사용할 수 없다.
// static void main() : main() 함수 앞에 static 키워드가 있다.
}
}
7교시 (16:30-17:20)
- Integer로 변수를 선언하여 값을 초기화 후 콘솔에 출력 예제 및 주석 달기
// 패키지 선언
package a.b.c.ch1;
// 클래스 선언
public class Exam_Var_1 {
// 메인 함수 선언
public static void main(String args[]){
/*
1. int 형 데이터 타입을 선언한다.
2. level : int 형 데이터 타입을 사용하려고 level 변수명을 선언한다.
3. = : 대입 연산자
4. 10 : 정수형 10 숫자(리터럴)을 선언한다.
5. ; : 문장을 종결하는 ; 세미콜론(기호, 연선자)를 선언한다.
*/
// 6. int 형 변수 level을 선언하고 값 10을 초기화 했다.
// level 이라는 변수에 정수 자료형 int (4byte)의 공간을 선언하고 10 할당
int level = 10;
// level 변수명을 호출해서(불러와서) level 변수에 초기화된 데이터를 콘솔에 출력한다.
// 변수 출력
System.out.println(level);
// i 라는 변수에 자료형 int (4byte)의 공간을 선언
int i;
/*
System.out.println(i);
Exam_Var_1.java:11: error: variable i might not have been initialized
System.out.println(i):
^
1 error
*/
// 변수 i에 100 할당
i = 100;
// 변수 출력
System.out.println(i);
} // end of main()
} // end of Exam_Var_1
8교시 (17:30-18:30)
- long으로 변수를 선언하여 값을 초기화 후 콘솔에 출력 예제 및 주석 달기
// 패키지 선언
package a.b.c.ch1;
// 클래스 선언
public class Exam_Limit {
// 메인 함수 선언
public static void main(String args[]) {
/*
1. int 형 데이터 타입을 선언
2. intMax : int 형 데이터 사용하기 위해 intMax 변수명을 선언한다.
3. = : 대입 연산자
4. Integer.MAX_VALUE : int 형 데이터의 최대값을 가지고 있는 래퍼클래스의 MAX_VALUE 상수이다.
여기에 int 형 최대값이 초기화 되어있다.
*/
int intMax = Integer.MAX_VALUE;
/*
1. long 형 데이터 타입을 선언
2. longMax : long 형 데이터 사용하기 위해 longMax 변수명을 선언
3. = : 대입 연산자
4. Long.MAX_VALUE : long 형 데이터의 최대값을 가지고 있는 래퍼클래서의 MAX_VALUE 상수이다.
여기에 long 형 최대값이 초기화 되어있다.
*/
long longMax = Long.MAX_VALUE;
// Integer의 최대값을 콘솔에 출력
/*
System : java.lang.System 클래스를 선언
System 클래스 자바에서 시스템에 관련된 기능을 모아둔 클래스
System 클래스를 그냥 사용할 수 있는 이유는
클래스가 final 클래스이기 때문이다.
. : 링크 연산자 : System 클래스와 out 필드를 연결하는 연산자이다.
out : System 클래스에 있는 변수로 스트림(아웃 풀)을 출력하는 통로 역할을 하는 변수
. : out 필드와 println() 함수를 연결하는 링크 연산자
println() : 콘솔에 출력을 하는 함수이다.
print : 출력하시오
ln : 라인을 하나 띄우세요
*/
System.out.println("intMax >>> : " + intMax);
// Long의 최대값을 콘솔에 출력
System.out.println("longMax >>> : " + longMax);
// 자료형이 int인데 할당되는 숫자가 너무 커서 할당이 되지 않음
/*
int num1 = 9223372036854775807;
System.out.println("int num1 >>> : " + num1);
C:\\00.KOSMO108\\10.JExam\\ch1>javac -d . Exam_Limit.java
Exam_Limit.java:14: error: integer number too large: 9223372036854775807
int num1 = 9223372036854775807;
^
*/
// 자료형이 long이나 할당되는 숫자 뒤에 L(l)이 붙지 않아 할당이 되지 않음
/*
long num2 = 9223372036854775807;
System.out.println("long num2 >>> : " + num2);
C:\\00.KOSMO108\\10.JExam\\ch1>javac -d . Exam_Limit.java
Exam_Limit.java:17: error: integer number too large: 9223372036854775807
long num2 = 9223372036854775807;
^
2 errors
*/
// long 자료형에 할당되는 숫자 뒤에는 l이나 L이 붙어야 함
/*
1. long 형 데이터 타입을 선언
2. num3 : long 형 데이터를 사용하기 위해 num3 변수명을 선언
3. = : 대입연산자
4. 9223372036854775807L : long 형 자료형에 맞추어 상수 초기화
*/
long num3 = 9223372036854775807L;
// num3에 초기화된 값을 콘솔에 출력
System.out.println("long num3 >>> : " + num3);
/*
1. long 형 데이터 타입을 선언
2. num4 : long 형 데이터를 사용하기 위해 num4 변수명을 선언
3. = : 대입연산자
4. 9223372036854775807l : long 형 자료형에 맞추어 상수 초기화
*/
long num4 = 9223372036854775807l;
// num4에 초기화된 값을 콘솔에 출력
System.out.println("long num4 >>> : " + num4);
} // end of main()
} // end of Exam_Limit
Notes
- 변수를 공부한다는 것은 데이터 종류를 공부하는 것
728x90
'국비지원교육 (22.01-22.07) > 강의노트' 카테고리의 다른 글
22-02-04(금) 007일차 [Java] 객체와 인스턴스, 함수(return여부)와 변수(static여부) (0) | 2022.04.10 |
---|---|
22-02-03(목) 006일차 [Java] 메소드(함수)의 자료형, 매개변수와 인수, 변수의 유효범위 (0) | 2022.04.10 |
22-01-27(목) 004일차 [Java] package, class, 변수 (0) | 2022.04.09 |
22-01-26(수) 003일차 [프로그래밍 기초, Java] HelloJava 출력, API 뜯어보기, 자바 소스 구성 규칙 (0) | 2022.04.09 |
22-01-25(화) 002일차 [프로그래밍 기초] JDK 설치, 환경변수 설정 (0) | 2022.04.09 |