2022.11.03.THU

ronglong·2022년 11월 3일
0

코드스테이츠 Day11

<객체지향 프로그래밍 기초>

  1. Class
  • 객체를 생성하는데 사용되는 틀(ex.붕어빵 틀)
  • 구성요소 : 필드, 메서드, 생성자(new), 이너클래스 // 생성자 빼고 3개가 멤버
  • 객체 : 개별적인 실재, 인스턴스(ex. 붕어빵). 속성-필드, 기능-메서드. 포인트 연산자로 접근 가능.
  1. static / instance
  • 필드 : 클래스 내 변수 (클래스 변수_static, 인스턴스 변수, 지역 변수)
  • 컴파일러를 통해 프로그래밍 언어를 기계어로 번역 후, 내부에서 5개의 공간으로 데이터가 나눠서 저장/처리되는데, 그 중 3개가 각각 클래스 영역, 스택 영역, 힙 메모리 영역.
  • 클래스 변수와 클래스 메서드는 클래스 영역에 저장되며, 값을 공유하는 성질을 가짐.
    -클래스 변수는 따로 인스턴스 생성하지 않아도 사용 가능. 클래스 메서드에서는 인스턴스 변수 사용 불가.
  • 메서드 내에서 선언되는 지역 변수는 스택 영역에 저장되며, 메모리 내에서만 유효. 선언시 반드시 초기화 필요.
  • 힙 메모리 영역에 생성자를 통해 만들어진 인스턴스 변수(참조 변수)가 저장되며, 클래스 멤버의 성질을 가짐(붕어빵).
  1. 메서드
  • 메서드 시그니처 = 자바제어자 반환타입 메서드명(매개 변수)
  • 인자 : 메서드 호출 시 ()안에 들어가는 것
  • 반환 타입이 void가 아니면(static 등), 반드시 return 필요.
  • 메서드 오버라이딩 : 하나의 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것. 하나의 메서드로 여러 경우의 수 해결 가능. 반환 타입은 무관.
    • 메서드 이름 같을 것.
    • 매개 변수 개수 또는 타입 다를 것.
  1. 기타 미처 정리하지 못한 것들.
  • 삼항 조건 연산자 : return 조건 ? true일 때 값: false일 때 값;
  • 배열 저장 시 데이터 타입 모두 같아야 함.
  • 생성자 통해 배열 크기 지정 후 변경 불가.
  • Array.copyOf(복사할 원본 배열, 새로 설정할 배열 길이);
  • Arrays.copyOfRange(원본 배열, 복사할 시작인덱스, 복사할 끝인덱스);
  • System.arraycopy(복사할 원본 배열 이름, 복사 시작 인덱스 번호, 갖다 붙일 배열 이름, 붙이기 시작할 인덱스 번호, 복붙 길이);

<느낀 점>
오늘은 클래스와 필드, 메서드 등을 배웠다.
내용은 추상적이었지만, 전에 파이썬 공부할 때 개념을 조금 보고 쓴 적이 있어서 엄청 어려움이 있지는 않았다. 내가 깊게 들어가지 않아서 그런 걸지도...

시간이 좀 남아서 어제 못 푼 배열 문제를 마저 풀었다.
이제 반복문 2문제만 더 풀면 과제 제출 끝,, 너무 오래 잡고 있었던 문제들은 레퍼런스를 좀 봤다.

그런데 문제를 약간 로직을 짜서 풀긴 했지만, 안 되는 부분이 있으면 그때 그때 이렇게 해볼까? 저렇게 해볼까? 하면서 푼 부분이 많아서, 나중에 다시 풀면 못 풀 것 같은 기분...
2문제 마저 제출하고, 처음부터 문제들을 다시 차근히 봐야할 것 같다.

0개의 댓글