728x90

Java/study 34

클래스와 객체

우리가 객체를 만들기 위해서는 항상 클래스를 먼저 선언 해주어야한다. 객체의 상태를 표현하는것을 멤버변수(속성, 필드, 어트리뷰트)라고 할 수 있으며, 객체의 행동(기능)을 멤버함수 또는 메서드라고 한다. 멤버함수(메서드)를 사용할 때는 기본형(void 또는 자료형)을 적어야하고 기능을 구현한 후 input과 output을 확인하여 올바른지 체크하여야 한다. 멤버변수는 인스턴스(객체) 변수라고도 부르며 객체끼리 값을 공유하지 않기 때문에 객체마다 고유한 값을 가지고 있다. 객체끼리 값을 공유하는 변수는 클래스 변수라고 하며 객체끼리 값을 공유한다는 것은 같은 클래스를 이용하는 a객체의 변화가 b객체에도 영향을 준다는 의미이다. 클래스변수는 변수의 자료형 앞에 static(객체와 무관하게)를 붙여 사용한다..

Java/study 2022.06.16

객체 지향 프로그래밍(OOP)

객체지향 프로그래밍(OOP)에는 4가지 특징이 있다. 1. 추상화 추상화를 어떻게 진행하느냐에 따라 앞으로의 객체를 정의할 수 있게 되며 설계라고도 할 수 있다. 예를 들면 우리가 자동차라라고 말을 할 때 누군가는 승용차를 누군가는 버스를, 스포츠카를, SUV를 떠올릴 수 있을 것이다. 이것들은 바퀴가 달려있고 창문이 있으며 엔진이 달려있다. 이런 공통적인 부분들을 모아 Car라는 class로 관리할 수 있을 것이다. 이렇게 데이터의 의미나 수행과정이 비슷한 개념들을 묶어 정의(선언)하는 것을 추상화라고 한다. 2. 캡슐화 자바에서 우리가 Scanner나 Random과 같은 객체를 이용할 때 구성은 모르지만 사용법만 알아도 사용이 가능하다. 캡슐화는 클래스 내부의 변수와 메서드를 하나로 묶어주는 특징을 ..

Java/study 2022.06.15

함수(function,method)

함수는 어떤 문제를 해결하기 위한 소스코드를 묶어 동작하도록 구현하여 필요에 따라 메인 함수 안에서 호출하여 사용하는 기능이라고 할 수 있다. 함수를 선언하게 되면 반복문처럼 코드의 재사용성이 증가되고 그로 인해 오류의 파급효과가 줄어들고 유지보수에도 용이하다. 함수의 선언 시 public static 리턴 타입(void, 자료형) 메서드명() { 실행할 코드; return; // 리턴 타입이 void라면 return값이 없다. } 위와 같은 모습으로 사용되는데 리턴 타입으로는 자료형이나 void가 올 수 있는데 자료형이 사용되는 경우 반드시 return값이 있어야 하며 void가 사용될 경우는 return(반환 값)이 없다. return 이후에는 함수의 동작이 끝나게 되어 뒤에 다른 구문이 올 수 없다..

Java/study 2022.06.14

이진탐색(이분검색)

이진탐색은 탐색할 대상 배열이 정렬되어있을 때만 사용할 수 있는 탐색법이다. 배열의 중앙에 있는 값을 이용하여 찾고자 하는 항목이 기준값의 왼쪽 있는지 오른쪽에 있는지를 알아내어 탐색범위를 반으로 줄일 수 있다. 값이 속해있지 않은 부분은 고려하지 않아도 되기 때문에, 매 단계에서 탐색 범위를 반으로 줄여 나갈 수 있다. 데이터의 삽입이나 삭제가 빈번한 경우에는 적합하지 않고, 주로 고정된 데이터에 대한 탐색에 적합하다. 탐색되어야 할 범위의 인덱스[0]를 Low, 인덱스(n-1)를 High라고 할 때 중간값 Mid는 (low+high)/2이다. 구하고자 하는 값이 중간값보다 높다면 low를 mid+1로 만들어주고(탐색범위 오른쪽 반으로 줄어듬) 중간값보다 낮다면 high를 mid-1로 만들어 준다.(탐..

Java/study 2022.06.13

최대값 찾기

배열을 이용한 최대값 찾기는 최대값 max의 초기값을 Index [0]으로 단정 지어 기준값을 잡은 다음 Index [1]부터 [4]까지의 값들과 비교해가며 최대값을 찾는다. 최대값의 위치(index)를 알고 싶다면 변수를 생성하여 위치 값을 저장해주며 초기화를 진행해준다. 초기화를 진행해야하는 이유는 최대값이 Index [0]에 존재할 때 값을 할당받지 못하기 때문이다. 변수 max에 저장된 값이 비교되는 값보다 더 크지 않을 시 비교값과 교환하여 로직을 진행한다. 즉, max의 초기값을 Index[0]이라하고 Index [1]과 비교하여 max값이 작다면 Index [1]의 값이 max의 값으로 교환된다. 이런 식으로 반복 진행하여 배열의 최대값을 찾아내며 배열의 크기가 5라고 가정한다면 최대 4회 ..

Java/study 2022.06.13

정렬(버블 정렬)

배열은 자료구조와 알고리즘이 더해진 것으로 비슷한 데이터를 같은 곳에 저장하기 위해 주로 사용한다. 하지만 데이터를 저장할 때 무작위로 저장하게 되면 다음에 데이터를 찾을 때 처음부터 끝까지 다시 탐색할 수밖에 없다. 배열을 사용하는 것은 여러 개의 데이터를 다루는 상황으로 탐색(검색)을 하는 상황이 오기 때문에 탐색을 효율적으로 하기 위해서는 데이터를 저장할 때 정렬을 해준다. 배열의 정렬 알고리즘으로는 버블, 삽입, 선택, 퀵, 셀, 도수,.... 등이 있다. 이 중 버블정렬은 두 개의 인덱스 값을 서로 비교해가며 기준이 된 값을 뒤로 넘겨가며 정렬하는 방법이다. 예를 들어 숫자가 작은 순서대로 정렬을 한다고 할 때 [ 5, 4, 3, 1, 2] -> [ 4, 3, 1, 2, 5] 이와 같은 모양이 ..

Java/study 2022.06.13

배열

배열이란 동일한 자료형의 비슷한 데이터들을 연속된 공간에 저장하기 위한 자료구조이다. 연관된 자료들을 묶어 한 공간에 넣는다고 할 수 있다. 배열을 사용하게 되면 관련된 데이터들을 저장하기 위한 변수의 선언을 줄여주며 반복문 등과 함께 사용하여 원하는 과정을 쉽게 처리할 수 있다. 자료형 [] 객체 = {데이터 1, 데이터 2, 데이터 3,......} 자료형 [] 객체 = new 자료형 [원하는 수] 배열은 위 모습과 같이 사용되며 저장된 데이터들은 인덱스 번호가 주어지며 [0] 번부터 시작된다. ex) 데이터 1 = [0], 데이터 2 = [1], 데이터 3 = [2] 배열을 이용하여 객체에 공간을 할당해주면 데이터 값을 넣지 않아도 초기화를 디폴트로 해준다. 배열의 3요소로는 1) 서로 관련된 데이..

