전체 글
[JAVA] 분기문_break, continue
분기문 - 가장 가까운 반복문(for, while)을 종료시키는 구문 while(true) { // 무한루프 // 반복문은 조건식이 true일 때 반복 // 항상 true == 무한 반복 == 무한 루프 } System.out.println(); //Unreachable code : 도달할 수 없는 코드 } 이러한 상황에서는 에러가 나기 때문에 분기문이 필요하다. 1) break 반복문에서는 break문 자신이 포함된 가장 가까운 반복문을 빠져나가는 구문 Scanner sc = new Scanner(System.in); int sum = 0; // 합계 저장용 변수 while(true) { // 무한루프 // 반복문은 조건식이 true일 때 반복 // 항상 true == 무한 반복 == 무한 루프 Sys..
[JAVA|자바] 반복문 _for, while, do- while
반복문 : 프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 특정 문장들을 반복해서 수행하도록 함 1) for문 ( 몇바퀴 돌지 안다면 for) 구문 for(초기식; 조건식; 증감식) { 반복 수행 코드; } for(int i = 1; i
[Java] OOP 3_Constructor(생성자)
✍Constructor (생성자) 객체 생성 + 필드 초기화 + 필요 기능 수행 - 객체가 new 연산자를 통해 Heap 메모리 영역에 할당될 때 객체 안에서 만들어지는 생성된 객체의 필드값을 초기화하고 지정된 기능을 수행 하는 것이 목적. 필드 초기화 + 생성 시 필요한 기능 수행 - 생성자는 일종의 메소드로 전달된 초기값을 받아서 객체의 필드에 기록 = 일종의 기능으로 생성된 객체의 필드에 값을 집어넣는다. Korean k1 = new Korean(); ➡ Korean 클래스를 보고 새로운 객체를 만드는 기능 수행한다. ➡ () == 기능 호출 참고 파일: user 클래스, ConstructorService 1. 생성자 규칙 생성자의 선언은 메소드 선언과 유사하나 반환 값이 없으며 생성자명을 클래스명..
[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(객체지향)
✍OOP(Object Oriented Programming) Java는 객체지향언어로 여기서 말하는 객체(Object)란, 사물, 동물, 사람 , 공기, 개념처럼 '사람이 인지할 수 있는 무언가' 라고 할 수 있다. ex) 사람(object)이 문(object)을 열었다.(상호작용) -> 결과: 문이 열린다(사건) Object와 Object가 상호작용을 했더니 사건이 발생했다. 각 객체마다 각자 가지고 있는 기능과 속성이 있고, 다른 객체와 상호작용하면서 필요한 결과를 도출할 수 있다.(여러기능 수행) 현실에 존재하는 독립적이면서 하나로 취급되는 사물이나 개념으로 객체 지향 언어에서 객체의 개념은 클래스에 정의된 내용대로 메모리에 할당된 결과물(Object) 1. 객체 지향의 특징 1) 캡슐화 (Enca..
[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(배열) + 가변 배열/ 선언,할당,초기화
✍ 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|연습] 2차원 Array(배열)_기초 문제 행,열 합
📝문제 예제 👉 행과 열의 크기를 입력 받아 👉 int형 2차원 배열을 선언 및 할당하고 👉 2차원 배열의 각 인덱스에 1부터 순서대로 1씩 증가하는 수를 초기화하고 출력 예상 결과 화면) 행 크기 : 3 열 크기 : 2 1 2 3 4 5 6 Scanner sc = new Scanner(System.in); System.out.print("행 크기 : "); int rowSize = sc.nextInt(); System.out.print("행 크기 : "); int colSize = sc.nextInt(); //입력 받은 값 만큼의 크기를 가진 2차원 배열 선언 및 할당 int[][] arr = new int[rowSize][colSize]; int num = 1; //배열 요소에 대입될 값이 들어갈 변..
[Java|연습] Array(배열)_lotto(Math.random())
📝 로또 번호 생성기 👉 숫자는 1 ~ 45 👉 번호는 총 6개 👉 중복되는 숫자는 없도록 한다. 👉 오름차순 정렬 예상 결과 화면) [4, 8, 9, 14, 22, 24] int[] lotto = new int[6]; for(int i = 0; i
[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..