티스토리 뷰

정리 노트

chapter

eyoadgkn 2023. 10. 24. 08:50

                                           JAVA 챕터별 개념 정리

Chapter2

변수
what?
변수란 데이터를 담아내는 공간, 메모리를 의미합니다.
why?
데이터를 변수에 담아내고 그 데이터를 언제든지 사용하기 위해서 입니다.
how?
기본적으로 데이터를 담을 변수명을 작성해주고 대입연산자를 통해 값을 초기화 하거나 그렇지 않을 경우 세미콜론으로 변수명만 지정해줍니다.

 

데이터 타입
what?
데이터 타입이란 데이터를 담아낸 변수가 어떤 종류의 데이터를 담아냈는지 나타낼 수 있는 표시를 의미합니다. 그 표시의 종류로는 정수형(byte, short, int, long),실수형(float,double),문자형(char,String),논리형(boolean),참조형등이 있습니다.
why?
그 데이터가 어떤 종류의 데이터인지 파악을 하기 위해서 입니다.
how?
변수를 초기화하거나 정의, 선언할 때 변수명 앞에 관련 데이터의 종류에 알맞은 타입을 작성해줍니다.

 

형변환*
what?
형변환이란 데이터타입을 다른 데이터 타입으로 변환을 시키는 것을 의미합니다. 또한 이런 형변환은 프로그램이 알아서 바꿔주는 자동형변환과 직접 수정을 통해 강제로 바꾸는(캐스팅) 명시적 형변환이 있습니다.
why?
서로 다른 타입을 일치시키기 위해 사용합니다.
how? 변환을 주고싶은 데이터 타입을 대입연산자를 통해 입력하면 자동으로 형변환을 해줍니다. 다만 강제로 해야하는 형변환의 경우 변환을 주고싶은 데이터타입을 괄호안에 기입해주고 형변환을 시켜주면됩니다. 다만
, 실수에서 정수로 형변환을 시켜줄 때에는 소수점이 사라지기 때문에 데이터 손실이 일어날 수가 있습니다.

상수*
what?
상수는 변하지 않는 고정 값을 가진 데이터를 의미합니다.
why?*
변하지 않는 일관된 값을 사용하기 위해서 상수를 사용합니다.
how?
변수를 초기화 하면서 데이터 타입 앞에 final을 붙여주면서 상수를 선언해줍니다.

 

Chapter3

산술 연산자

what? 산술에 있어서 필요한 기호들을 의미합니다. 그 기호들은 기본적으로 (+,-,*,/)그리고 몫을 나타내는 기호 %가 있습니다.
why?
산술 연산자 기호를 통해 값이나 데이터를 조합해 결과값을 나타내기 위해 사용을 합니다.
how?
양 데이터에 기호를 가운데 붙여줌으로써 결과값을 도출해냅니다.

 

비교 연산자

what? 양변의 비교를 통해 참이나 거짓의 결과값을 도출해주는 연산자입니다.. 기본적으로 (<,>,<=,>=)를 비교하는 대소비교 연산자와 (==,!==)같냐 같지 않다를 보는 등가비교연산자가 있습니다.
why?
양 변을 비교하여 참인지 거짓인지를 반환하게 하여 보통 조건문이나 반복문의 제어문에 사용되는데, 이때 조건식을 만족시킬 경우 실행식을 동작하게 만들기 위함입니다.
how?
양 변수나 데이터인 변사이에 기호를 붙여줌으로써 크기를 비교하여 참, 거짓의 결과를 알 수 있습니다..

 

단항 연산자

what? 단항연산자는 논리부정연산자와 증감연산자, 부호연산자를 가지고 있습니다. 논리부정연산자는(!)이고, 증감연산자는 (++,--), 부호연산자는 (+,-)입니다.
why?
값을 부정하기 위해 사용하고, 증감연산자는 값을 1씩 증가시키거나 감소시키기 위해 사용합니다. 부호연산자는 변수의 앞에 부호연산자를 붙여줌으로써 값의 부호를 결정하거나 바꿀 때 사용합니다.
how?
변수나 데이터 값 앞에 !를 붙여주고 대개는 대입연산자를 통해 다른 변수명으로 초기화를 시켜주거나 하는 식으로 사용이 됩니다. 증감연산자는 보통 제어문의 증감식에 사용이 되는데 횟수만큼 반복을 해주는 for문의 증감식에 사용이 됩니다. 부호연산자는 변수 앞에 부호연산자를 붙여줍니다.

 

논리 연산자*

