본문 바로가기

전체 글194

객체 배열(Object Array) 객체 배열 ㅡ 한 종류의 객체를 배열로 여러 개를 생성할 수 있다. ㅡ 객체 배열 요소엔 객체의 주소가 저장 → 참조 변수 배열(참조 변수는 변수에 주소를 저장) 참조 변수는 주소를 참조하는 변수 객체 배열 SmartPhone[] phones = new SmartPhone[3]; SmartPhone 클래스를 만들어놨다는 가정 크기 3의 객체 배열 생성 초기화 작업 for(int i=0; i 2023. 1. 3.
리터럴(literal) / 기본 타입(primitive type) / 참조 타입(reference type) / 메모리 영역 리터럴 [ literal ] ㅡ 영단어의 뜻 자체는 '문자 그대로'란 뜻을 가지고 있다. ㅡ 프로그램에서 직접 표현한 값, 변하지 않는 데이터를 의미 → 상수 int a = 7; 변수 a에 7이라는 값을 초기화하는 식을보면 a는 나중에 다시 다른 값으로 초기화 할 수 있으나, 7이라는 값은 변하지 않는 데이터이다. 7은 그 자체로 그냥 7이며 고정적인 값, 리터럴이라 부를 수 있다. 기본 타입 [ primitive type ] ㅡ byte, short, int, long / float, double / char / boolean이 기본 타입에 해당 ㅡ 기본 타입 변수는 실제 값을 변수에다가 저장한다. ex) int b = 3; // 기본 타입 변수 b에 3이 저장, b를 출력하면 3이 나온다. 참조 타입.. 2023. 1. 3.
equals()와 == String 변수를 생성하는 2가지 방법이 있다고 한다. 1. 리터럴 방식 // String a = "뉴진스"; 2. new 연산자 방식 // String a = new String("뉴진스"); 이 때 까진 항상 1번 방식만 써왔기에 2번 방법은 이번에 처음 보았다. 1번 방식의 경우 String 변수값은 Pool 영역에, 2번 방식의 경우 Heap 영역에 존재한다고 한다. Pool 영역은 변수명이 달라도 변수값이 같으면 같은 곳을 바라보고, Heap 영역은 변수값이 같아도 다른 곳에 저장된다. 간단히 eqauls()는 값 비교, ==은 주소값 비교라고 보면 된다. 그렇기에 리터럴 끼리는 값이 같으면 같은 주소를 공유하기에 ==을 써도 true고 값도 같으니 equals()를 써도 true이다. 허나 .. 2023. 1. 3.
클래스와 객체 (Class & Object), 인스턴스 (Instance) 클래스 [ Class ] - 자바에서 Class는 설계도 - 객체를 정의해 놓은 것, 객체를 생성하는데 사용 - 객체를 생성하기 위한 속성(필드, 멤버 변수)과 메소드가 정의 * * 클래스 선언은 한 파일에서 여러 개가 가능하나 파일명과 같은 클래스에만 public 접근 제한자를 붙일 수 있다 객체 [ Object ] - 정의로는 실세계에 존재하는 모든 것 - 설계도인 클래스에 따라 객체는 메모리 영역에 생성된다. - 속성(멤버 변수)과 기능(메서드)을 가지는 프로그램 단위 객체는 변수, 데이터 구조, 메서드 등 도 될 수 있는 메모리 값이다.. 객체란 뜻이 참 아리송하게 느껴진다. 클래스와 객체의 유명한 예시로 클래스는 붕어빵 틀, 객체는 붕어빵이 있다. // class : 객체를 생성하는 설계도 / .. 2023. 1. 2.
[프로그래머스 / 푸드 파이트 대회 / JAVA ] https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr food[]에 어떻게 값을 넣을지 고민했었는데 프로그래머스는 그냥 풀이식만 넣고 돌리면 food 배열에 무슨 값을 넣을지는 알아서 해주더라.. 풀이는 굉장히 간단하다고 느끼나 정답을 도출하는 과정이 꽤 걸렸다, 실력을 올려서 시간을 단축하자 #문제 접근 food 배열의 요소는 칼로리가 낮은 음식부터 차례대로 들어가며 요소 값은 해당 음식의 갯수이다. 출력은 배열의 0번 째 음식을 중간에 두고 좌.. 2023. 1. 1.
break, return, continue + for each문 break - 가장 가까이에 있는 하나의 반복문 탈출 후 진행, break 뒤에 있는 코드는 실행하지 않고 벗어남 while(true) { if(true) { System.out.println("Break!"); break; } } System.out.println("Loop Out"); 이 경우 Break!가 출력된 후 무한루프인 while문을 빠져나가고 Loop Out이 출력된다. return - 해당 메서드 자체에서 탈출 - return 뒤에 있는 코드는 실행하지 않고 벗어남 - 메서드의 출력은 return으로 돌려준다. - 메서드의 리턴 데이터타입이 void인 경우 return이 필요없다 / 다른 데이터타입의 경우 그 데이터타입에 맞는 값을 return으로 돌려 주어야한다. if(true) ret.. 2022. 12. 31.