728x90
수업내용
1교시 (09:30-10:20)
- 모르면 질문하기
- 지금까지의 수업 복습
- java jdk : java development kit (jdk + jre) jdk : 개발 엔진 : 컴파일러 : javac.exe : 자바 소스를 자바 버추얼 머신이 알 수 있게 만든 것 : 바이트 코드 byte code, 클래스 코드 class code ============================================ 자바소스 코드에 작성된 키워드, 문자, 기호, 연산자, 빌트인 자원 및 식별자를 자바 규칙에 맞게 사용했는지 검사하는 것 ============================================ java.exe : 자바 버추얼 머신이 바이트코드(클래스코드)를 CPU와 서로 통신해서 결과를 만든 것 jre : 실행엔진 : JVM : java.exe패키지 컴파일 javac -d . 자바파일이름.확장자 패키지 클래스 실행 java 패키지명.클래스이름만
- 환경변수 세팅을 하는 이유 javac.exe 컴파일 명령어를 컴퓨터 내 어디에서든지 실행시키려고
- 편집기 에디트플러스
- 명령어 처리할 도구 cmd, 콘솔, MS-DOS
- API rt.kar에 있는 자원들(빌트인 클래스 etc.) html 문서로 보여주는 것 api는 버전을 꼭 확인해야 한다. javac -version java -version
- 변수를 사용하는 방법
- 데이터형 선언 변수명 선언 ;
- 자료형 선언 변수명 선언 = 변수의 값 ;
- 데이터형 선언 변수명 선언 = 변수의 값;
================================================== - 자료형 선언 변수명 선언 ;
- 자료형 : 데이터를 담는 통 : 메모리를 절약하기 위해서 기초 자료형 : primitive type byte Byte MAX_VALUE, MIN_VALUE short Short int Integer long Long
- java 공부 : 자바를 하기 위한 개발 도구
2교시 (10:30-11:20)
- 함수 (메소드)
- [교재 134~136p] 함수, 매개변수, 반환값
package a.b.c.ch1;
// class 키워드를 이용해서 이름이 Exam_Method 사용자 정의 클래스를 선언한다.
// 사용자 정의 클래스 Exam_Method 에 있는 구성원은 class = 변수 + 함수
// aMethod() 함수 1개
// main() 함수 1개
// Exam_Mehtod = aMethod() 함수, main() 함수
public class Exam_Method {
// 일반 언어에서 함수라 Function 하는 것을 객체지향 언어에서는 메소드 method 라고 한다.
// 함수의 일반적인 정의 : 하나의 기능을 수행하는 일련의 코드
// 함수의 정의 : 기능을 모아 두는 곳
// 함수는 데이터를 담아 두는 상자이다.
// 함수를 선언하는 방법
/*
1. 클래스 블럭 안에서 선언한다.
2. 함수 이름 앞에는
접근 제한자 키워드를 사용할 수 있다. : public, protected, default, private
수정자 키워드를 사용할 수 있다. : static, final
리턴형을 선언할 수 있다. : void, 기초 자료형, 참조 자료형, 사용자 정의 클래스 데이터
3. 함수 이름은 영문자 소문자로 시작한다.(한글도 가능하나 사용하지 않는다.)
4. 함수 이름 뒤에는 () 소괄호를 선언한다.
소괄호 안에는 parameter(매개변수)를 순차적으로 선언할 수 있다.
5. 소괄호 뒤에는 {} 중괄호 블럭을 선언한다.
6. 함수에서 return 키워드를 사용하는 이유
함수에서 선언한 변수는 직접 함수 밖으로 나갈 수가 없다.
7. 함수 블럭 {} 안에서는 인터프리터 interpriter 방식
(한줄씩 읽어가면서 실행하는 형식)으로 실행 된다.
*/
public static void aMethod(int i) {
int ii = i;
System.out.println("aMethod() 함수 블럭 안에서 출력 >>> : " + ii);
}
// 메인 함수를 선언한다.
public static void main(String args[]){
// 사용자 정의 클래스 Exam_Method 클래스 main() 함수에서
// 사용자 정의 클래스 Exam_Method 에 있는 aMethod() 함수를 호출한다 invoke 한다..
Exam_Method.aMethod(100);
} // end of main()
} // end of Exam_Method class
3교시 (11:30-12:20)
- 위 함수 코드에 대한 설명 및 주석 달기
4교시 (12:30-13:20)
- 메소드와 인터프리터 방식
package a.b.c.ch1;
// 사용자 정의 클래스 Exam_Method_1 클래스에는 자원이 무엇이 있을까요?
// class의 자원 = class = 변수 + 함수
// 함수 4개 : main() 함수 + 사용자 정의 함수 3개
// 컴파일 하고 : javac -d . Exam_Method_1.java
// 실행하기 : java a.b.c.ch1.Exam_Method_1
// 자바는 인터프리터 방식으로 수행된다. 함수 블록 안에서만 인터프리터 방식으로 수행된다.
// 자바 콘솔 어플리케이션은 main() 함수부터 시작한다.
// main() 함수 블록을 한 줄 씩 읽어가면서 수행된다.
// Exam_Method_1 자바 소스를 컴파일한다.
// Exam_Method_1 클래스 파일을 실행한다.
/*
1. Exam_MEthod_1 클래스 안에 있는 main() 함수를 호출한다.
2. main()의 블록의 첫 번째 라인을 읽어서 수행한다.
*/
/*
=======================================
자바 콘솔 어플리케이션 시작은 main() 함수이다.
main()함수 블록에서 한 줄씩 읽어가면서
함수를 호출하며 수행된다.
=======================================
*/
public class Exam_Method_1 {
public static void aM() {
System.out.println("aM() method 함수");
System.out.println("aM() method 함수 블럭 두 번째 라인에서 bM() 함수 호출을 한다.");
bM();
}
public static void bM() {
System.out.println("bM() method 함수");
}
public static void cM() {
System.out.println("cM() method 함수");
}
// 메인 함수를 선언한다.
public static void main(String args[]){
System.out.println("첫 번째 라인에서 Exam_Method_1 클래스 블록에 있는 main() 함수 시작 >>> : ");
System.out.println("두 번째 라인에서 Exam_Method_1 클래스 블록에 있는 aM() 함수를 호출한다. >>> : ");
System.out.println("aM() 함수 블록의 첫 번째 라인이 수행된다. >>> : ");
Exam_Method_1.aM();
System.out.println("세 번째 라인에서 Exam_Method_1 클래스 블록에 있는 cM() 함수를 호출한다. >>> : ");
System.out.println("cM() 함수 블록의 첫 번째 라인이 수행된다. >>> : ");
Exam_Method_1.cM();
System.out.println("세 번째 라인에서 Exam_Method_1 클래스 블록에 있는 bM() 함수를 호출한다. >>> : ");
System.out.println("bM() 함수 블록의 첫 번째 라인이 수행된다. >>> : ");
Exam_Method_1.bM();
} // end of main()
} // end of Exam_Method_1 class
5교시 (14:30-15:20)
- 메소드와 자료형
package a.b.c.ch1;
public class Exam_Method_2 {
// int 형 데이터 타입, 자료형, 프라이머티브 타입 : 리턴형
// 리턴형 : 함수에서 출력하는(밖으로 내보내는) 데이터 타입을 말한다.
// Return 키워드 뒤에 쓰는 데이터 타입(형)이 이 함수에서는 int형 이어야 한다.
// static int : int 자료형 하고 return a + b의 결과 값의 자료형이 int형으로 동일해야 한다.
// 함수의 리턴형과 return 키워드 뒤에 선언되는 데이터형은 항시 동일해야 한다. 아니면 에러가 발생한다.
static int addMethod() {
// addMethod() 함수 블록에 있지만 리턴 대상이 아니다.
// 콘솔에 출력하라는 명령문이다.
System.out.println("Exam_Method_2 클래스에 있는 addMethod() 메소드(함수)");
int a = 1;
int b = 2;
// addMethod() 함수의 리턴값은 a+b의 결과값이다.
// 리턴값 a + b의 데이터형과 addMthod() 선언부에 있는 int 리턴형은 데이터 타입이 항시 동일해야 한다.
return a + b;
}
// default 키워드 접근 제한자 access modifier
// a.b.c.ch1 패키지(폴더) 내에서만 호출할 수 있다.
static void aM() {
System.out.println("Exam_Method_2 클래스에 있는 aM() 메소드(함수)");
}
// public 키워드 접근 제한자 access modifier
// a.b.c.ch1 패키지(폴더)가 아닌 폴더에서도 호출할 수 있다.
public static void bM(){
System.out.println("bM() method 함수");
}
// 메인 함수를 선언한다.
public static void main(String args[]) {
System.out.println("Exam_Method_2 클래스에 있는 main() 메소드(함수) \n");
System.out.println("리턴형이 있는 함수는 리턴 값을 받는 변수를 선언해서 사용한다.");
System.out.println("Exam_Method_2.addMethod() 함수 호출 결과 >>> : " + Exam_Method_2.addMethod());
int sum = Exam_Method_2.addMethod();
// int sum = 3 (return [a + b = 3]);
System.out.println("int sum = " + sum + "\n");
System.out.println("리턴형이 void인 함수는(리턴 값이 없는 함수, return 키워드가 없는 함수)는");
System.out.println("리턴값을 받는 변수를 사용하지 않는다. 그냥 함수만 호출해서 사용한다.");
Exam_Method_2.aM();
} // end of main()
} // end of Exam_Method_2 class
6교시 (15:30-16:20)
- 함수의 parameter와 argument
package a.b.c.ch1;
/*
함수에서
파라미터 parameter 매개변수 선언하기
함수 호출할 때 인수 argument를 사용하는 방법
*/
public class Exam_Method_3 {
// 더하기 함수 만들기
/*
함수를 선언할 때(함수를 만들 때)
함수 이름 뒤에 소괄호를 선언해서
소괄호에 데이터 타입을 선언하고 변수 명을 선언하는 것을
우리는 parameter 매개변수라고 부른다.
매개변수 : 연결해주는 변수
*/
static int addMethod(int x, int y) {
System.out.println("Exam_Method_3 클래스에 있는 addMethod() 메소드(함수)");
int addSum = x + y;
return addSum;
}
// 메인 함수를 선언한다.
public static void main(String args[]) {
System.out.println("Exam_Method_3 클래스에 있는 main() 메소드(함수) \\n");
// 변수를 선언해서 초기화
int x = 1;
int y = 2;
// 함수를 호출할 때
/*
함수를 호출할 때
함수 이름 뒤 소괄호에 선언하는 값 또는 변수를
우리는 argument 인수라고 부른다.
*/
int addSum = Exam_Method_3.addMethod(x, y);
// static int addMethod(int x, int y) ==> static int addMethod(x = 1, y = 2)
/*
===============================================================
인수의 변수명 addMethod(x, y) 와
매개변수의 변수명 addMethod(int x, int y)는 동일하지 않아도 된다.
여기서 x, y의 int x, int y의 변수명은 같지 않아도 된다.
===============================================================
*/
System.out.println("addSum >> : " + addSum + "\\n");
System.out.println("Exam_Method_3.addMethod(x, y) >>> : "
+ Exam_Method_3.addMethod(x, y) + "\\n");
int addSum_1 = Exam_Method_3.addMethod(1, 3);
System.out.println("addSum_1 >>> : " + addSum_1 + "\\n");
System.out.println("Exam_Method_3.addMethod(1, 2) >>> : "
+ Exam_Method_3.addMethod(1, 2) + "\\n");
} // end of main()
} // end of Exam_Method_3 class
7교시 (16:30-17:20)
- [교재 137~140p] 함수 호출과 반환
- 변수의 유효범위
package a.b.c.ch1;
// 함수 안에서 사용하는 변수의 유효 범위
// 함수서 선언하는 많은 변수는
// {} 중괄호 블록에서 선언하고 {} 중괄호 블록에서 사용해야 한다.
public class Exam_Var_2 {
// 메인 함수 콘솔 어플리케이션의 시작점이다.
public static void main(String args[]) {
System.out.println("Exam_Var_2.main() 함수 시작");
System.out.println("인터프리터 방식으로 수행된다.");
System.out.println("main() 함수 블록 왼쪽부터 오른쪽 80 컬럼");
// 선언 전이라 실행되지 않음
// System.out.println(">>> : " + i);
// 변수를 선언하고 초기화했다.
// 선언한 변수명 i의 유효 범위는(사용할 수 있는 범위)
// i 선언한 하위 라인부터 main 함수 블럭이 끝나는 라인까지 유효하다.
int i = 10;
System.out.println(">>> : " + i);
//블록 선언
{
int ii = 1000;
System.out.println(">>> : " + ii);
System.out.println("{} 안에서 >>> : " + i);
i = 101;
}
/*
System.out.println(">>> : " + ii);
C:\\00.KOSMO108\\10.JExam\\ch1>javac -d . Exam_Var_2.java
Exam_Var_2.java:23: error: cannot find symbol
System.out.println(">>> : " + ii);
^
symbol: variable ii
location: class Exam_Var_2
1 error
*/
} // end of main()
} // end of Exam_Var_2 class
8교시 (17:30-18:30)
- 변수 유효 범위 (지역변수, 멤버변수 스태틱변수)
package a.b.c.ch1;
// 자바 변수 : 상수, 클래스변수, 전역변수, 멤버변수, 지역변수
// 변수의 유효 범위
public class Exam_Var_3 {
// 자바의 정식 용어 : 자바 클래스 내부에 선언하는 변수는 Field 필드라고 부른다.
// 멤버변수 : 클래스 블록 내부와 함수 블록 외부에 선언하는 변수이다.
// 멤버 변수의 종류에는
/*
상수
클래스변수
전역변수
멤버변수
*/
// static 붙어서 클래스 변수, 스태틱 변수
static int i;
// 상수
public static final int CONSTRUCTURE_VARIABLE = 10;
// 클래스 변수, 스태틱 변수
// 쓰지 말기. 잘못 쓰면 큰일 남
static int i_var_staticVariable;
// 전역 변수
public int i_Var_GlobalVariable;
// 멤버 변수
int i_var_MemberVariable;
// 메인 함수 콘솔 어플리케이션의 시작점이다.
public static void main(String args[]) {
// main() 함수 블록 안에 있다.
// 함수 블록 안에서 선언하는 변수는 지역 변수 local variable 라고 부른다.
int ii = 1;
System.out.println("Exam_Var_3.i >>> : " + Exam_Var_3.i);
// System.out.println("Exam_var_3.ii >>> : " + Exam_Var_3.ii);
System.out.println("ii >>> : " + ii);
} // end of main()
} // end of Exam_Var_3 class
Notes
728x90
'국비지원교육 (22.01-22.07) > 강의노트' 카테고리의 다른 글
22-02-07(월) 008일차 [Java] char 자료형, 1차원 배열, 형변환, String클래스 (0) | 2022.04.10 |
---|---|
22-02-04(금) 007일차 [Java] 객체와 인스턴스, 함수(return여부)와 변수(static여부) (0) | 2022.04.10 |
22-01-28(금) 005일차 [Java] 변수와 자료형, static 키워드 (0) | 2022.04.09 |
22-01-27(목) 004일차 [Java] package, class, 변수 (0) | 2022.04.09 |
22-01-26(수) 003일차 [프로그래밍 기초, Java] HelloJava 출력, API 뜯어보기, 자바 소스 구성 규칙 (0) | 2022.04.09 |