what? 논리연산자는 여러가지 식을 한번에 검사를 통해 참인지 거짓인지를 반환하는 연산자입니다. 기본적으로 ( &&,||)가 있습니다. &&,||를 통해 해당 식이 참이면 1, 아니면 0을 표기하게 되는데 이때 &&*를 의미하고, ||+를 의미합니다.
why?*
여러 조건들을 연산하기 위해 사용을 합니다. 또한 주어진 조건에 따라 truefalse를 반환합니다.
how?*
조건식들 사이에 &&||를 사용함으로써 둘 모두가 참이거나 둘 중하나가 참이면 참을, 그게 아니라면 거짓을 반환합니다.

 

기타연산자
what?
기타연산자에는 삼항 연산자와 대입연산자가 있습니다. 삼항 연산자는 항이 3개인 연산자로 조건식,실행 부분1,2로 나눠져 있는데 조건식이 참이면 1, 아니면 2를 실행해줍니다. 대입연산자는 순수 대입을 해주는 =와 사칙연산과 %를 해주고 다시 집어 넣어버리는 복합 대입연산이 있습니다.
why?
삼항 연산자는 조건식에 따라 실행문을 출력하고 싶을 때 사용을 하고, 대입연산자는 대입 식에 있어서 조금 더 식을 간결하게 만들어 줄 때 사용합니다.
how?
삼항 연산자는 조건식과 항목1,2를 써주면서 사용을 해주고, 대입연산자는 변수 뒤에 복합대입 연산자와 함께 사용을 해주면 됩니다.

 

Chapter4

If
what? if
문은 조건식을 통해 참이면 실행이 가능하도록 만들어진 조건문입니다.
why?
조건에 해당하는지에 대한 판단과 거기에 맞을 경우 원하는 결과값을 도출해내기 위해서 사용을 합니다.
how? if
문에 조건식을 적어주고 실행부분을 입력해주면 되는데, 이때 조건식을 다양한 연산자들을 통해 걸어줍니다.

 

If-else
what? If-else
문은 조건문을 사용하는 제어문으로 if의 조건식에 해당하면 if에 적힌 실행부분이 결과값으로 도출이 되고, 그것이 아니라 거짓이라면 else문의 실행부분이 도출되는 것을 말합니다.
why? If
문에 해당하지 않았을 경우에 다른 결과값을 보고 싶을 때 사용합니다. 예를들어 int x >3일 경우에 x4보다 크다는 syso를 내보내고 싶을 때, int x = 2였을 경우, 3보다 작다는 것을 알려주기 위해 사용을 합니다.
how? if
문에 조건식을 내걸고, 실행부분을 써준 뒤, if문밖으로 나와서 else문의 실행부분을 적어주면 됩니다.

 

If-else if
what? If- else if
문은 if의 조건문 중 하나로 여러가지 중 하나를 선택해달라는 조건문입니다.
why?
사용하는 이유는 여러가지 조건을 걸고, 거기에 부합하는 결과 값을 받기 위함입니다. 이렇게 사용을 하게되면 우리가 원하는 결과값을 받을 때 세부적인 등급으로 나눠져서 받을 수 있기 때문에 관련 데이터를 좀 더 정확하게 이해할 수가 있습니다. 예를 들어 학교의 학점을 예로 들을 수가 있는데 학생의 점수가 80점일 경우 여러가지 조건에 A,B,C,그 외는 F라는 학점이 있다면 점수에 맞는 학점을 알 수가 있기 때문입니다.
how? if
문의 조건식과 실행부분을 써주고, 그 밖에 else if문들을 조건식과 실행부분들을 써줍니다. 마지막으로 전부 해당하지 않을 시 결과값을 나타내기 위한 else문을 써줘서 if-else if문을 완성합니다.

 

중첩 if

what? 중첩if문은 if문안에 if문이 들어가 있는 것입니다.
why? If
문 안에 또 조건을 걸으면서 원하는 결과값을 받을 때 좀 더 세밀하게 받을 수 있기 때문에 그러한 상황을 원할 때 사용을 합니다. 예를 들어 int i = 2일 경우 if문에 if( i> 0)이라는 조건을 걸고 실행부분에 if문을 한번 더 써주면서 if(i>1) i0보다 커서 실행부분이 작동이 됐지만 중첩if문을 통해 1보다도 크다는 것을 알 수 있다는 장점이 있습니다.
how? if
문에 조건식을 내걸고, 실행부분에 if문을 한번 더 작성을 해주면 됩니다.

 

