Backend/Java

    [Java] OOP 3_Constructor(생성자)

    [Java] OOP 3_Constructor(생성자)

    ✍Constructor (생성자) 객체 생성 + 필드 초기화 + 필요 기능 수행 - 객체가 new 연산자를 통해 Heap 메모리 영역에 할당될 때 객체 안에서 만들어지는 생성된 객체의 필드값을 초기화하고 지정된 기능을 수행 하는 것이 목적. 필드 초기화 + 생성 시 필요한 기능 수행 - 생성자는 일종의 메소드로 전달된 초기값을 받아서 객체의 필드에 기록 = 일종의 기능으로 생성된 객체의 필드에 값을 집어넣는다. Korean k1 = new Korean(); ➡ Korean 클래스를 보고 새로운 객체를 만드는 기능 수행한다. ➡ () == 기능 호출 참고 파일: user 클래스, ConstructorService 1. 생성자 규칙 생성자의 선언은 메소드 선언과 유사하나 반환 값이 없으며 생성자명을 클래스명..

    [Java] OOP 2 _Class, Field (접근제한자, 예약어, 멤버·클래스 변수)

    [Java] OOP 2 _Class, Field (접근제한자, 예약어, 멤버·클래스 변수)

    ✍Class(클래스) 객체의 특성(속성, 기능)을 정의한 일종의 설계도이다. 클래스(설계도)와 객체(완성품)는 다르다 1. 클래스 선언 [접근제한자] [예약어] class 클래스명 { } [접근제한자] [예약어] class 클래스명 {} public [예약어 생략] class Student => 클래스 선언부, 클래스 시그니처 [] (대괄호) : 생략 가능(선택) (소괄호) : 무조건 생략 🔎접근제한자 - 개발하는 프로젝트 내부에서 어디서든지 사용가능한 클래스 : public, private 참고) public : 공공의, 누구나 접근 가능하다. 🔎예약어 - 대괄호로 생략도 가능하다. : abstract, final이 예약어로 들어올 수 있다. 🔎클래스명 : 항상 대문자로 시작 2. 클래스 접근제한자 p..

    [Java] OOP 1_Object Oriented Programming(객체지향)

    [Java] OOP 1_Object Oriented Programming(객체지향)

    ✍OOP(Object Oriented Programming) Java는 객체지향언어로 여기서 말하는 객체(Object)란, 사물, 동물, 사람 , 공기, 개념처럼 '사람이 인지할 수 있는 무언가' 라고 할 수 있다. ex) 사람(object)이 문(object)을 열었다.(상호작용) -> 결과: 문이 열린다(사건) Object와 Object가 상호작용을 했더니 사건이 발생했다. 각 객체마다 각자 가지고 있는 기능과 속성이 있고, 다른 객체와 상호작용하면서 필요한 결과를 도출할 수 있다.(여러기능 수행) 현실에 존재하는 독립적이면서 하나로 취급되는 사물이나 개념으로 객체 지향 언어에서 객체의 개념은 클래스에 정의된 내용대로 메모리에 할당된 결과물(Object) 1. 객체 지향의 특징 1) 캡슐화 (Enca..

    [Java] Array(배열)_3 (배열 복사)

    [Java] Array(배열)_3 (배열 복사)

    ✍hallow copy(얕은 복사) - 참조하는 배열의 시작 주소만을 복사하는 것이다. ex) 바로가기 두 변수가 하나의 배열을 공유한다. -> 객체의 매개변수, 반환형 전달 시 사용 int[] arr = {1, 2, 3, 4, 5}; int[] copyArr = arr; // 얕은 복사 진행 ✍Deep copy(깊은복사) : 완전 다른 파일이기 때문에 원본에 영향을 주지 않는다. - 같은 값을 가진 서로다른 배열이 생긴다. - 원본 배열과 동일한 자료형, 동일하거나 더 큰 크기, 동일한 데이터를 가지는 새로운 배열을 만드는 것이다. - 원본 데이터 유지, 원본과 똑같은 배열이 필요할 때 ex) ctrl c-> ctrl v 종류 예시 얕은 복사 윈도우 바로가기 깊은 복사 원본의 복사본 📝얕은 복사 예제 ..

    [Java] 2차원 Array(배열) + 가변 배열/ 선언,할당,초기화

    [Java] 2차원 Array(배열) + 가변 배열/ 선언,할당,초기화

    ✍ 2차원 배열 1차원 배열: 자료형이 같은 변수의 묶음 2차원 배열: 자료형이 같은 1차원 배열의 묶음 * - 2차원 배열은 각 칸마다 2개의 인덱스 번호를 부여 받는다. arr[][]: 자료형이 같은 1차원 배열의 묶음으로 배열 안에 다른 배열이 존재 2차원 배열은 할당된 공간마다 인덱스 번호 두 개 부여 (앞 번호는 행, 뒷 번호는 열 ([0][0]) ) 참고) 배열 = 자료형이 같은 변수의 묶음 arr[m] [n] m :행 줄 수 n : 열 한 줄에 있는 칸 수 arr[0][0] arr[0][1] arr[0][0] ex)아파트 동 호수 1. 배열 선언 자료형[ ][ ] 배열명 ; 자료형 배열명[ ][ ] ; 자료형[ ] 배열명[ ]; 배열명 = ...............................

    [Java] Array(배열)_String[] (null)

    [Java] Array(배열)_String[] (null)

    ✍String[] 기본자료형 8가지(byte.), 가 아닌 나머지들 String은 정해진 byte크기가 없다. 그래서 stack에서는 주소만 저장하고 heap에 값이 저장된다 string배열의 메모리 구조 Heap영역에는 초기화를 해주기전에는 값이 없다. double의 초기값 0.0 int의 초기값 0 String과 같은 참조형 변수의 기본값 : null null의 의미 : 참조하고있는 주소가 없다. (비어있다x) heap영역은 변수가 비어있을 수 없기 때문이다. 코드 예제 String str1 = "Apple"; String str2 = "Banana"; String[] arr = new String[3]; arr[0] = "Hello"; arr[1] = "안녕"; arr[2] = "Hi"; Syste..

    [Java] Array(배열)_2 (초기화, Arrays 클래스, Arrays.toString)

    [Java] Array(배열)_2 (초기화, Arrays 클래스, Arrays.toString)

    ✍Array(배열) 초기화 공통 사항 👉 int[] 참조형 변수 arr을 선언한 후 👉 arr에 새롭게 생성된 int 5칸짜리 배열의 시작 주소를 대입 👉 배열의 각 인덱스 요소에 2,4,6,8,10을 대입 1. Index를 이용한 초기화 int[] arr1 = new int[5]; arr1[0] = 2; arr1[1] = 4; arr1[2] = 6; arr1[3] = 8; arr1[4] = 10; ➡ 각 인덱스마다 값을 대입하는 방식 2. Array + for문 같이 사용 for문을 같이 사용하는 경우 : 배열의 특정 인덱스 범위에 값을 대입할 경우 사용한다. int[] arr2 = new int[5]; for(int i = 0; i < arr2.length; i++) { arr2[i] = i * 2 ..

    [Java] Array(배열)_기초1

    [Java] Array(배열)_기초1

    ✍Array(배열) 같은 자료형의 변수를 하나의 묶음으로 다루는 것을 의미한다. 묶여진 변수는 하나의 배열명으로 부른다. index를 통해 묶어둔 변수를 구분한다. (index 번호는 0부터 시작한다.) 참고) 1) 다른 자료형들이 묶인건 구조체로 c++에서 사용하고 자바에서는 사용하지 않는다. 1. 배열 선언 int[] arr1; int arr2[]; 자료형[] 배열명; => [ ]가 어디 붙어도 상관없지만 주로 이걸 쓴다. 자료형 배열명[]; [ ] : 배열 기호 Stack 메모리 영역에 int[] 자료형 변수 arr1을 선언. 2. 배열 할당 int[] arr1 = new int[3]; 자료형[] 배열명 = new 자료형[배열크기]; : new int[3] 구문을 통해 할당된 메모리 공간의 주소를 ..

    [Java] Operator(연산자) 종류

    [Java] Operator(연산자) 종류

    ✍ Operator(연산자) 정의: 주어진 식을 계산하여 결과를 얻어내는 과정인 연산을 수행하는 기호 3 + 2 * 4 ➡ *, + 는 산술 연산자 ➡ 우선순위에 따라 * , + 순서대로 연산한다. 선 : * / % // 후 : + - ✔ 연산자 우선순위 공부할 때 종류 먼저 파악하면 좋다. 참고) (자료형) : 강제형변환에서 사용한 것 ex) (int), (double)등 🔎 단항, 이항, 삼항? 연산자가 하나의 숫자에 영향을 끼치면 : 단항 연산자가 두개의 숫자에 영향을 끼치면 : 이항 연산자가 세개의 숫자나 변수에 영향을 끼치면 : 삼항 1. 증감연산자(++, --) 피연산자를 1 증가시키거나 1 감소시키는 연산자로, 연산자 우선순위에서 전위만 우선순위 2번째이고 후위연산은 우선순위 최하위이다. 1..