[Java] 참조 타입

오연주·2022년 11월 11일
0

Java

목록 보기
4/7
post-thumbnail

📘 5. 참조 타입

기본 타입과 참조 타입

  • 참조 타입
    : 번지를 통해 객체를 참조한다. (메모리의 번지를 변수 안에 저장하는 것)

    기본타입참조타입
    byte, char, short, int, long, float, double, boolean배열, 열거, 클래스, 인터페이스

new연산자

  • 힙 영역에 새로운 객체를 만들 때 사용하는 연산자로 객체 생성 연산자라고 한다.

equals() 메소드

  • String객체의 내부 문자열을 비교하고 싶을 때에는 String객체의 equals()메소드를 사용해야한다.
  • 원본 문자열과 비교 문자열이 동일한지 비교 후 true, false를 리턴함
  • 사용방법: 원본 문자열.equals(비교 문자열)

배열의 특징

  1. 같은 타입의 데이터만 저장할 수 있다.
  2. 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다. (수정이 필요하다면 배열을 새로 만들어서 사용해야한다.)

명령 라인 입력

  • public static void main(String[] args) {}
    • 명령 라인(명령 프롬프트)에서 위 코드를 java 명령어로 실행하면 JVM은 길이가 0인 String 배열을 먼저 생성하고 main() 메소드를 호출할 때 매개값으로 전달한다.
    • main() 메소드는 String[] args 매개 변수를 통해서 명령 라인에서 입력된 데이터의 수(배열의 길이)와 입력된 데이터(배열의 항목 값)를 알 수 있게 된다.

배열 복사

  • for문 사용
  • System.arraycopy() 메소드 사용
    • 사용방법: System.arraycopy(원본 배열, 원본 배열에서 복사할 항목의 시작 인덱스, 새 배열, 새 배열에서 붙여넣을 시작 인덱스, 복사할 개수)

📌향상된 for문

  • 반복 실행을 하기 위해 루프 카운터 변수와 증감식을 사용하지 않는다. for문의 괄호()에는 배열에서 꺼낸 항목을 저장할 변수 선언과 콜론(:) 그리고 배열을 나란히 작성한다. 배열 및 컬렉션 항목의 개수만큼 반복하고, 자동적으로 for문을 빠져나갑니다.
    : 배열요소 하나하나 꺼내서 돌기~

    public class chap5 {
       public static void main(String[] args) {
           int scores[] = {95, 71, 84, 93, 87};
    
           int sum = 0;
           for(int score : scores) {
               sum += score;
           }
           System.out.println("점수 총합 = " + sum);
    
           double avg = (double) sum / scores.length;
           System.out.println("점수 평균 = " + avg);
       }
    }

열거 타입(enumeration type)

  • 한정된 값만을 갖는 타입
  • ex1) 요일의 데이터(월, 화, 수, 목, 금, 토, 일)
    ex2) 계절의 데이터(봄, 여름, 가을, 겨울)

열거 타입 선언

  • 열거 타입을 선언하기 위해서는 먼저 열거 타입의 이름을 정하고 해당 이름으로 소스 파일(.java)을 생성해야한다.
  • 첫 글자를 대문자로 하고 나머지는 소문자로 구성
  • public enum은 열거 타입을 선언하기 위한 키워드이며 반드시 소문자로 작성해야 함
  • 열거 상수는 모두 대문자로 작성해야하고 여러 단어로 구성될 경우에는 단어 사이에 밑줄(_)로 연결하는 것이 관례이다.

열거 타입 변수

  • 열거 타입 변수를 선언했다면 열거 상수를 저장할 수 있다. 사용방법 : 열거 타입.열거 상수
  • 열거 타입도 참조 타입이기 때문에 null값을 저장할 수 있다.

✅ 2022.11.11.(금)

항해99 Pre-Onboarding 5일차!
메모리 영역 중 힙영역, 스택영역,,,,,이 너무 헷갈린다.
내일 한 번 다시 읽어봐야겠다ㅠㅠ



다차원 배열 복사 참고 사이트

  • https://dev-note-97.tistory.com/36
    //for문을 이용해서 c배열에 b내용을 복사
    for (int i = 0; i < b.length; i++) { 
    	System.arraycopy(b[i], 0, c[i], 0, b[i].length);
    }

✅ 2022.11.12.(토)

Pre-Onboarding 6일차 마지막날!
오늘은 혼공자책 5챕터를 정리한 velog를 다시 한 번 읽어보고 남는 시간에는 git 2주차 강의를 들었다. git으로 협업시 branch생성,삭제와 merge하는 방법을 공부하고 이해했다👏
https://velog.io/@oyj4569/Git
으어 다음주부터 본과정이 시작되는데 괜히 긴장된다 ㅜㅜ 프로젝트가 별 문제없이 지나갔으면 좋겠다,,!

profile
안녕하세요. 오연주입니다!👩🏻‍🚀

0개의 댓글