switch
what?
하나의 조건식으로 나온 결과가 여러가지 케이스 중 하나와 맞아 떨어지는 것을 선택하게끔 만들어진 제어문입니다. 일치하지 않을 경우 디폴트를 통해 실행이 되게끔 만들어졌습니다.
why?
조건식의 결과에 따라 값에 부합하는 케이스를 바로 찾아가기를 원할 때 사용합니다 따라서 if문보다 조건이 간결할 때 주로 사용이 되어집니다.
how? switch
에 조건식을 걸어주고 아래로 케이스들의 값과 실행식을 차례로 적어준 뒤 조건에 부합하는 케이스가 없을 경우를 대비한 default에 실행식도 적어줍니다.

 

For
what? for
문은 반복문으로써 횟수에 따라서 반복을 하는 제어문입니다.
why?
따라서 횟수만큼 반복을 하고 싶을 경우에 사용을 하는 반복문입니다.
how?
사용하는 방법은 for문은 초기화 조건식 증감식, 그리고 실행부분으로 나눠져 있습니다. 이때 초기화를 통한 변수의 값이 조건식을 통해 한번 작동이 되고, 거기에 해당하는 만큼 증감식에 의해 증가나 감소가 이루어 집니다. 그리고 그 횟수만큼 실행부분에 결과값이 도출이 됩니다. For( int I = 0; I >=10; i++){실행부분}

 

While
what? while
문은 반복문으로 for과는 다르게 조건이 참일 경우 계속 반복이 되는 제어문입니다.
why?
해당 반복문이 참일 경우 계속해서 돌리고 싶을 경우 사용을 합니다.
how? while
문에 조건식을 걸고 실행부분을 쓰는데, 이때 조건식이 참일 경우 실행부분은 계속해서 돌아갑니다. 이때 조건식에 true를 사용하거나 변수명.iquals를 통해 사용을 하기도 합니다.

 

Do-while
what? Do-while문은 while문과 다르게 최소한 한번은 작동을 하고 조건문을 검사하는 식입니다.
why?
조건문을 검사하기 전에 최소한 한 번은 실행부분을 돌려야 할 경우 사용하게 됩니다.
how?
사용하는 방법은 do를 통해 실행부분을 적어주고 안에 while문에 조건식을 걸어주면서 돌려주면 됩니다.

 

Break
what? break
문은 해당 조건문에 대해 실행부분이 실행이 됐을 경우 해당 제어문을 벗어나서 다음 코드가 실행이 되게끔 도와주는 제어문(?)입니다.
why?
보통 반복문인 for, whiledo while문의 실행을 중지시키거나 switch문의 중지시키기 위해 사용을 합니다.
how?
제어문의 중지시키고 싶은 실행부분 마지막에 break를 적어줌으로써 반복문 자체를 벗어나서 다음 실행코드가 실행되게끔 도와줍니다.

 

continue
what? continue
문은 제어문 자체를 나가서 코드를 계속 실행시키는 break문과는 다르게 제어문안에서 continue의 다음 실행부분을 건너뛰고 반복문을 계속 실행하게끔 도와주는 제어문입니다.
why?
제어문안에서 해당 실행하고 싶은 실행부분을 제외한 다른 실행부분을 건너뛰고 계속해서 반복문을 실행하고 싶을 때 사용을 합니다.
how? continue
라는 제어문을 대개 반복문인 for,while,dowhile문에서 실행부분 마지막 부분에 사용을 해주면서 다음 실행부분을 뛰어넘고 반복문을 계속해서 실행합니다.

 

Chapter5

배열
what? 배열이란 여러 종류 타입의 변수를 가지고 있는 객체와는 달리 한 종류의 데이터 타입을 여러가지 가지고 있는 변수를 말합니다.
why?*
같은 타입의 여러가지 데이터를 한 변수에 담아냄으로써 관리하는 데 있어서 효율을 증가시키기 위해서 사용을 합니다.
how?
변수를 초기화화하는 것에서 데이터타입 뒤에 대괄호[]만 붙여주면 됩니다.


배열 선언
what?
배열의 선언은 같은 종류의 타입을 변수명에 선언하는 것을 말합니다.
why?
how?
배열을 선언하는 방법은 데이터타입이나 변수명에 대괄호를 붙여주면 됩니다.

 

