Today I Learned-11
자바프로그래밍 - 2
- 어제 내용 복습
- 비트 연산자
- 조건문/반복문
- 클래스와 객체
복습
- java: 
 - wora(write once run anywhere):  다양한 플랫폼에서 된다 
- oop(object oriented programming): 객체지향 프로그래밍 
 
- wora(write once run anywhere):  다양한 플랫폼에서 된다 
- java 자료형: 
 - 정수: byte(1), short/char(2), int(4), long(8) 
- 실수: float(4), double(8) 
 
- 정수: byte(1), short/char(2), int(4), long(8) 
- 요소별 작성법: 
 - 패키지 - 소문자 
- 클래스 - 파스칼 케이스 
- 변수/메서드 - 카멜 케이스 
 
- 패키지 - 소문자 
- 디버깅(중요!) 
 - 줄번호에 break point 지정 
- F11 디버깅 실행 
- step into(F5):  메서드, 반복문, 특정 부분에 들어갈 때 
- step over(F6):  다음 단계로 진행 
- exit(F7):  빠져나옴 
- terminate(ctrl+F12): 디버깅 종료
 
- 줄번호에 break point 지정 
자바의 연산자 - 1. 기본 연산자
- 복합 대입 연산자 
 ex. num1 += 2;=num1 = num1 + 2;
- 조건 연산자 = 삼항 연산
자바의 연산자 - 2. 비트 연산자
- 비트 연산? 
 - 각 값들이 2진수 형태로 연산됨 
- 비트 단위 연산 수행.. 속도 빠름! 
- 프로그램에서 특정 값을 만들거나 연산할 때 사용 
 
- 각 값들이 2진수 형태로 연산됨 
- 비트 논리 연산자 
 |(or)연산: 비트값이 하나라도 1이면, 1출력
 ^(xor)연산: 비트값이 같으면 0, 다르면 1 출력
 ~(반전)연산: 비트값, 0은 1로 1은 0으로 바꿔 출력
- 비트 이동 연산자 
 << n: 왼쪽으로 비트 이동 = 기존 값 * 2^n
 >> n: 오른쪽으로 비트 이동 = 기존 값 / 2^n- 연산자 우선순위 
 - 단항 > 이항 > 삼항 
- 산술 > 관계 > 논리 > 대입 
- 대입 연산자 우선순위가 가장 낮다 
- ( ) 의 우선순위가 가장 높다 
 
- 단항 > 이항 > 삼항 
 
- 연산자 우선순위 
제어 흐름 이해 - 1. 조건문
- 주어진 조건에 따라 결과값 다르게 출력
- if문 / if-else문 
 
 
- switch-case문 
 - 조건식의 결과가 정수/문자열이고, 그 값에 따라 수행문이 다를 때 사용 
- 코드 깔끔, 가독성 up 
- case별로 break; 꼭 사용! 
- 케이스값은 숫자/문자열 모두 가능 
 
 
 
- 조건식의 결과가 정수/문자열이고, 그 값에 따라 수행문이 다를 때 사용 
제어 흐름 이해 - 2. 반복문
- while문 
 
- do-while문 
 - while문은 조건식 먼저 확인 후 실행 
- do-while문은 일단 실행 후 조건문 확인 
 
 
- while문은 조건식 먼저 확인 후 실행 
- for문 
 - 문법:  for(초기화식; 조건식; 증감식) { 수행문; } 
- while문보다 가독성 좋음! 
 
 
- 문법:  for(초기화식; 조건식; 증감식) { 수행문; } 
- continue문 
 - 특정 조건을 건너뛸 때 사용 
- continue문을 만나면, 
 직전의 ‘조건식’&’증감식’으로 되돌아감
 
 
- 특정 조건을 건너뛸 때 사용 
- break문 
 수행문 반복을 중단할 때 사용 
 
클래스와 객체 - 1. 객체지향 프로그래밍과 클래스
- 객체지향 프로그래밍 
 - 객체:  의사, 행위가 미치는 대상 
- 어떤 대상(객체)을 가지고 프로그래밍 함 
- 즉, 객체를 만들고 객체들 사이에 일어나는 일을 구현! 
 
- 객체:  의사, 행위가 미치는 대상 
- 클래스 
 - 객체들 만드는 틀! 