Java/study 2022.06.10

제어문(반복문)

반복문에는 while과 for가 있다. while : 어떤(특정) 조건을 만족할 때까지 계속, ~~ 할 때까지 반복, 무한하게, 영원히 for : N번, N회, a부터 ~ b까지, 배열, 범위가 분명하게 주어졌을 때 위와 같은 상황일 때 주로 사용된다. 반복문을 사용하는 이유로는 재사용되어 중복되는 코드를 최소화할 수 있고 그로 인해 오류의 파급효과가 줄어들게 된다. while(조건식) { 조건식이 참 일동 안 수행할 문장; } for(초기식;조건식;증감식){ 수행할 문장; } 과 같이 사용되며 if문과 비슷한 구조를 이루고 있다. 반복문을 수행하는 중에는 절대로 }를 통과하지 못하며 문장 진행 후 다시 반복문의 조건식으로 이동한다. 그러다 반복문을 수행할 수 없는 조건이 되면 반복문 밖으로 이동된다. ..

Java/study 2022.06.09

제어문(조건문)

제어문에는 조건문과 반복문이 있다. 조건문에는 if와 switch가 있으며 주로 할 때도 있고, 안 할 때도 있는 경우의 뉘앙스로 사용한다. switch로 사용 가능한 문구들은 if로 대체 사용 가능하여 if를 주로 사용한다. (물론 switch가 더 효율적인 경우도 있음) 반복문에는 while과 for가 있으며 2회 이상, N번, N회, 연속적으로, 계속, 무한하게, 여러 번,... 과 같은 경우 사용할 수 있다. if(조건식){ 조건식이 참일 때 수행할 문장; } if문의 경우 위와 같은 형식으로 사용하며 조건식 1줄만 사용할 경우 {} 생략 가능하지만 가독성을 위해 붙여주도록 하며, 이후 다양한 조건식을 붙이기 위해 else if 와 else를 사용한다. 다양한 조건식들이 들어갈수록 우리는 항상 유..

Java/study 2022.06.08

스캐너와 객체

자바에서 사람의 입력값을 전달하기 위한 객체로서 Scanner를 사용하는데 이를 알기 위해선 객체라는 것을 알고 넘어가는 것이 좋다. 많이 들어봤다시피 Java 또는 파이썬과 같은 것들을 객체지향 언어라고 한다. 프로그래밍에서 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 뜻하는데 int a = 10;, int b = 3.14; 여기서 a와 b는 변수를 나타내며 String c = new String("apple")와 String c = "apple"; 는 같은 의미로서 사용되는데 자바에서는 편의를 위해 후자와 같이 사용한다. 여기서 String의 경우 class가 되며 생성된 c는 객체가 된다. String이라는 클래스를 통해 c라는 객체를 생성하겠다는 것으로 String()라는 함수 안에 재료..

Java/study 2022.06.08
728x90