배열 생성
what?
배열의 생성은 같은 타입의 데이터를 변수명에 선언한 뒤 초기화 한 것을 말합니다.
why?
how? New
를 통해 배열을 생성을 할 수 있는데 이때 new 뒤에 타입명과 대괄호를 붙여준 뒤 길이를 입력해줍니다. 다른 초기화의 방식으로는 애초에 타입명[].변수명 후 중괄호를 통한 같은 타입의 데이터들을 작성해줘서 초기화를 시켜주는 방법도 있습니다.

 

인덱스와 길이
what?
배열의 생성이 된 동시에 배열의 길이의 값이 결정이되고, 이 배열의 길이 안에 각각의 공간이 존재하는데 이때 존재하는 공간의 number를 인덱스라고 합니다. 이때 인덱스는 1부터 시작하는 길이와 다르게 첫 번째 공간을 0번이라고 지칭합니다.
why?
공간의 길이인 length와 각각의 고유 번호인 인덱스를 통해 배열의 데이터를 보다 쉽게 관리할 수 있게됩니다.
how?
배열의 생성하는 단계에서 타입뒤 대괄호에 원하는 길이를 입력하거나 데이터를 직접 입력해줄 경우 해당 개수 만큼이 길이가 됩니다. 또한 인덱스는 0부터 시작하기 때문에 인덱스의 공간의 개수는 길이(n)-1이 됩니다.

 

초기화 /  출력*
what?
배열을 생성할 때 타입에 맞게끔 초기화가 됩니다. 그러나 원하는 값을 저장하려면 각 요소마다 값을 지정해서 넣어줘야 하는 경우도 있습니다. 출력은 각 인덱스 공간에 있는 데이터들을 확인하기 위한 방법입니다.
why?
배열을 선언만 하고 초기화를 하지 않게된다면, 아무 의미없는 데이터가 들어가게 되기 때문에 해줘야한다.
how?
기본적으로 초기화과정은 new를 통한 생성과 동시에 초기화를 시켜줄 수 있고, 직접 값을 지정해서 초기화를 시켜줄 수 있다. 또한 for을 통해 조건식에 길이만큼 초기화를 시켜주는 방법도 있습니다.

 

다차원 배열
what?
다차원 배열은 배열에서 대괄호를 n개 더 추가하여 만들어 진 것으로 추가한 개수 만큼이나 차원 배열로 설명이 됩니다. 대괄호가 2개가 있으면 2차원배열, 3개가 있으면 3차원배열입니다 이때 만들어진 배열의 인덱스 공간은 행과 열을 통해 만들어 지게 됩니다.
why? 1
차원 배열보다 많은 양의 데이터를 묶음으로써 보다 더 쉽게 관리감독을 할 수 있게 됩니다.
how?* 1
차원의 배열을 선언을 하는 것에서 대괄호를 하나 더 추가해주면 2차원 배열이 됩니다. 대괄호의 개수만큼 배열의 차원도 늘어나고, 이때 생기는 인덱스의 크기는 행과 열에 각각 저장되게 됩니다.

 

Foreach
what?
배열을 순환할 때 기존 반복문 보다 편리한 작업을 할 수 있도록 도와주는java자체 메서드를 말합니다.
why?
기존엔 for문에 인덱스 번호를 통해 배열을 처리하였지만 foreach문은 자동으로 하나씩 배열의 요소들을 처리해주기 때문에 사용하기도 하고, 코드가 좀 더 간결해집니다.
how? For
을 써준 뒤 데이터 타입명과 변수 명: 배열 명을 입력해준 뒤 실행부분을 작성해주면 됩니다.

 

Chapter6
클래스*
what?
클래스는 변수와 함수, 그리고 생성자(){}를 포함하고 있는 집합체입니다.
why?
속성을 가지고 있는 변수나 기능을 가지고 있는 함수가 클래스에 있다면 이로 인해 객체로 생성하여 사용할 수 있기 때문입니다. 따라서 클래스라는 것은 가지고 있는 변수나 함수들을 관리하고, 재사용성이 있다는 특징이 있습니다.
how?
클래스 내에 있는 변수들이나 함수들을 클래스 멤버와 인스턴스 멤버로 묶을 수가 있는데, 이때 인스턴스 멤버는 외부의 클래스에서 사용을 하려면 new를 통해 객체를 생성해 준 뒤에 사용을 할 수 있습니다. 클래스 멤버는 미리 생성이 되어있는 존재하는 상태로써 내부나 외부에서 마음대로 사용이 가능하다는 점이 있습니다.

 

