자바
[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..
[Java|연습] Array(배열)_초기화
📝 초기화 문제 1 👉 int 자료형 배열 5칸짜리를 선언 및 할당 👉 각 배열 인덱스 요소에 입력 받은 정수를 대입하고 👉 입력이 완료된 후 한번에 출력 예상 결과 화면) 입력 0 : 10 입력 1 : 5 입력 2 : 17 입력 3 : 30 입력 4 : 100 Scanner sc = new Scanner(System.in); int[] arr = new int[5]; for(int i = 0; i < arr.length; i++) { System.out.print("입력 "+ i + " : "); arr[i] = sc.nextInt(); } System.out.println(Arrays.toString(arr)); } 풀이 1. 조건에 맞게 int[] 자료형 배열선언 2. for문을 통해 인덱스값이 0..
[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
✍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] 소수 판별 문제_for, if, flag
📝소수 판별 조건 👉 사용자로부터 입력 받은 정수가 소수인지 판별하는 프로그램 👉 소수: 1과 자기 자신으로 나눴을때 0 이 나오는 수 👉 단, 입력받은 수가 2보다 작을 경우 " 잘못 입력하셨습니다." 출력 출력 화면) 입력 : 5 소수입니다. 입력 : 1 잘못 입력하셨습니다. ⭕ 풀이 코드 Scanner sc = new Scanner(System.in); System.out.print("입력 : "); int input = sc.nextInt(); if(input < 2) { System.out.println("잘못 입력하셨습니다."); } else { boolean flag = true; //소수 판별용 변수 for(int i = 2; i < input; i++ ) { //모든 수는 1은 나눠지니깐..