λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Programming/Java28

10 Object-Oriented Programming (feat. Procedural Programming) 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°(Object-Oriented Programming, OOP)은 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ„€κ³„ν•˜κ³  κ΅¬ν˜„ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. 이 νŒ¨λŸ¬λ‹€μž„μ€ ν˜„μ‹€ μ„Έκ³„μ˜ 객체(object)와 κ·Έ 객체 κ°„μ˜ μƒν˜Έ μž‘μš©μ— 쀑점을 λ‘‘λ‹ˆλ‹€. μ—¬κΈ°μ„œ κ°μ²΄λŠ” 데이터와 κ·Έ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” λ©”μ„œλ“œ(ν•¨μˆ˜)둜 이루어져 μžˆμŠ΅λ‹ˆλ‹€. λ°˜λ©΄μ— μ ˆμ°¨μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ€ ν”„λ‘œκ·Έλž¨μ„ 단계적인 절차둜 λ‚˜λˆ„μ–΄ μ„€κ³„ν•˜κ³ , 각 λ‹¨κ³„μ—μ„œ ν•„μš”ν•œ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” ν•¨μˆ˜ λ˜λŠ” ν”„λ‘œμ‹œμ €λ₯Ό μ€‘μ‹¬μœΌλ‘œ ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„μž…λ‹ˆλ‹€. 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ λ“±μž₯ λ°°κ²½ 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°(OOP)이 λ“±μž₯ν•œ 것은 주둜 μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œ λ°œμƒν•˜λŠ” λ³΅μž‘μ„±κ³Ό μœ μ§€λ³΄μˆ˜μ˜ 어렀움에 λŒ€μ‘ν•˜κΈ° μœ„ν•΄μ„œμ˜€μŠ΅λ‹ˆλ‹€. OOPλŠ” μ ˆμ°¨μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ 단점을 ν•΄κ²°.. 2024. 1. 19.
9 Two-dimensional Arrays (Feat. Object Array) 2차원 배열은 ν–‰κ³Ό μ—΄λ‘œ 이루어진 λ°°μ—΄λ‘œ, 각 μš”μ†ŒλŠ” 두 개의 인덱슀둜 μ°Έμ‘°λ©λ‹ˆλ‹€. μ΄λŠ” ν–‰κ³Ό μ—΄μ˜ 2차원 μ’Œν‘œλ‘œ λ°°μ—΄ λ‚΄μ˜ νŠΉμ • μœ„μΉ˜λ₯Ό μ§€μ •ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, νŠΉμ • ν–‰κ³Ό μ—΄μ˜ μš”μ†Œμ— μ ‘κ·Όν•˜κ±°λ‚˜ 값을 ν• λ‹Ήν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 배열은 3개의 ν–‰κ³Ό 3개의 μ—΄λ‘œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€. 각 행은 μ€‘κ΄„ν˜Έλ‘œ λ‘˜λŸ¬μ‹ΈμΈ 뢀뢄이고, 각 행은 λ°°μ—΄μ˜ μš”μ†Œλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 2차원 배열은 주둜 ν–‰λ ¬(Matrix)둜 μ‚¬μš©λ˜λ©°, 이λ₯Ό 톡해 λ‹€μ–‘ν•œ μˆ˜ν•™μ  μ—°μ‚°μ΄λ‚˜ 이미지 μ²˜λ¦¬μ™€ 같은 μž‘μ—…μ— μœ μš©ν•˜κ²Œ ν™œμš©λ©λ‹ˆλ‹€. λ°°μ—΄μ˜ ν¬κΈ°λŠ” 각 ν–‰μ˜ 길이가 동일해야 ν•˜λ©°, 각 ν–‰λ§ˆλ‹€ μ„œλ‘œ λ‹€λ₯Έ 길이λ₯Ό κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. 객체 λ°°μ—΄(Object Array)은 λ‹€λ₯Έ 데이터 μœ ν˜• λŒ€μ‹  객체λ₯Ό μš”μ†Œλ‘œ κ°–λŠ” λ°°μ—΄μž…λ‹ˆλ‹€. Javaμ—μ„œ λͺ¨λ“  ν΄λž˜μŠ€λŠ” Ob.. 2024. 1. 19.
8 Array (λ°°μ—΄) 배열은 λ™μΌν•œ μœ ν˜•μ˜ 데이터 μš”μ†Œκ°€ μˆœμ„œλŒ€λ‘œ μ €μž₯된 데이터 κ΅¬μ‘°μž…λ‹ˆλ‹€. 각 μš”μ†ŒλŠ” 인덱슀(일반적으둜 0λΆ€ν„° μ‹œμž‘)에 μ˜ν•΄ μ‹λ³„λ©λ‹ˆλ‹€. 배열은 데이터λ₯Ό 효율적으둜 μ €μž₯ν•˜κ³  κ²€μƒ‰ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 인덱슀(Index): λ°°μ—΄μ˜ 각 μš”μ†ŒλŠ” κ³ μœ ν•œ 인덱슀둜 μ‹λ³„λ©λ‹ˆλ‹€. 일반적으둜 0λΆ€ν„° μ‹œμž‘ν•˜μ—¬ λ°°μ—΄μ˜ 길이보닀 ν•˜λ‚˜ μž‘μ€ κ°’κΉŒμ§€μ˜ λ²”μœ„λ₯Ό κ°–μŠ΅λ‹ˆλ‹€. 길이(Length): λ°°μ—΄μ˜ κΈΈμ΄λŠ” 배열에 ν¬ν•¨λœ μš”μ†Œμ˜ 수λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 길이가 7인 배열은 0λΆ€ν„° 6κΉŒμ§€μ˜ 인덱슀λ₯Ό κ°–λŠ” 일 개의 μš”μ†Œλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€. μœ ν˜•(Type): 배열은 λ™μΌν•œ μœ ν˜•μ˜ 데이터 μš”μ†Œλ‘œ κ΅¬μ„±λ˜λ©°, 예λ₯Ό λ“€μ–΄ μ •μˆ˜, λ¬Έμžμ—΄, 뢀동 μ†Œμˆ˜μ  수 등이 될 수 μžˆμŠ΅λ‹ˆλ‹€. μ„ μ–Έ 및 μ΄ˆκΈ°ν™”(Declaration and Initialization).. 2024. 1. 19.
7 while loop (feat. do-while) 1. while Loop The while loop is a control flow statement that repeatedly executes a block of code as long as a specified condition is true. 2. do-while Loop The do-while loop is similar to the while loop, but the condition is evaluated after the loop body. This guarantees that the loop body is executed at least once, regardless of whether the condition is initially true or false. 2024. 1. 7.
6 for loop (feat. Nested, foreach) 1. for Loop The for loop in Java is a control flow statement that allows you to repeatedly execute a block of code as long as a certain condition is true. 2. Nested for Loop A nested for loop is a for loop inside another for loop. Example 1 - ꡬꡬ단 Example 2 3. Enhanced for Loop (foreach Loop) The enhanced for loop, also known as the foreach loop, provides a simpler way to iterate over elements in.. 2024. 1. 7.
5 If & Switch (feat. break, continue) 1) if Statement The if statement is used for making decisions based on a condition. It allows you to execute a block of code if a specified condition evaluates to true. 2) Switch Statement The switch statement is used to select one of many code blocks to be executed based on the value of an expression. It provides a more concise way to handle multiple possible conditions compared to a series of .. 2024. 1. 7.
4 Operation (μ—°μ‚°) μžλ°”μ—μ„œ μ—°μ‚°μž(Operators)λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œ λ³€μˆ˜λ‚˜ κ°’λ“€ 간에 μˆ˜ν–‰λ˜λŠ” λ™μž‘μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μ—°μ‚°μžλŠ” νŠΉμ •ν•œ 연산을 μˆ˜ν–‰ν•˜κ±°λ‚˜ 값을 μ‘°μž‘ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. μ—°μ‚°μžλŠ” ν”Όμ—°μ‚°μž(Operands)라 λΆˆλ¦¬λŠ” ν•˜λ‚˜ μ΄μƒμ˜ 값을 ν•„μš”λ‘œ ν•˜λ©°, ν”Όμ—°μ‚°μžμ™€ μ—°μ‚°μž κ°„μ˜ μ‘°ν•©μœΌλ‘œ ν‘œν˜„μ‹μ„ ν˜•μ„±ν•©λ‹ˆλ‹€. μ—°μ‚°μžμ˜ μ—¬λŸ¬κ°€μ§€ μ’…λ₯˜ 1. 증감 μ—°μ‚°μž (Increment, Decrement Operators) 증가 및 κ°μ†Œ μ—°μ‚°μžλŠ” λ°˜λ³΅λ¬Έμ—μ„œ 자주 μ‚¬μš©λ˜λ©°, λ³€μˆ˜μ˜ 값을 μ¦κ°€μ‹œν‚€κ±°λ‚˜ κ°μ†Œμ‹œν‚¬ λ•Œ νŽΈλ¦¬ν•˜κ²Œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ‚¬μš©ν•  λ•Œ μ£Όμ˜κ°€ ν•„μš”ν•˜λ©°, 특히 λ‹€λ₯Έ μ—°μ‚°μžμ™€ ν•¨κ»˜ μ‚¬μš©λ  λ•Œ μš°μ„ μˆœμœ„μ— μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. 2. μ‚°μˆ  μ—°μ‚°μž (Arithmetic Operators) 3. 비ꡐ μ—°μ‚°μž (Comparison Op.. 2023. 12. 30.
3 Casting Javaμ—μ„œ Casting은 λ³€μˆ˜λ‚˜ ν‘œν˜„μ‹μ˜ 데이터 μœ ν˜•μ„ λ‹€λ₯Έ 데이터 μœ ν˜•μœΌλ‘œ λ³€ν™˜ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μ΄λŠ” μ„œλ‘œ λ‹€λ₯Έ μœ ν˜• 간에 ν˜• λ³€ν™˜μ„ μˆ˜ν–‰ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. Javaμ—μ„œλŠ” 두 가지 μœ ν˜•μ˜ μΊμŠ€νŒ…μ΄ μžˆμŠ΅λ‹ˆλ‹€. 1) Widening Casting (automatically) - converting a smaller type to a larger type siz byte - short - char - int - long - float - double 2) Narrowing Casting (manually) - converting a larger type to a smaller size type double - float - long - int - char - short - byte Casti.. 2023. 12. 29.
2 Variable, Constant and Primitive Type in Java (Feat. Literal) λ³€μˆ˜ (Variables) λ³€μˆ˜λŠ” 데이터λ₯Ό μ €μž₯ν•˜κ³  μ°Έμ‘°ν•˜κΈ° μœ„ν•œ λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ μ΄λ¦„μž…λ‹ˆλ‹€. λ³€μˆ˜λŠ” μ„ μ–Έλœ 데이터 νƒ€μž…μ— 맞게 값을 μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 값은 μ–Έμ œλ“ μ§€ 변경될 수 μžˆμŠ΅λ‹ˆλ‹€. μƒμˆ˜ (Constants) μƒμˆ˜λŠ” ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œ λ³€ν•˜μ§€ μ•ŠλŠ” κ°’μœΌλ‘œ, ν•œ 번 ν• λ‹Ήλ˜λ©΄ λ³€κ²½ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μžλ°”μ—μ„œλŠ” final ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μƒμˆ˜λ₯Ό μ„ μ–Έν•©λ‹ˆλ‹€. μƒμˆ˜λŠ” 보톡 λŒ€λ¬Έμžλ‘œ λͺ…λͺ…λ˜λ©°, μ—¬λŸ¬ λ‹¨μ–΄μ˜ 쑰합일 경우 μ–Έλ”μŠ€μ½”μ–΄ _ 둜 μ—°κ²°λ˜μ–΄ μ§‘λ‹ˆλ‹€. κΈ°λ³Έ 데이터 νƒ€μž… (Primitive Data Types) μžλ°”μ—μ„œλŠ” κΈ°λ³Έ 데이터 νƒ€μž…μœΌλ‘œ λ‹€μ–‘ν•œ μ’…λ₯˜κ°€ μ œκ³΅λ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ κΈ°λ³Έ 데이터 νƒ€μž…μ€ λ©”λͺ¨λ¦¬λ₯Ό 효율적으둜 μ‚¬μš©ν•˜λ©°, λ‹€μ–‘ν•œ 데이터 μœ ν˜•μ„ μ§€μ›ν•©λ‹ˆλ‹€. 1) μ •μˆ˜ν˜• (Integer Types) byte: .. 2023. 12. 29.