인스턴스 변수
what?
존재하지 않는 변수로 new를 통해 객체 생성을 해줘야만 사용이 가능합니다. 직접 생성을 해줘야 한다는 특징으로 수동적이라고 할 수 있으며, 무한개로 생성이 가능합니다.
why?
사용하는 이유로는 코드를 수행하고 있을 때 필요에 따라 불러와야 하는 변수가 인스턴스 변수로 있다면 사용할 수 있기 때문입니다.
how?
클래스 내에 인스턴스 변수가 있을 시 메인 클래스에서 new를 통한 객체 생성을 변수에 담아서 변수명.을 통해 변수 값을 불러올 수 있습니다.

 

클래스 변수(Static)
what?
클래스 변수는 미리 로딩이 되어 존재하는 상태의 의미로 클래스 내에서나 외부의 클래스에서 언제든 사용이 가능하다는 점으로 자동적이라는 특징이 있고, static변수는 한 개만 존재 할 수 있다는 점이 있습니다.
why?
필요에 따라 클래스에서 변수를 불러오는데 인스턴스 변수는 필요할 때마다 생성이 필요하다는 점으로 번거롭다는 점이 있는데, 스태틱의 특성상 언제든 사용이 가능하기 때문에 빠르다는 장점을 가지고 있습니다. 대신 사용하지 않을 경우에는 메모리에 불필요하게 남아있을 가능성이 있기 때문에 메모리 공간만 차지하는 불청객으로 남을 수 있게 되는 단점도 있습니다.
how?
클래스내에 static을 데이터 타입 앞에 사용해줌으로써 클래스 변수가 만들어지게 됩니다.

 

메서드*
what?
메서드란 함수와 같은 의미로 클래스 내에 작동하는 기능을 의미합니다. 메서드는 입력값과 출력값을 가질 수 있고, 인스턴스인지 클래스인지 유무를 판단할 수 있습니다.
why?
우리가 프로그래밍을 하면서 똑같은 동작의 함수를 게속해서 반복해서 사용한다면, 번거롭기 때문에 한곳에 묶어서 입출력을 도와주는 기능을 가지고 있습니다.
how?
이런 메서드를 정의할 때는 입력값(파라미터값)이 있는지 없는지의 유무에 따라 작성을 해줄 수 있고, 있다면 받는 값의 개수만큼 적어줍니다. 그 다음은 메서드가 클래스인지 인스턴스인지 구별해주는 것인대, 미리 로딩을 시키고 꺼내 쓸것이라면 static을 작성해줘서 클래스 메서드로 설정을 해주고, 그게 아니라 생성을 하여 호출할 것이면 아무것도 적지 않고, 인스턴스 메서드로 구분을 해줍니다. 마지막으로 return값의 유무에 따라 작성을 해줄 수가 있는데, 만약 반환값이 없다면 void를 작성해주어 리턴값을 받지 않는다고 표시를 해줍니다.

 

오버로딩*
what?
같은 이름의 메서드에 데이터 타입과 파라미터의 값 개수가 다른 상태를 의미합니다.
why?
사용하는 이유는 같은 기능의 동작을 하는 메서드가 데이터 타입이나 파라미터의 개수에 따라 여러 번 필요로하는 경우에 매번 이름을 달리해서 적어주는 것이 번거롭고 일일이 외워야 하는 경우가 생기기 때문에 이를 하나의 메서드명에 묶어 사용하는 것을 오버로딩 이라고 합니다.
how?
메서드명을 같이하는 상태에서 데이터 타입이나 파라미터의 개수를 필요한 만큼 적고, 메인에서 생성하여 호출을 한다고 가정했을 때, 매개변수의 값에 따라 적어서 호출을 해주면 일치하는 메서드가 불러오게 됩니다.

 

생성자*
what?
생성자는 인스턴스 변수들을 생성할 때 호출되어서 변수들을 초기화를 시켜주는 메서드를 의미합니다.
why?
인스턴스 변스들이 많은 양이 있을 경우 생성할 때마다 작성을 해야하는 번거로움을 생성자를 통해 이러한 과정을 편리하게 도와줍니다.
how?
생성자명은 클래스명과 같고 클래스명(){}을 통해 호출할 수 있습니다. 우리가 일반적으로 클래스를 만들고, 따로 생성자를 작성하지 않는다면 컴파일러가 자동으로 기본생성자를 무조건 만들어 줍니다.

 

Chapter7

 

'정리 노트' 카테고리의 다른 글

7주차-4  (0) 2023.11.23
8.추상 클래스와 인터페이스, 내부 클래스  (0) 2023.10.24
상속과 다형성  (0) 2023.10.23
제어문  (0) 2023.10.11
연산자  (0) 2023.10.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함