πŸ“ Language

    [JAVA] 좔상 ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€

    [JAVA] 좔상 ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€

    1. 좔상 클래슀 객체λ₯Ό 직접 생성할 수 μžˆλŠ” 클래슀λ₯Ό 싀체 클래슀라 ν•œλ‹€λ©΄ 이 ν΄λž˜μŠ€λ“€μ˜ 곡톡적인 νŠΉμ„±μ„ μΆ”μΆœν•΄μ„œ μ„ μ–Έν•œ 클래슀λ₯Ό 좔상 클래슀라 ν•œλ‹€. 좔상 ν΄λž˜μŠ€μ™€ 싀체 ν΄λž˜μŠ€λŠ” μƒμ†μ˜ 관계λ₯Ό 가지고 μžˆλ‹€. 좔상 ν΄λž˜μŠ€κ°€ λΆ€λͺ¨, 싀체 ν΄λž˜μŠ€κ°€ μžμ‹μœΌλ‘œ κ΅¬ν˜„λ˜μ–΄ 싀체 ν΄λž˜μŠ€λŠ” 좔상 클래슀의 λͺ¨λ“  νŠΉμ„±μ„ λ¬Όλ €λ°›κ³  좔가적인 νŠΉμ„±μ„ κ°€μ§ˆ 수 μžˆλ‹€. κ³΅ν†΅λœ ν•„λ“œμ™€ λ©”μ„œλ“œμ˜ 이름을 톡일할 λͺ©μ  싀체 클래슀λ₯Ό μž‘μ„±ν•  λ•Œ μ‹œκ°„ μ ˆμ•½: 곡톡적인 νŠΉμ„±μ€ 좔상 ν΄λž˜μŠ€μ— μ„ μ–Έν•˜κ³  λ‹€λ₯Έ 점만 싀체 ν΄λž˜μŠ€μ— μ„ μ–Έν•œλ‹€. 1) 좔상 클래슀 μ„ μ–Έ new μ—°μ‚°μžλ₯Ό μ΄μš©ν•΄μ„œ 객체λ₯Ό λ§Œλ“€μ§€ λͺ»ν•˜κ³  상속을 톡해 μžμ‹ 클래슀만 λ§Œλ“€ 수 μžˆλ‹€. 일반 ν΄λž˜μŠ€μ™€ λ™μΌν•˜κ²Œ ν•„λ“œ, μƒμ„±μž, λ©”μ„œλ“œλ₯Ό μ„ μ–Έν•  수 μžˆλ‹€. μžμ‹ 객체가 생성될 λ•Œ supe..

    [JAVA] 상속

    상속 1. 상속 상속은 λΆ€λͺ¨κ°€ μžμ‹μ—κ²Œ λ¬Όλ €μ£ΌλŠ” ν–‰μœ„λ₯Ό λ§ν•œλ‹€. μžμ‹μ€ 상속을 ν†΅ν•΄μ„œ λΆ€λͺ¨κ°€ λ¬Όλ €μ€€ 것을 μžμ—°μŠ€λŸ½κ²Œ μ΄μš©ν•  수 μžˆλ‹€. 이미 잘 개발된 클래슀λ₯Ό μž¬μ‚¬μš©ν•΄μ„œ μƒˆλ‘œμš΄ 클래슀λ₯Ό λ§Œλ“€κΈ° λ•Œλ¬Έμ— μ€‘λ³΅λ˜λŠ” μ½”λ“œλ₯Ό 쀄여쀀닀. λΆ€λͺ¨ 클래슀의 μˆ˜μ •μœΌλ‘œ λͺ¨λ“  μžμ‹ ν΄λž˜μŠ€λ“€λ„ μˆ˜μ •λ˜λŠ” 효과λ₯Ό κ°€μ Έμ˜€κΈ° λ•Œλ¬Έμ— μœ μ§€ 보수 μ‹œκ°„μ„ μ΅œμ†Œν™”ν•œλ‹€. 1) 클래슀 상속 μžμ‹ 클래슀λ₯Ό μ„ μ–Έν•  λ•Œ μ–΄λ–€ λΆ€λͺ¨ 클래슀λ₯Ό 상속받을 것인지 λͺ…μ‹œν•œλ‹€. μ—¬λŸ¬ 개의 λΆ€λͺ¨ 클래슀λ₯Ό 상속할 수 μ—†λ‹€. μ ‘κ·Ό μ œν•œμžμ— 따라 상속 λŒ€μƒ ν•„λ“œμ™€ λ©”μ„œλ“œκ°€ 달라진닀. class μžμ‹ν΄λž˜μŠ€ extends λΆ€λͺ¨ν΄λž˜μŠ€ { // ν•„λ“œ // μƒμ„±μž // λ©”μ†Œλ“œ } 2) λΆ€λͺ¨ μƒμ„±μž 호좜 μžμ‹ 객체λ₯Ό μƒμ„±ν•˜λ©΄ λΆ€λͺ¨ 객체가 λ¨Όμ € μƒμ„±λ˜κ³  κ·Έλ‹€μŒμ— μžμ‹ 객체가 μƒμ„±λœ..

    [JAVA] 클래슀

    [JAVA] 클래슀

    클래슀 1. 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° κ°μ²΄λž€ 물리적으둜 μ‘΄μž¬ν•˜κ±°λ‚˜ μΆ”μƒμ μœΌλ‘œ 생각할 수 μžˆλŠ” 것 μ€‘μ—μ„œ μžμ‹ μ˜ 속성을 κ°–κ³  μžˆμœΌλ©΄μ„œ 식별 κ°€λŠ₯ν•œ κ²ƒμœΌλ‘œ 속성과 λ™μž‘μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ 있고 μžλ°”μ—μ„œλŠ” 각각 ν•„λ“œμ™€ λ©”μ„œλ“œλΌκ³  λΆ€λ₯Έλ‹€. 객체듀은 각각 λ…λ¦½μ μœΌλ‘œ μ‘΄μž¬ν•˜κ³  λ‹€λ₯Έ 객체와 μ„œλ‘œ μƒν˜Έμž‘μš©ν•˜λ©΄μ„œ λ™μž‘ν•˜λŠ”λ° μƒν˜Έμž‘μš© μˆ˜λ‹¨μ€ λ©”μ„œλ“œμ΄λ‹€. 객체의 μƒν˜Έμž‘μš©μ€ 객체 κ°„μ˜ λ©”μ„œλ“œ ν˜ΈμΆœμ„ μ˜λ―Έν•˜λ©° 맀개 κ°’κ³Ό 리턴 값을 ν†΅ν•΄μ„œ 데이터λ₯Ό μ£Όκ³ λ°›λŠ”λ‹€. κ°μ²΄λŠ” κ°œλ³„μ μœΌλ‘œ μ‚¬μš©λ  수 μžˆμ§€λ§Œ λŒ€λΆ€λΆ„ λ‹€λ₯Έ 객체와 관계λ₯Ό λ§Ίκ³  μžˆλ‹€. 집합 관계: κ°μ²΄λŠ” ν•˜λ‚˜μ˜ λΆ€ν’ˆμ΄κ³  ν•˜λ‚˜λŠ” μ™„μ„±ν’ˆμ— ν•΄λ‹Ήν•œλ‹€. μ‚¬μš© 관계: 객체 κ°„μ˜ μƒν˜Έμž‘μš©μœΌλ‘œ λ‹€λ₯Έ 객체의 λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ μ›ν•˜λŠ” κ²°κ³Όλ₯Ό μ–»μ–΄λ‚Έλ‹€. 상속 관계: μƒμœ„(λΆ€λͺ¨) 객체λ₯Ό 기반으둜 ν•˜μœ„(μžμ‹) ..

    [JAVA] κΈ°λ³Έν˜• λ³€μˆ˜μ™€ μ°Έμ‘°ν˜• λ³€μˆ˜

    [JAVA] κΈ°λ³Έν˜• λ³€μˆ˜μ™€ μ°Έμ‘°ν˜• λ³€μˆ˜

    κΈ°λ³Έν˜• λ³€μˆ˜μ™€ μ°Έμ‘°ν˜• λ³€μˆ˜ 컴퓨터 λ©”λͺ¨λ¦¬(RAM)λŠ” 값을 μ €μž₯ν•  수 μžˆλŠ” μˆ˜λ§Žμ€ μ£Όμ†Œλ“€λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€. κ·Έλž˜μ„œ 어디에 μ €μž₯ν•˜κ³  μ–΄λ–€ λ°©μ‹μœΌλ‘œ μ €μž₯할지 정해놓지 μ•ŠμœΌλ©΄ ν”„λ‘œκ·Έλž¨ 개발이 무척 μ–΄λ ΅κ²Œ λœλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ³€μˆ˜λΌλŠ” κ°œλ…μ„ μ‚¬μš©ν•œλ‹€. 1. λ³€μˆ˜ λ³€μˆ˜λŠ” 값을 μ €μž₯ν•  수 μžˆλŠ” λ©”λͺ¨λ¦¬μ˜ νŠΉμ • λ²ˆμ§€μ— λΆ™μ΄λŠ” μ΄λ¦„μœΌλ‘œ ν”„λ‘œκ·Έλž¨μ€ λ³€μˆ˜λ₯Ό 톡해 λ©”λͺ¨λ¦¬μ˜ νŠΉμ • λ²ˆμ§€μ— 값을 μ €μž₯ν•˜κ³  읽을 수 μžˆλ‹€. 어디에 μ €μž₯ν•˜κ³  μ–΄λ–€ λ°©μ‹μœΌλ‘œ μ €μž₯ν• μ§€λŠ” ν”„λ‘œκ·Έλž˜λ° 언어와 μš΄μ˜μ²΄μ œκ°€ μ •ν•œλ‹€. 1) λ³€μˆ˜ μ΄ˆκΈ°ν™” μžλ°”μ—μ„œλŠ” λ³€μˆ˜μ— 값이 μ €μž₯λ˜μ§€ μ•ŠμœΌλ©΄ λ³€μˆ˜κ°€ μƒμ„±λ˜μ§€ μ•ŠλŠ”λ‹€. λ³€μˆ˜μ— μ΄ˆκΈ°κ°’μ΄ 졜초둜 μ €μž₯될 λ•Œ λ³€μˆ˜κ°€ μƒμ„±λ˜λŠ”λ° 이것을 λ³€μˆ˜ μ΄ˆκΈ°ν™”λΌκ³  ν•œλ‹€. λ³€μˆ˜κ°€ μ΄ˆκΈ°ν™”λ˜λ©΄ λ©”λͺ¨λ¦¬ λ²ˆμ§€ 정보λ₯Ό κ°–κ²Œ 되고 ν•΄λ‹Ή λ©”λͺ¨λ¦¬ ..

    [C++] l-value와 r-value

    [C++] l-value와 r-value

    l-value와 r-value μ™Όμͺ½ κ°’, 였λ₯Έμͺ½ κ°’μ΄λž€ λ‹¨μ–΄μ˜ μ˜λ―ΈλŠ” 맀우 μ§κ΄€μ μœΌλ‘œ λ“±ν˜Έ(=)의 μ™Όμͺ½μ— 있으면 left value, 였λ₯Έμͺ½μ— 있으면 right value이닀. 1. l-value 이름을 가진 λ³€μˆ˜λ‘œ ν‘œν˜„μ‹ 이후에도 사라지지 μ•ŠλŠ”λ‹€. 2. r-value μž„μ‹œ λ³€μˆ˜λ‘œ ν‘œν˜„μ‹ 이후에 사라진닀. 1) x++이 μ™œ r-value일까? x의 값을 λ³΅μ‚¬ν•˜μ—¬ μž„μ‹œ λ³€μˆ˜(r-value)에 μ €μž₯ν•˜κ³  μ›λž˜ x의 κ°’(l-value)을 λ³€κ²½ν•œλ‹€. κ·Έ ν›„ μž„μ‹œ λ³€μˆ˜λ₯Ό 계산에 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— r-value이닀. & μ—°μ‚°μžλŠ” l-value의 μ£Όμ†Œλ₯Ό κ°€μ Έμ˜€λŠ” μ—°μ‚°μžμ΄λ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— & μ—°μ‚°μžλ₯Ό r-value에 μ‚¬μš©ν•˜λ©΄ 컴파일 μ—λŸ¬λ‚˜ λ‚œλ‹€.

    [C/C++] malloc()과 new의 차이

    malloc()κ³Ό new의 차이 1. ν•¨μˆ˜μ™€ μ—°μ‚°μž Cμ—μ„œλŠ” 동적 할당을 μœ„ν•΄ malloc()κ³Ό free() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•œλ‹€. C++μ—μ„œλŠ” 동적 할당을 μœ„ν•΄ new와 delete μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•œλ‹€. λ‹¨μˆœν•˜κ²Œ malloc()은 ν•¨μˆ˜μ΄κ³  newλŠ” μ—°μ‚°μžμ΄λ‹€. 그리고 malloc()은 λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ œκ³΅ν•˜λŠ” ν•¨μˆ˜μ΄μ§€λ§Œ newλŠ” λ³„λ„μ˜ 라이브러리 없이 μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€. 2. μ΄ˆκΈ°ν™” malloc()은 동적 ν• λ‹Ήν•˜λŠ” κ²ƒλ§Œμ΄ λͺ©μ μ΄λ―€λ‘œ μ΄ˆκΈ°ν™”λ₯Ό ν•  수 μ—†λ‹€. newλŠ” ν• λ‹Ήκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”κ°€ κ°€λŠ₯ν•˜λ‹€ 3. μƒμ„±μž newλŠ” μƒμ„±μžλ₯Ό μžλ™μœΌλ‘œ ν˜ΈμΆœν•˜κ²Œ λœλ‹€. λ§ˆμ°¬κ°€μ§€λ‘œ deleteλ₯Ό ν˜ΈμΆœν•˜λ©΄ μ†Œλ©Έμžκ°€ μžλ™μœΌλ‘œ ν˜ΈμΆœλœλ‹€.