- 객체의 속성(멤버변수), 기능(메서드)을 구현 
- 클래스 생성: (접근 제어자) class 클래스명 { 멤버변수; 메서드; }
- 객체 생성: 클래스명 객체명 = new 클래스명();
 
 
- 객체들 만드는 틀! 
- 패키지 
 - 클래스 파일의 묶음 
- 파일을 담는 폴더와 같음 
 
- 클래스 파일의 묶음 
클래스와 객체 - 2. 메서드
- 함수 정의/호출
- 반환값(return) 
 - 없으면 ** void **
- 있으면 해당 자료형(int, String 등) 
   
 
- 스택 메모리
    - 함수를 호출하면 그 함수를 위한 메모리 공간(스택) 이 할당됨
- Last In, First Out / First In, Last Out
- 즉 A-B-C 순으로 호출됐다면, C-B-A 순으로 스택 해제!
 
클래스와 객체 - 3. 클래스와 인스턴스 ★매우 중요★
- 클래스:  멤버변수, 메서드로 구성됨
    - 멤버변수: 클래스의 속성
- 메서드:  클래스의 기능 
 동일 패키지 안에서는 파일이 다르더라도.. 클래스 공유!!
 
- 인스턴스:  클래스가 메모리 공간에 생성된 상태
    생성된 클래스의 인스턴스를 ‘객체’라고.. 
   
- 인스턴스의 참조변수 사용
    - 참조변수.멤버변수 / ex. student1.studentName = "길동";
- 참조변수.메서드 / ex. student1.getStudentName();
 
- 참조변수.멤버변수 / ex. 
- 용어 정리 
| 용어 | 설명 | 
|---|---|
| 객체 | 객체 지향 프로그램의 대상 | 
| 클래스 | 객체를 프로그래밍하기 위해 코드로 만든 상태 | 
| 인스턴스 | 클래스가 메모리에 생성된 상태 | 
| 멤버 변수 | 클래스의 속성, 특성 | 
| 메서드 | 멤버 변수를 이용하여 클래스의 기능을 구현 | 
| 참조 변수 | 메모리에 생성된 인스턴스를 가리키는 변수 | 
| 참조 값 | 생성된 인스턴스의 메모리 주소 값 | 
클래스와 객체 - 4. 생성자(constructor)
- 개념
    - 클래스 이름이 곧 생성자 이름
- class를 만들 때 호출하여, 멤버변수/상수를 초기화
- 반환값 없음!
 
- 문법 
   
- 오버로드(overload)
    클래스에 생성자가 두 개 이상 제공되는 경우를, 생성자 오버로드 
클래스와 객체 - 5. 참조 자료형
- 변수 선언할 때,
    - 크기가 정해진 ‘기본 자료형’
- 클래스 자료형으로 선언하는 ‘참조 자료형’ 
 String,Class,Wrapper등 : JDK에서 제공하는 참조 자료형
 
클래스와 객체 - 6. 정보 은닉
- 접근 제어자
    - 클래스 내부의 변수/메서드/생성자에 대한 접근권한 설정
- public: 외부 클래스에서의 접근/사용 가능
- private : 외부 클래스에서의 접근/사용 불가
 
eclipse 단축키
- ctrl + w : 열린창(소스코드) 닫기
- ctrl + shift + w : 모든 열린창(소스코드) 닫기
- ctrl + shift + o: 외부의 파일(클래스) 가져옴
과제, ~4/29(금)까지 제출
- 범위: 책 p.79 ~ p.163
    - 복습/연습문제 
 - ‘1분 복습’, ‘연습 문제’의  문제&답, ‘타이핑’ 
- ‘나혼자 코딩’, ‘타이핑, 디버그’ 
 제출파일: 이형록_220422_과제제출.txt 
 
- ‘1분 복습’, ‘연습 문제’의  문제&답, ‘타이핑’ 
- 실습코드 
 - 이클립스에 타이핑 (패키지, 클래스 동일하게) 
 제출파일: 이형록_220422_실습코드.txt (이클립스에서 작성한 내용을 복사) 
 
- 이클립스에 타이핑 (패키지, 클래스 동일하게) 
 
- 복습/연습문제 
다음 강의 준비
nice!!!!!!!