3 minute read

자바프로그래밍 - 2

  • 어제 내용 복습
  • 비트 연산자
  • 조건문/반복문
  • 클래스와 객체



복습

  • java:
    • wora(write once run anywhere): 다양한 플랫폼에서 된다
    • oop(object oriented programming): 객체지향 프로그래밍
  • java 자료형:
    • 정수: byte(1), short/char(2), int(4), long(8)
    • 실수: float(4), double(8)
  • 요소별 작성법:
    • 패키지 - 소문자
    • 클래스 - 파스칼 케이스
    • 변수/메서드 - 카멜 케이스
  • 디버깅(중요!)
    • 줄번호에 break point 지정
    • F11 디버깅 실행
    • step into(F5): 메서드, 반복문, 특정 부분에 들어갈 때
    • step over(F6): 다음 단계로 진행
    • exit(F7): 빠져나옴
    • terminate(ctrl+F12): 디버깅 종료



자바의 연산자 - 1. 기본 연산자

  • 복합 대입 연산자

    ex. num1 += 2; = num1 = num1 + 2;

  • 조건 연산자 = 삼항 연산



자바의 연산자 - 2. 비트 연산자

  • 비트 연산?
    • 각 값들이 2진수 형태로 연산됨
    • 비트 단위 연산 수행.. 속도 빠름!
    • 프로그램에서 특정 값을 만들거나 연산할 때 사용
  • 비트 논리 연산자

    |(or) 연산: 비트값이 하나라도 1이면, 1출력
    ^(xor) 연산: 비트값이 같으면 0, 다르면 1 출력
    ~(반전) 연산: 비트값, 0은 1로 1은 0으로 바꿔 출력

  • 비트 이동 연산자

    << n : 왼쪽으로 비트 이동 = 기존 값 * 2^n
    >> n : 오른쪽으로 비트 이동 = 기존 값 / 2^n

    • 연산자 우선순위
      • 단항 > 이항 > 삼항
      • 산술 > 관계 > 논리 > 대입
      • 대입 연산자 우선순위가 가장 낮다
      • ( ) 의 우선순위가 가장 높다



제어 흐름 이해 - 1. 조건문

  • 주어진 조건에 따라 결과값 다르게 출력
  • if문 / if-else문
    ifEx

    ifEx2

  • switch-case문
    • 조건식의 결과가 정수/문자열이고, 그 값에 따라 수행문이 다를 때 사용
    • 코드 깔끔, 가독성 up
    • case별로 break; 꼭 사용!
    • 케이스값은 숫자/문자열 모두 가능
      switchEx

      switchEx2



제어 흐름 이해 - 2. 반복문

  • while문
    whileEx

  • do-while문
    • while문은 조건식 먼저 확인 후 실행
    • do-while문은 일단 실행 후 조건문 확인
      doWhileEx

  • for문
    • 문법: for(초기화식; 조건식; 증감식) { 수행문; }
    • while문보다 가독성 좋음!
      forEx

  • continue문
    • 특정 조건을 건너뛸 때 사용
    • continue문을 만나면,
      직전의 ‘조건식’&’증감식’으로 되돌아감

      continueEx

  • break문

    수행문 반복을 중단할 때 사용
    breakEx



클래스와 객체 - 1. 객체지향 프로그래밍과 클래스

  • 객체지향 프로그래밍
    • 객체: 의사, 행위가 미치는 대상
    • 어떤 대상(객체)을 가지고 프로그래밍 함
    • 즉, 객체를 만들고 객체들 사이에 일어나는 일을 구현!
  • 클래스
    • 객체들 만드는 틀!
    • 객체의 속성(멤버변수), 기능(메서드)을 구현
    • 클래스 생성: (접근 제어자) class 클래스명 { 멤버변수; 메서드; }
    • 객체 생성: 클래스명 객체명 = new 클래스명();
      classEx

  • 패키지
    • 클래스 파일의 묶음
    • 파일을 담는 폴더와 같음



클래스와 객체 - 2. 메서드

  • 함수 정의/호출
  • 반환값(return)
    • 없으면 ** void **
    • 있으면 해당 자료형(int, String 등)
      function

  • 스택 메모리
    • 함수를 호출하면 그 함수를 위한 메모리 공간(스택) 이 할당됨
    • Last In, First Out / First In, Last Out
    • 즉 A-B-C 순으로 호출됐다면, C-B-A 순으로 스택 해제!



클래스와 객체 - 3. 클래스와 인스턴스 ★매우 중요★

  • 클래스: 멤버변수, 메서드로 구성됨
    • 멤버변수: 클래스의 속성
    • 메서드: 클래스의 기능
      동일 패키지 안에서는 파일이 다르더라도.. 클래스 공유!!
  • 인스턴스: 클래스가 메모리 공간에 생성된 상태

    생성된 클래스의 인스턴스를 ‘객체’라고..
    instance

  • 인스턴스의 참조변수 사용
    • 참조변수.멤버변수 / ex. student1.studentName = "길동";
    • 참조변수.메서드 / ex. student1.getStudentName();
  • 용어 정리
용어 설명
객체 객체 지향 프로그램의 대상
클래스 객체를 프로그래밍하기 위해 코드로 만든 상태
인스턴스 클래스가 메모리에 생성된 상태
멤버 변수 클래스의 속성, 특성
메서드 멤버 변수를 이용하여 클래스의 기능을 구현
참조 변수 메모리에 생성된 인스턴스를 가리키는 변수
참조 값 생성된 인스턴스의 메모리 주소 값



클래스와 객체 - 4. 생성자(constructor)

  • 개념
    • 클래스 이름이 곧 생성자 이름
    • class를 만들 때 호출하여, 멤버변수/상수를 초기화
    • 반환값 없음!
  • 문법
    constructor

  • 오버로드(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. 복습/연습문제
      • ‘1분 복습’, ‘연습 문제’의 문제&답, ‘타이핑’
      • ‘나혼자 코딩’, ‘타이핑, 디버그’

        제출파일: 이형록_220422_과제제출.txt

    2. 실습코드
      • 이클립스에 타이핑 (패키지, 클래스 동일하게)

        제출파일: 이형록_220422_실습코드.txt (이클립스에서 작성한 내용을 복사)



다음 강의 준비








nice!!!!!!!

Updated: