객체1-3) 생성자부/접근제한자
객체1-3) 생성자부/접근제한자
2022.04.03생성자 : 메소드 이름이 클래스 이름과 동일하고 리턴 자료형이 없는 메소드(반환형이 없다.) 생성자가 왜 필요한가요? 객체를 생성할때 메모리 공간을 할당받아야 되는데 빈공간이 있을 수 없기 때문에 기본값이라도 넣어주는 기본생성자가 만들어지고 또는 임의로 초기값을 설정하고 싶을때 매개변수 생성자를 이용해서 설정 가능합니다. 객체 생성 구문중 new 부터 ex) User u = new User(); [표현법] public 클래스명 (매개변수(생략가능)) { 만약 매개변수 생성자라면 필드 초기화 구문이 들어갑니다. ex) this.userId= userId; (매개변수가 userId일때) 생성자의 종류 1. 매개변수가 있는 생성자 2. 매개변수가 없는 생성자 -> 두개의 차이 필드값을 초기에 설정하냐 마냐의 ..
객체1-2.) 추상화/캡슐화/setter함수/Getter함수
객체1-2.) 추상화/캡슐화/setter함수/Getter함수
2022.04.01https://kwanghyung.tistory.com/entry/%EA%B0%9D%EC%B2%B4-1-1%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%EC%96%B8%EC%96%B4%EC%B6%94%EC%83%81%ED%99%94%EC%BA%A1%EC%8A%90%ED%99%94%EB%B3%80%EC%88%98 객체 1-1./객체지향언어/추상화/캡슐화/변수 자바에서 시작 혹은 자바의 꽃을 묻는다면 객체를 얘기 안 할 수 없습니다. 자바언어의 본질과 객체지향언어, 객체,클래스등등에 대해서 얘기해보겠습니다. 객체 지향 언어 : 객체 지향언어란 kwanghyung.tistory.com 추상화와 캡슐화에 대해서 더 얘기해보겠습니다. 추상화는 객체 변수를 생각하여 적절하게 객체에 넣을 수 있는..
객체 1-1./객체지향언어/추상화/캡슐화/변수
객체 1-1./객체지향언어/추상화/캡슐화/변수
2022.03.30자바에서 시작 혹은 자바의 꽃을 묻는다면 객체를 얘기 안 할 수 없습니다. 자바언어의 본질과 객체지향언어, 객체,클래스등등에 대해서 얘기해보겠습니다. 객체 지향 언어 : 객체 지향언어란 객체를 지향하는 언어로써 객체 중심으로 돌아갑니다. 그렇다면 객체란 무엇일까요? 모든것을 말할 수 있습니다. 사물,개념,무형,유형...등등 객체 지향 프로그래밍 : 현실세계에서 독립적으로 존재하는 것들간의 상호작용(행위)을 코드로 구현하는 과정입 니다. 구현하고자 하는 프로그램의 상의 객체를 만들기 위해 클래스라는 틀을 만들어야 합니다. 그렇다면 클래스는 무엇일까요? 클래스는 틀,구조입니다. 그 틀,구조은 각 객체의 속성(정보,행위)등을 담아냅니다. 클래스를 만드는 과정은 1) 추상화 과정 2) 캡슐화 과정입니다. 추상화..
배열복사 arraycopy()/Arrays.copyOf/clone
배열복사 arraycopy()/Arrays.copyOf/clone
2022.03.281. arraycopy() 새로운 배열을 생성 한 후에 System 클래스에서 arraycopy 메소드를 불려와서 사용한다. 몇번 인덱스에 몇개를 어느 위치에 넣을건지 직접 지정이 가능하다. System.arraycopy( 원본배열, 원본배열시작위치(인덱스), 복사배열, 복사배열시작위치(인덱스), 복사할 길이); copy 배열의 길이는 10이며, 4에서 9까지 인덱스에서 배열을 복사합니다. Hashcode는 주소값을 비교한다고 생각하면 됩니다. 깊은복사라서 주소값은 다르며, copy 배열의 복사가 잘 된것을 확인 할 수 있습니다. 2. Arrays.copyOf 복사본 배열 = Arrays.copyOf(원본배열,새로운배열길이); 역시 hashcode값은 다르다. 인덱스 설정이 불가능하고 원본배열의 0번 인..
배열복사
배열복사
2022.03.27배열복사에는 2가지가 있습니다. 배열 복사 1. 얕은 복사 : 배열의 주소값만 복사합니다. (같은 객체를 참조합니다.) 2. 깊은 복사 : 새로운 배열을 만들고 기존 배열에 있는 데이터를 복사합니다. 1. 얕은 복사 얕은 복사는 배열을 만들 때 주소값을 참조합니다. 즉, int [] copy =origin을 하면 다음 표와 같이 arr2가 arr1의 배열이 참조하고 있는 heap영역의 주소값만 참조한다는 뜻입니다. 그렇다면 과연 arr1에서 값이 바뀌면 arr2도 값이 바뀔까요? 정답은 주소참조라서 그렇다입니다. 2. 깊은 복사 즉 주소 참조가 아닌 각각의 인덱스를 for문을 통해서 넣어줍니다. copyp[i]= origin[i] 그렇다면 다음과 같은 깊은 복사는 주소가 아닌 하나의 heap영역에 배열 ..
배열 array 예제/최대값/최소값/문자길이,개수/
배열 array 예제/최대값/최소값/문자길이,개수/
2022.03.26예제1) 사용자에게 입력을 통해 배열에 값을 담아서 해당 배열에 가장 작은값 즉 최소값을 구하는 프로그램 작성. 배열을 받아 최대값, 최소값을 구하는 예제는 대표적 예제중 하나입니다. 배열의 크기는 5라고 가정합시다. 즉, arr[0]~arr[4]까지 입력을 받고 그 값들 중 최소값을 구합니다. For문을 통해 i=0에서 arr.length까지 arr[0]부터 받아줍니다. arr[i]=sc.nextInt();로 받습니다. 제가 항상 어려워했던 것 중 하나는 변수를 두는것입니다. 즉, 최소값을 구하던, 최대값을 구하던 그 값을 받아줄 변수를 두어야 하는것에 항상 제가 어려워했습니다. int min=1000; 즉 입력 받는 값을 0~1000까지라고 가정했습니다. 여기서 for문을 통해서 if문을 두어 min..
배열 Array
배열 Array
2022.03.25배열의 정의 변수 : 하나의 공간에 하나만 넣을 수 있습니다. 배열 : 하나의 공간에 여러개의 값을 담을 수 있습니다. 단, 같은 자료형만 담을 수 있습니다. 배열의 각 인덱스 위치에 값을 담을 수 있습니다.(방이 나뉘어져있습니다.) 각 방의 크기가 같습니다.(자료형 크기) ex) int [] : 각 인덱스방의 크기가 4byte 배열의 선언 자료형[] 배열명; ex) int[] arr1; double[] arr1; 배열의 할당 자료형[] 배열명= new 자료형[배열의 크기]; => 배열의 크기 :몇 칸짜리 배열을 만들건지 설정합니다. ex) int[] arr1; => 배열의 선언 arr1 = new int [5]; => 선언한 배열에 할당하기 /배열의 크기 : 5 int [] arr2 = new int[..
Break문/Continue문
Break문/Continue문
2022.03.24Break문 Break문 : break를 만나는 순간 break문에 속해 있는 가장 가까운 반복문을 벗어납니다. 즉 해당 break문에 속해 있는 반복문 1개만 벗어납니다. 주의 할점은 Switch문 안에 있는 break문과는 성격이 다릅니다. Switch문에 있는 break문은 switch문을 벗어났습니다. 예제1) 해당문자열을 입력받아 해당 문자열의 길이를 출력해보자 단, exit를 입력받으면 반복문을 빠져나가게 해보자. While(true)문을 이용하여 매번 사용자에게 문자열을 입력받도록 구현합니다. 문자열의 길이는 해당 변수를 str로 잡았기 때문에 str.length라고 할 수 있습니다. 사용자가 exit를 입력하면 반복문을 빠져나가야 하므로 exit구문에서 break문을 사용하여 while문을..
while문/do while문
while문/do while문
2022.03.23while문 괄호 안에 조건이 true일 경우 해당 구문을 반복적으로 실행합니다. 조건식 부분에 true를 넣으면 무한반복이 됩니다. 예를 들어서 Scanner 클래스로 입력을 받아 계속적인 입력을 받고 싶을때 while문에 true를 조건식을 넣으면 됩니다. while(조건식) { 반복적으로 실행시킬 코드 증감식; (필수는 아니다.) } while문을 만나는 순간. 조건식을 검사 -true-실행 조건식을 검사 -false-탈출(반복문을 빠져나감) 예제1) 1~100까지의 짝수만 출력하기 예제2) 30일동안 다이어트를 위해서 푸쉬업하기 첫날에는 10개 다음날부터 전날보다 3개씩 더 할 계획 일자별로 하게되는 푸쉬업 개수를 구해서 출력 30일 동안 하게 되는 푸쉬업 개수를 구해서 출력 변수 day, pus..
for문 예제
for문 예제
2022.03.22https://kwanghyung.tistory.com/entry/For%EB%AC%B8
For문
For문
2022.03.21For문 괄호안의 반복을 지정하는 부분이 있다. 초기식, 조건식, 증감식 세가지로 이루어져 있습니다. for(초기식; 조건식; 증감식) { 실행될 코드 } -초기식 : 반복문이 시작될때 "초기에 단 한번만 실행"될 구문. 반복분이 사용할 변수를 선언하고 초기화하는 구문. ex) int i =0; -조건식 : "반복문이 실행 될 조건" 을 작성하는 구문. 조건식이 true일 경우에 반복문을 실행합니다. 조건식이 false일 경우에 반복문을 빠져나옵니다. 보통 초기식에서 만든 변수를 가지고 조건식에 작성. ex) i 조건식(검사) -> true 일 경우 {}안에 있는 코드를 실행합니다. -> 증감식 -> 조건식(검사) -> true일 경우 실행 -> 증감식-> 조건식 .... false일 경우 코드 실행하지..
Switch문
Switch문
2022.03.20https://kwanghyung.tistory.com/9 Printf문 Printf 출력문에 대해서 얘기하고자 합니다. printf문은 형식값을 주기 때문에 연산자가 들어있어 형식을 간단히 나타내거나, 오른쪽 정렬, 왼쪽 정렬, 소수점자리에서의 반올림등을 설정 할 수 kwanghyung.tistory.com https://kwanghyung.tistory.com/7 Scanner 클래스로 입력 받기 Scanner클래스? 스캐너 클래스에서 입력을 받는 것을 해보겠습니다. 스캐너 클래스에서 함수를 사용하기 위해서는 import문으로 선언합니다. 위의 import문은 java에 있는 util에 있는 Scanner 클래스를 kwanghyung.tistory.com Switch문 switch문을 통해서 if문,..