2 minute read

자바프로그래밍 - 3

  • 클래스와 객체(2)
  • static 변수
  • 배열(Array)과 ArrayList



복습

  • 클래스 ex. Student lee = new Student();
    • Student : 클래스
    • lee : 참조변수
    • new : 객체 생성 위한 키워드(예약어)
    • Student() : 생성자
  • 클래스 구성
    • 멤버변수 : 클래스 속성

      인스턴스변수 or 필드값이라고도 함

    • 메서드 : 클래스 기능
  • 생성자
    • 툴에서 기본 생성자 제공
    • 단, 임의로 만든 생성자 양식 있을 경우 기본 생성자는 없어짐!!

      즉, 만들어진 생성자 양식에 맞는 인스턴스만 생성됨

    • 필요하면 기본 생성자 하나 적어 주면 됨!
  • 참고
    • 코드 내, 여러 개의 간단한 클래스 작성 가능

      단, ‘public’ class의 클래스명은 파일명과 반드시 동일해야 함!!



클래스와 객체 - 6. 정보 은닉(계속)

  • 4/28(목) 설명 예정



클래스와 객체(2) - 1. this 예약어

  • 생성된 인스턴스 스스로를 가리키는 예약어
    • 자신의 메모리를 가리키거나,
      • 같은 이름, 다른 형식의 생성자를 호출하거나,
      • 자신의 주소를 반환



클래스와 객체(2) - 2. 객체 간 협력

  • 객체를 클래스로 만들어 구현한 뒤의 상호작용
    • 서로 값을 주고 받는다.
    • 서로 메서드를 호출 한다.
  • 교재 p.175 ~ 179 참고!!
    cooperation



클래스와 객체(2) - 3. static 변수

  • 클래스에서 공통으로 사용하는 변수를 ‘static 변수’로 선언!!
    • 프로그램 실행되면, 딱 한 번 메모리 공간 할당
    • 그 값은 모든 인스턴스가 공유!!
  • 문법
    • static int(자료형) serialNum(변수명);
  • 클래스 변수
    • static 변수는 클래스 이름으로 직접 참조 가능!
      static

  • 클래스 메서드와 인스턴스 변수
    • static으로 선언한 메서드에서는 인스턴스 변수 사용 불가!
      staticMethod



클래스와 객체(2) - 4. 변수 유효 범위

변수 유형 선언 위치 사용 범위 메모리 생성/소멸
지역 변수 함수 내부 함수 내부 스택 함수 호출 때 생성, 함수 끝나면 소멸
멤버 변수 클래스의 멤버 변수 클래스 내부, private 아니라면 참조변수로 다른 클래스에서도 사용 가능 인스턴스가 생성과 동시에 생성, 가비지 컬렉터가 메모리 수거할 때 소멸
static 변수 static 사용하여 클래스 내부에 클래스 내부, private 아니라면 참조변수로 다른 클래스에서도 사용 가능 데이터 영역 프로그램 시작할 때 생성, 프로그램 끝날 때 소멸



클래스와 객체(2) - 5. static 응용 - 싱글톤 패턴

  • 객체 지향 프로그램에서 인스턴스를 단 하나만 생성하는 ‘디자인 패턴’
    • 실무, 여러 프레임워크에서 자주 사용하는 패턴
    • 참고! 디자인 패턴? -> 정형화/최적화 된 형식!



배열(Array)과 ArrayList - 1. 배열?

  • 배열: 동일한 데이터 타입의 여러 자료, 순차적으로 관리하는 구조
  • 문법
      1. 자료형[] 배열 이름 = new 자료형[개수];
      1. 자료형 배열 이름[] = new 자료형[개수];
  • 생략 문법
      1. 자료형 배열 이름[] = new 자료형[] {1, 2, 3...};
      1. 자료형 배열 이름[] = {1, 2, 3...};

        선언과 동시에 초기값 입력 가능

  • 객체 배열
    bookArray

    bookArray2

  • 배열 복사하기
    • 얕은 복사 : 배열, 각 요소의 주소값만 복사 => 동일 인스턴스를 가리킴

      배열의 변수값이 변경되면, 복사 대상 배열도 바뀜(같은 주소값이니까!)

    • 깊은 복사 : 배열, 각 요소의 변수값만 복사 / 주소값은 여전히 다름!!
      arrayCopy

  • 향상된 for문과 배열
    enhancedForLoop



배열(Array)과 ArrayList - 2. 다차원 배열

  • 문법
    • 자료형 [ ][ ] 배열 이름 = new 자료형 [행 개수][열 개수];
  • p.219쪽 그림 확인!!



배열(Array)과 ArrayList - 3. ArrayList 클래스

  • 객체 배열을 관리할 수 있는 멤버 변수와 메서드 제공
  • 문법
    • ArrayList<E> 배열 이름 = new ArrayList<E>();

      <E>와 같은 형태 = ‘제너릭(generic)’, 담을 데이터들을 포괄하는 라벨!






과제, ~5/4(수)까지 제출

  • 범위: 교재 p.170 ~ p.230
    1. 복습/연습문제
      • ‘1분 복습’, ‘연습 문제’의 문제&답, ‘타이핑’
      • ‘나혼자 코딩’, ‘타이핑, 디버그’

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

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

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

    3. 보충자료 확인



기타(팁)

  • 공부 방법
    • 다른 사람 가르치기
  • 독서 방법
    • 주변시
    • 속발음X
    • 손가락/펜으로 짚어가며
  • 메모 방법 by 김익한 교수(기록학자)
    • 한 단락, 키워드 2~3개 추출, 나머지는 삭제



다음 강의 준비








nice!!!

Updated: