user-img
Language/Java 65
[JAVA] Stream μ‹€μŠ΅
1. μ½”λ“œλ¦¬λ·° // "python", "java", "javascript","c","c++","c#" // C둜 μ‹œμž‘ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ μΆ”μΆœ /*.startsWith()λŠ” String 클래슀의 λ§€μ†Œλ“œλ‘œμ„œ ()μ•ˆμ˜ 값이 λ¬Έμžμ—΄μ— μžˆλŠ”μ§€λ₯Ό boolean으둜 λ°˜ν™˜ .filter()λŠ” ()μ•ˆμ˜ 쑰건에 λ§žλŠ” μš”μ†Œλ§Œ κ³¨λΌμ„œ λ§Œλ“  μƒˆ μŠ€νŠΈλ¦Όμ„ λ°˜ν™˜ */ Arrays.stream(langs).filter(x-> x.startsWith("c")).forEach(System.out::println); System.out.println("-----------------------------------------"); // java λΌλŠ” κΈ€μžλ₯Ό ν¬ν•¨ν•˜λŠ” μ–Έμ–΄ Arrays.stream(langs).filter(x-> x.co..
2023.02.19
Language/Java
[JAVA] Stream
1. Stream μ΄λž€? (0) 뜻 λ°°μ—΄μ΄λ‚˜ μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬ μ•ˆμ— μ €μž₯된 μš”μ†Œλ“€μ„ ν•˜λ‚˜μ”© 순회 ν•˜λ©΄μ„œ μ½”λ“œλ₯Ό μ‹€ν–‰ν•  수 μžˆλŠ” κΈ°λŠ₯을 말함. 내뢀에 λ°˜λ³΅μžκ°€ λ”°λ‘œ μ‘΄μž¬ν•¨. Java 8λΆ€ν„° μΆ”κ°€ λ˜μ—ˆκ³ , κ·Έ 이전 μ‹œμ ˆμ—λŠ” λ°°μ—΄μ΄λ‚˜ μ»¬λ ‰μ…˜μ— λŒ€ν•œ 순회 연산을 ν•  λ•ŒλŠ” for, foreachλ₯Ό 써야 ν•˜κ±°λ‚˜ Iterator μ¨μ•Όν•΄μ„œ μ½”λ“œ μˆ˜κ°€ λ§Žμ•„μ§€κ³  μ§€μ €λΆ„ ν–ˆμŒ. ν•˜μ§€λ§Œ Stream 덕에 μ½”λ“œκ°€ κ°„νŽΈν•΄μ§€κ³  가독성이 쒋아짐. (1) 생성 a. κΈ°λ³Έ μžλ£Œν˜• 배열에 λŒ€ν•œ Stream 생성 **μ°Έκ³ : λ°°μ—΄(a,b)λŠ” 배열에 λŒ€ν•œ λ‹€μ–‘ν•œ λ§€μ†Œλ“œκ°€ μ €μž₯λ˜μ–΄ μžˆλŠ” Arrays 클래슀λ₯Ό μ΄μš©ν•˜μ—¬ Stream μž‘μ„± // int λ°°μ—΄ 생성 int[] scores = {100, 95,90,85,80}; // Arrays.stre..
2023.02.18
Language/Java
thumbnail
[JAVA] λžŒλ‹€μ‹κ³Ό ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€
1. λžŒλ‹€μ‹ (1) μ •μ˜ 읡λͺ…ν•¨μˆ˜ (이름이 μ—†λŠ” ν•¨μˆ˜) == μ ‘κ·Όμ œμ–΄μž, λ°˜ν™˜ν˜•, ν•¨μˆ˜μ΄λ¦„, νŒŒλΌλ―Έν„°μ˜ μžλ£Œν˜• λ‹€ ν•„μš” μ—†μŒ. λžŒλ‹€μ‹λ„ 일급 객체이닀. **일급 κ°μ²΄λž€? λ°μ΄ν„°λ‚˜ λ³€μˆ˜λ₯Ό 받을 수 μžˆλŠ” 객체, μ–΄λ–€ λ§€μ†Œλ“œμ˜ νŒŒλΌλ―Έν„°λ‘œ λ“€μ–΄κ°ˆ 수 μžˆλŠ” 객체, μ–΄λ–€ λ§€μ†Œλ“œμ˜ λ°˜ν™˜ 값이 될 수 μžˆλŠ” 객체 이닀. (2) ν˜•νƒœ (전달값 1, 전달값2, ...) -> { μ‹€ν–‰μ½”λ“œ } 2. ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€ (1) 뜻 좔상 λ§€μ†Œλ“œκ°€ 였직 ν•˜λ‚˜ 뿐인 μΈν„°νŽ˜μ΄μŠ€ (2)λžŒλ‹€μ‹κ³Όμ˜ 관계 λžŒλ‹€μ‹μ€ 였직 ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€λ‘œλ§Œ μ ‘κ·Ό κ°€λŠ₯. ** why? μΈν„°νŽ˜μ΄μŠ€μ— 좔상 λ§€μ†Œλ“œκ°€ 두 개이면, λžŒλ‹€μ‹κ³Ό λ§€μΉ­λ˜λŠ” 좔상 λ§€μ†Œλ“œκ°€ 무엇인지 λͺ¨ν˜Έν•΄μ§„λ‹€. λ”°λΌμ„œ 좔상 λ§€μ†Œλ“œκ°€ 였직 ν•˜λ‚˜μΈ ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€λ§Œμ΄ λžŒλ‹€μ‹κ³Ό 맀칭이 κ°€λŠ₯ν•˜μ—¬ μ“Έ 수..
2023.02.16
Language/Java
thumbnail
[JAVA] 읡λͺ… 클래슀
1.μ •μ˜ 읡λͺ… 클래슀== 이름 λͺ°λΌλ„ λ˜λŠ” 클래슀 == λ‹€μ‹œ λΆˆλ €μ„œ 쓰일 일이 μ—†λŠ” 클래슀 == 1회용 클래슀 객체 λ§Œλ“€ λ•Œ, κ·Έ 객체에 ν•„μš”ν•œ λ§€μ†Œλ“œ μž¬μ •μ˜, 좔상화 ν•¨μˆ˜ 싀체화λ₯Ό 같이 해버림. (이건 ν•΄λ‹Ή λ‚΄μš©μœΌλ‘œ λ‹€μ‹œ 쓰일 일이 없을 λ•Œ μœ μš©ν•˜λ‹€. λ§Œμ•½ μž¬μ‚¬μš©μ΄ ν•„μš”ν•˜λ‹€λ©΄ 상속 클래슀둜 λ§Œλ“€μ–΄λ‘κ³  써야함.) 2. 일반 ν΄λž˜μŠ€μ— λŒ€ν•œ 상속 없이 λ‹€λ₯Έ κΈ°λŠ₯이 μΆ”κ°€λœ 객체λ₯Ό λ§Œλ“œλŠ” 경우 (1) μš°λ¦¬κ°€ μ“Έ 클래슀 class Coffee{ public void order(String coffee){ System.out.println("μ£Όλ¬Έν•˜μ‹  " + coffee + "λ‚˜μ™”μŠ΅λ‹ˆλ‹€. "); } public void returnTray(){ System.out.println("컀피 λ°˜λ‚©μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€."); }..
2023.02.15
Language/Java
thumbnail
[JAVA] Iterator
1. 뜻 λ°°μ—΄, μ»¬λ ‰μ…˜ ν”„λ ˆμž„ μ›Œν¬λ“±μ„ μˆœνšŒν•  λ•Œ, μ§€κΈˆ μœ„μΉ˜κ°€ μ–΄λ”˜μ§€ μ•Œλ €μ£ΌλŠ” 'μ±…κ°ˆν”Ό 같은 쑴재' Iteratorλ₯Ό μ›ν•˜λŠ” μœ„μΉ˜λ‘œ 이동 μ‹œμΌœμ„œ μ›ν•˜λŠ” μž‘μ—…(쑰회, μΆ”κ°€, μ‚­μ œ)을 μ‹œν‚¨λ‹€. (1)Iterator의 초기 μœ„μΉ˜ (2) 반볡자 적을 λ•Œ Tip 반볡자 μ„ μ–Έλ¬Έμ˜ 였λ₯Έμͺ½ 편만 λ‹€ 적어놓고, iterator(); 에 ctrl + alt + V λˆ„λ₯΄λ©΄ μ™Όμͺ½μ΄ μžλ™ 완성됨. Mudo.entrySet().iterator(); //ctrl + alt + v Iterator itEn3 = Mudo.entrySet().iterator(); 2. μ½”λ“œλ¦¬λ·° package Chap_09; import java.util.*; public class _08_Iterator { public static void main..
2023.02.15
Language/Java
[JAVA] HashMap
1. HashMap νŠΉμ§• (1) HashSetκ³Ό λ˜‘κ°™μ΄ μˆœμ„œ 보μž₯ x, 쀑볡 ν—ˆμš© x 이닀. (Key값을 κΈ°μ€€μœΌλ‘œ 쀑볡 μ—¬λΆ€ check ν•˜κ³ , μ€‘λ³΅λœ Key값이 λ“€μ–΄μ˜¬ μ‹œ, κ°€μž₯ μ΅œκ·Όμ— μ—…λ°μ΄νŠΈ 된 Value값을 μ €μž₯ν•œλ‹€. ) (2) HashMap은 (Key, Value) ν•œ 쌍으둜 μ΄λ£¨μ–΄μ Έμžˆλ‹€. Keyκ°€ 사물함 μ—΄μ‡ , Valueκ°€ 사물함에 λ“€μ–΄μžˆλŠ” 값이라 μƒκ°ν•˜λ©΄ λ˜κ² λ‹€. Key ν•˜λ‚˜λ‹Ή ValueλŠ” 무쑰건 ν•œ κ°œμ΄λ‹€. (3) Key와 ValueλŠ” μžλ£Œν˜•μ΄ μ„œλ‘œ λ‹€λ₯Ό 수 μžˆλ‹€. (μžλ£Œν˜•μ€ Wrapper 클래슀만 κ°€λŠ₯) 2. μ½”λ“œ 리뷰 import java.util.HashMap; public class _07_HashMap { public static void main(String[] args) { //..
2023.02.13
Language/Java
thumbnail
[JAVA]HashSet
1. HashSetμ΄λž€? Collection FrameWork의 μ’…λ₯˜ 쀑 ν•˜λ‚˜ (μ»¬λ ‰μ…˜ ν”„λ ˆμž„ μ›Œν¬μ—λŠ” List,Set,Map 이 μžˆλ‹€.) *μ»¬λ ‰μ…˜ ν”„λ ˆμž„ μ›Œν¬λž€? λ§Žμ€ μ–‘μ˜ 데이터λ₯Ό 더 쉽고,νŽΈλ¦¬ν•˜κ²Œ, 더 효율적으둜 관리할 수 μžˆλ„λ‘ μžλ°”μ—μ„œ μ œκ³΅ν•˜λŠ” 클래슀의 λͺ¨μž„. HashSet λ‚΄λΆ€ λ§€μ†Œλ“œ 듀은 List의 λ§€μ†Œλ“œμ™€ 거의 κ°™λ‹€. (μΆ”κ°€ == .add, μ‚­μ œ == .remove λ“±λ“±) (1)HashSet의 νŠΉμ§• Hashset은 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€. λ§Œμ•½ μ€‘λ³΅ν•΄μ„œ 적어도 μžλ™μœΌλ‘œ 쀑볡이 제거 λœλ‹€. Hashset은 μˆœμ„œλ₯Ό 보μž₯ν•˜μ§€ μ•ŠλŠ”λ‹€. 값을 넣은 μˆœμ„œμ™€ 상관없이 μ €μž₯λœλ‹€. *λ§Œμ•½ 값을 넣은 μˆœμ„œλŒ€λ‘œ μ €μž₯되기 μ›ν•œλ‹€λ©΄? LinkedHashSet을 μ΄μš©ν•˜λ©΄ λœλ‹€. 2. μ½”λ“œ 리뷰 package Cha..
2023.02.09
Language/Java
thumbnail
[JAVA] Linked List
1. Linked Listλž€? 포인터가 λ‹€μŒ λ…Έλ“œ κ°€λ¦¬ν‚€κ²Œ ν•΄μ„œ 이어져 μžˆλŠ” 자료ꡬ쑰. 쀑간 쀑간 μ‚½μž…μ΄ 쉬움. (μ‚¬λžŒλ“€μ΄ μ„œλ‘œ 손 작고 일렬둜 μ„œμžˆλŠ”λ‹€κ³  μƒκ°ν•΄λ³΄μž. 쀑간에 μ‚¬λžŒμ„ 넣을 μ‹œ 두 μ‚¬λžŒμ΄ κΉŽμ§€λ₯Ό λ–Όκ³  κ·Έ 사이에 λ„£μœΌλ©΄ λœλ‹€.) List ν˜•νƒœ(ArrayList, LinkedList)λŠ” λͺ¨λ‘ 쀑간 μ‚½μž…μ΄ λœλ‹€. λ˜ν•œ List ν˜•νƒœλŠ” λͺ¨λ‘ μ€‘λ³΅λœ κ°’ μ‚½μž…μ„ ν—ˆμš©ν•œλ‹€. 2. μ½”λ“œ 리뷰 import java.util.Collections; import java.util.LinkedList; public class _05_LinkedList { public static void main(String[] args) { //λ§ν¬λ“œ 리슀트 LinkedList list = new LinkedList(); /..
2023.02.08
Language/Java
[JAVA] ArrayList
1. λ°°μ—΄ vs μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬ (1) λ°°μ—΄ 배열은 크기가 μ •ν•΄μ Έ 있음. λ”°λΌμ„œ 배열이 꽉 μ°ΌλŠ”λ°, 값을 더 μΆ”κ°€ν•΄μ•Ό ν•˜λŠ” 경우, λ„‰λ„‰ν•œ 크기둜 배열을 μƒˆλ‘œ λ§Œλ“€μ–΄μ•Όν•¨. κ±°κΈ°λ‹€κ°€ 기쑴의 κ°’λ“€ μ €μž₯ + μƒˆλ‘œμš΄ κ°’λ“€ μ €μž₯ μ‹œμΌœμ•Όν•¨. 배열은 νŠΉμ • 인덱슀의 μ›μ†Œ 값을 μ‚­μ œν•˜λ©΄, κ±°κΈ°κ°€ κ·Έλƒ₯ λΉ„μ–΄μžˆλŠ” 체둜 있음. (크기가 λ™μ μœΌλ‘œ λ³€ν™”ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έ) (2) μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬ 정적인 배열에 값을 μ €μž₯ν•˜λŠ” 것은 데이터듀을 κ΄€λ¦¬ν•˜λŠ”λ° 번거둜운 점이 있음. μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬λŠ” λ§Žμ€ μ–‘μ˜ 데이터듀을 더 쉽고, νŽΈλ¦¬ν•˜κ²Œ, 효율적으둜 관리할 수 μžˆλ„λ‘ JAVAμ—μ„œ μ œκ³΅ν•˜λŠ” 클래슀의 λͺ¨μž„이닀. μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ€ μžλ°”μ™€ 달리 크기가 λ™μ μœΌλ‘œ λ³€ν•΄μ„œ, μ›ν•˜λŠ” 만큼 데이터 μΆ”κ°€, μ‚­μ œκ°€ κ°€λŠ₯ν•˜λ‹€. μ›ν•˜λŠ” κ°’ 탐색, νŠΉμ • κ°’ λ³€κ²½,..
2023.02.07
Language/Java
[JAVA] Wrapper Class
1. μ •μ˜ int, double, float, char 같은 순수 κ°’λ§Œ κ°€μ§€λŠ” κΈ°λ³Έ μžλ£Œν˜•λ“€μ„ 객체 ν˜•νƒœλ‘œ μž¬μ‘°λ¦½ν•œ 것이닀. κΈ°λ³Έ μžλ£Œν˜• 같은 역할을 ν•˜λŠ” Wrapper Class int Integer double Double float Float char Character (1) Wrapper Classλ“€μ˜ μš©λ„ κΈ°λ³Έ μžλ£Œν˜•κ³Ό λ˜‘κ°™μ΄ ν•΄λ‹Ή νƒ€μž…μ˜ 값을 λ„£κΈ° μœ„ν•΄μ„œ μ‚¬μš©. but μ•„λ¬΄λž˜λ„ 클래슀 μ΄λ‹€λ³΄λ‹ˆ, λ‚΄μž₯ λ§€μ†Œλ“œλ“±μ„ μ΄μš©ν•΄ 더 νŽΈλ¦¬ν•œ κΈ°λŠ₯을 μ“Έ 수 μžˆλŠ” μž₯점이 μžˆλ‹€. (2) Wrapper Class듀이 ν•„μš”ν•œ 이유 μ•žμ—μ„œ λ°°μ› λ˜ Generics ν΄λž˜μŠ€λ‚˜ λ§€μ†Œλ“œλ₯Ό κΈ°λ³Έ μžλ£Œν˜•μ€ μ“Έ μˆ˜κ°€ μ—†μ—ˆλ‹€. λ”°λΌμ„œ Wrapper 클래슀λ₯Ό μ‚¬μš©ν•΄μ„œ 값을 μ €μž₯ν•œ 경우 Generics을 μ‚¬μš©ν•  수 μžˆκΈ°μ—, ν•΄λ‹Ή κ²½μš°μ—..
2023.02.07
Language/Java
thumbnail
[JAVA]Generics 심화
1. μ œλ„€λ¦­ ν΄λž˜μŠ€κ°€ 받을 수 μžˆλŠ” 인수 μžλ£Œν˜•μ— μ œν•œ κ±°λŠ” 것 (1) 사전 μ€€λΉ„ - μš°λ¦¬κ°€ λ°›κ³  싢은 νŠΉμ • μžλ£Œν˜•μ„ 클래슀둜 λ§Œλ“ λ‹€. //1. λΆ€λͺ¨ 클래슀 public class User { public String name; public User(String name) { this.name = name; } public void addPoint(){ System.out.println(this.name + " λ‹˜, 포인트 μ λ¦½λ˜μ—ˆμŠ΅λ‹ˆλ‹€. "); } } //2. μžμ‹ 클래슀 public class VIPUser extends User { public VIPUser(String name) { //λΆ€λͺ¨μ˜ μƒμ„±μžλ₯Ό μ“°κ² λ‹€λŠ” 말 : super(); , λΆ€λͺ¨μ˜ λ§€μ†Œλ“œλ₯Ό μ“°κ² λ‹€λŠ” 말 super.λ§€μ†Œλ“œ_이름; // ..
2023.02.06
Language/Java
thumbnail
[JAVA] Generic Class
1. μ œλ„€λ¦­μ΄λž€? ν΄λž˜μŠ€λ‚˜ λ§€μ†Œλ“œμ˜ 데이터 νƒ€μž…μ„ λ‚˜μ€‘μ— ν™•μ •ν•˜λŠ” 기법이닀. *μ œλ„€λ¦­μ˜ 원리? μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ—¬ μ‹€ν–‰ν•˜κΈ° κΉŒμ§€ 크게 3κ°€μ§€μ˜ λ‹¨κ³„λ‘œ λ‚˜λ‰œλ‹€. 크게 개발자의 μ†ŒμŠ€μ½”λ“œ μž‘μ„± μ‹œμ , 컴파일 νƒ€μž„, 런 νƒ€μž„μ΄ μžˆλŠ”λ°, 보톡 λ³€μˆ˜, λ§€μ†Œλ“œ, 클래슀의 데이터 νƒ€μž…μ€ μ†ŒμŠ€μ½”λ“œ μž‘μ„± μ‹œ λ°”λ‘œ λ°”λ‘œ μ²΄ν¬ν•œλ‹€. ν•˜μ§€λ§Œ μ œλ„€λ¦­μ„ μ‚¬μš©ν•˜λ©΄ 데이터 νƒ€μž… 체크 μ‹œκ°„μ„ 컴파일 νƒ€μž„μœΌλ‘œ λ―Έλ£° 수 μžˆλ‹€. 2. μ œλ„€λ¦­μ΄ ν•„μš”ν•œ μ‹œμ . 같은 κΈ°λŠ₯의 λ§€μ†Œλ“œλ‚˜ 클래슀 이더라도, 인수둜 λ°›κ³  λ°˜ν™˜ν•˜λŠ” κ°’μ˜ μžλ£Œν˜•μ΄ λ‹€λ₯΄λ©΄, μ „λΆ€ λ”°λ‘œ λ”°λ‘œ μ •μ˜ ν•΄μ€˜μ•Ό ν•œλ‹€. λ§€μ†Œλ“œμ˜ 경우 μ €λ²ˆ ν¬μŠ€νŒ…μ˜ μ˜ˆμ‹œμ™€ 같이, Int λ°°μ—΄ 전체 μˆœνšŒν•˜λ©° μ›μ†Œλ₯Ό ν”„λ¦°νŠΈ ν•˜λŠ” λ§€μ†Œλ“œλ₯Ό String 배열에 κ΄€ν•΄ μ“Έ 수 μ—†λ‹€. λ”°λΌμ„œ μ „λΆ€ λ‹€ λ”°λ‘œ μ •μ˜ ν•΄μ€˜μ•Ό ..
2023.02.03
Language/Java
thumbnail
[JAVA] Generics
1. μ œλ„€λ¦­μŠ€λž€? (1) 사전적 의미 Generics - 1) 일반적인, 2) 포괄적인 3) 총칭적인 javaμ—μ„œμ˜ μ˜λ―ΈλŠ” 2,3번 λœ»μ— 가깝닀. Generics νƒ€μž…μ€ μ—¬λŸ¬κ°€μ§€ νƒ€μž…μ„ ν¬κ΄„ν•œλ‹€. (2) Javaμ—μ„œμ˜ Generics 의미 λ‹€μ–‘ν•œ νƒ€μž…μœΌλ‘œ 이루어진 객체둜 이루어진 λ§€μ†Œλ“œλ‚˜ 클래슀의 νƒ€μž… 체크λ₯Ό 컴파일 μ‹œμ— ν•΄μ£ΌλŠ” κΈ°λŠ₯을 λœ»ν•œλ‹€. μ–΄λ–€ λ§€μ†Œλ“œμ˜ νŒŒλΌλ―Έν„° μžλ£Œν˜•μ„ generics둜 λ§Œλ“€λ©΄, ν•΄λ‹Ή νŒŒλΌλ―Έν„°μ˜ μžλ£Œν˜•μ€ λ“€μ–΄μ˜€λŠ” κ°’μ˜ μžλ£Œν˜•μ— 따라 바뀐닀. 2. μ œλ„€λ¦­μŠ€λ‘œ 이루어진 λ§€μ†Œλ“œμ˜ μ‚¬μš©μ΄ ν•„μš”ν•œ μˆœκ°„? μš°λ¦¬κ°€ λͺ¨λ‘ λ‹€λ₯Έ νƒ€μž…μ˜ 배열듀을 순회 ν•˜λ©° μ›μ†Œκ°’μ„ μ „λΆ€ 좜λ ₯ν•΄μ•Ό ν•œλ‹€κ³  κ°€μ •ν•˜μž. κ·Έλ ‡λ‹€λ©΄, ν•΄λ‹Ή 배열듀을 μˆœνšŒν•˜μ—¬ 값을 좜λ ₯ν•˜λŠ” λ§€μ†Œλ“œλ₯Ό μ „λΆ€ λ”°λ‘œ λ§Œλ“€μ–΄μ•Ό ν•  것이닀. μ™œλƒν•˜λ©΄ 자료..
2023.02.02
Language/Java
thumbnail
[JAVA] Interface (μΈν„°νŽ˜μ΄μŠ€)
1. μΈν„°νŽ˜μ΄μŠ€λž€? '클래슀λ₯Ό μ–΄λ–»κ²Œ λ§Œλ“€μ–΄λΌ'λŠ” κ°€μ΄λ“œ 라인이닀. μ˜€λ‘œμ§€ μƒμˆ˜(static final둜 μ„ μ–Έλœ λ³€μˆ˜)와 좔상 λ§€μ†Œλ“œλ‘œλ§Œ 이루어져 μžˆλ‹€. ν•΄λ‹Ή μΈν„°νŽ˜μ΄μŠ€λ₯Ό 'κ΅¬ν˜„' ν•œ ν΄λž˜μŠ€λŠ” 좔상 λ§€μ†Œλ“œ μ „λΆ€λ₯Ό ꡬ체화할 의무λ₯Ό κ°€μ§„λ‹€. * μ„ μ–Έ interface μΈν„°νŽ˜μ΄μŠ€ 이름 { μƒμˆ˜ or μΆ”μƒλ§€μ†Œλ“œ } //EX) public interface Animal { public abstract void cry(); //public abstractλŠ” μ•ˆ 써도 됨. -> default둜 λ˜μ–΄μžˆμŒ } *상속 or κ΅¬ν˜„ μΈν„°νŽ˜μ΄μŠ€ 끼리 ν™•μž₯ν•  λ•ŒλŠ” 상속(extends) ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€. ν΄λž˜μŠ€κ°€ νŠΉμ • μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ°›μ•„μ„œ ꡬ체화될 λ–„λŠ” κ΅¬ν˜„(implements) ν‚€μ›Œλ“œλ₯Ό μ“΄λ‹€. // μΈν„°νŽ˜μ΄μŠ€λ‘œ ν™•μž₯ public..
2023.02.02
Language/Java
thumbnail
[JAVA] 좔상화와 좔상화 클래슀
1. 객체지ν–₯ μ–Έμ–΄μ—μ„œ μΆ”μƒν™”λž€? (1)좔상화 뜻 *λ―Έμˆ μ—μ„œμ˜ 좔상화 뜻 μ‹€μ œ μžμ—°κ³„μ— μ‘΄μž¬ν•˜λŠ” μ‚¬λ¬Όμ˜ λŒ€λž΅μ μΈ νŠΉμ§•λ“€μ„ μΆ”μΆœν•˜μ—¬ 점,μ„ ,λ©΄ 으둜 λ‹¨μˆœν™”ν•˜μ—¬ ν‘œν˜„ν•˜λŠ” 것 *'좔상화 ν•˜λ‹€.'의 뜻 μ•Œκ³ λŠ” μžˆμ§€λ§Œ, μ •ν™•ν•˜κ²Œ μ„€λͺ…ν•˜κΈ° μ–΄λ €μš΄ 사물을 κ·Έκ²ƒμ˜ μ€‘μš”ν•œ λΆ€λΆ„μ΄λ‚˜ νŠΉμ§•μ„ 쀑점 μž‘μ•„ μ„€λͺ…ν•˜λŠ” 것. *객체지ν–₯μ—μ„œμ˜ 좔상화 클래슀λ₯Ό λ§Œλ“€ λ•Œ ꡳ이 μ•Œ ν•„μš” μ—†κ±°λ‚˜ 뢈 ν•„μš”ν•œ 뢀뢄을 μˆ¨κΈ°κ±°λ‚˜ μ§€μš°κ³ , μ€‘μš”ν•œ μ†μ„±μ—λ§Œ 쀑점을 두어 λ‚΄μš©μ„ μΆ”λ € λ§Œλ“œλŠ” 것. μΆ”μƒν™”μ—λŠ” 2 κ°€μ§€ μ’…λ₯˜κ°€ μžˆλŠ”λ°, μ œμ–΄ 좔상화와 데이터 좔상화 이닀. (2) μ œμ–΄ 좔상화 μ‚¬μš©μžκ°€ λ§€μ†Œλ“œμ˜ λ³΅μž‘ν•œ 뢀뢄은 λͺ°λΌλ„ μ‚¬μš©ν•  수 있게 λ§Œλ“œλŠ” 것이닀. λ§€μ†Œλ“œμ˜ 둜직 뢀뢄은 숨기고, μ‚¬μš©μžκ°€ 직접 μ¨μ•Όν•˜λŠ” 파트만 λ‚¨κΈ°λŠ” 것이닀. 예λ₯Ό λ“€μ–΄ μš°λ¦¬κ°€ 컴퓨..
2023.02.01
Language/Java
thumbnail
[JAVA]μ—΄κ±°ν˜•
1.μ—΄κ±°ν˜• 클래슀 (enum class) μ •μ˜ μš”μΌ: μ›”, ν™”, 수, λͺ©, 금, ν† , 일 달λ ₯: JAN, FEB, MAR, APR, MAY, JUNE .... κ³Ό 같이 μ„œλ‘œ κ΄€λ ¨ μžˆλŠ” μƒμˆ˜λ“€μ„ λͺ¨μ•„놓고, ν•΄λ‹Ή μƒμˆ˜λ“€μ— λŒ€ν•΄ μ •μ˜ν•œ 클래슀 *μƒμˆ˜λž€? μ—΄κ±°ν˜• 클래슀 μ•ˆμ˜ 핡심이 λ˜λŠ” 값을 이야기 ν•˜λŠ” 것이지, κΌ­ 숫자일 ν•„μš” μ—†λ‹€. μ •μˆ˜, μ‹€μˆ˜, λ¬Έμžμ—΄ λͺ¨λ‘ κ°€λŠ₯ν•˜λ‹€. μœ„μ˜ 예λ₯Ό ν•΄λ‹Ή μ •μ˜μ— 따라 λ‚˜λˆ„μ–΄λ³΄λ©΄, 클래슀 이름: μš”μΌ / μƒμˆ˜: μ›”, ν™”, 수, λͺ©, 금, ν† , 일 클래슀 이름: 달λ ₯/ μƒμˆ˜: JAN, FEB, MAR, APR, MAY, JUNE .... 이닀. 2. 문법적 νŠΉμ§• 1. μ—΄κ±°λœ μƒμˆ˜λ“€μ€ μ°¨λ‘€λŒ€λ‘œ 0λΆ€ν„° μ‹œμž‘ν•˜λŠ” indexλ₯Ό κ°€μ§„λ‹€. 2. μƒμˆ˜λ“€μ€ λͺ¨λ‘ λŒ€λ¬Έμžλ‘œ μ μ–΄μ•Όν•œλ‹€. 3. μƒμˆ˜μ™€..
2023.01.29
Language/Java
thumbnail
[JAVA]final
- Keyword final에 λŒ€ν•΄ - 1. λ³€μˆ˜ μ•žμ— 썼을 λ•Œ final public final String lens = "κ΄‘κ°λ Œμ¦ˆ"; ν•΄λ‹Ή λ³€μˆ˜λŠ” 같은 클래슀 λ‚΄μ—μ„œλ„ 값을 λ°”κΏ€ μˆ˜κ°€ μ—†λ‹€. (μ™ΈλΆ€ ν΄λž˜μŠ€μ—μ„œλ„ λ‹Ήμ—°νžˆ λͺ» λ°”κΏˆ.) **κ·Έλ ‡λ‹€λ©΄ 무쑰건 μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”λ₯Ό ν•΄μ•Ό ν• κΉŒ? NO. μƒμ„±μžλ₯Ό 톡해 μ΄ˆκΈ°ν™” μ‹œμΌœλ„ λœλ‹€! Why? μƒμ„±μžλ₯Ό 톡해 객체λ₯Ό 생성함과 λ™μ‹œμ— final λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™” ν•˜λŠ” 것은, final λ³€μˆ˜λ₯Ό μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™” ν•˜λŠ” 것과 μ˜λ―Έκ°€ κ°™λ‹€. public class ActionCam extends Camera { public final String lens; //μƒμ„±μž public ActionCam(){ // μƒμ„±μžλ₯Ό μ΄μš©ν•˜μ—¬ final λ³€μˆ˜ μ΄ˆκΈ°ν™” this.lens =..
2023.01.29
Language/Java
thumbnail
Chap07_13 μ°Έμ‘°(reference)
1. μ°Έμ‘° λ³€μˆ˜μ™€ 일반 λ³€μˆ˜μ˜ 차이 일반 λ³€μˆ˜λŠ” κ°’ 자체λ₯Ό λ³€μˆ˜μ— λ°”λ‘œ μ €μž₯. μ°Έμ‘° λ³€μˆ˜λŠ” 값이 λ“€μ–΄μžˆλŠ” μ£Όμ†Œλ₯Ό λ³€μˆ˜μ— μ €μž₯ (μžμ„Έν•œ 건 밑에 μžμ„Ένžˆ ν’€μ–΄μΌμœΌλ‹ˆ μ°Έκ³  ν•΄μ£Όμ„Έμš”.) https://dalcheonroadhead.tistory.com/68 일반 λ³€μˆ˜μ™€ μ°Έμ‘° λ³€μˆ˜ λ°”λ‘œ μ•ŒκΈ° 1. 데이터 νƒ€μž…μ˜ μ’…λ₯˜ 크게 κΈ°λ³Έ νƒ€μž…κ³Ό μ°Έμ‘° νƒ€μž…μœΌλ‘œ λ‚˜λˆ„μ–΄μ§„λ‹€. 두 νƒ€μž…μ„ λ‚˜λˆ„λŠ” 기쀀은 무슨 값이 μ €μž₯λ˜λŠ”κ°€ 이닀. 2. 각 νƒ€μž…λ“€μ΄ 값을 μ €μž₯ν•˜λŠ” 원리 κΈ°λ³Ένƒ€μž…μ€ ν•΄λ‹Ή λ³€μˆ˜μ— κ°’ 자체λ₯Ό dalcheonroadhead.tistory.com 2. a=b; 이후 b에 λ‹€λ₯Έ 값을 μ§‘μ–΄λ„£μ—ˆμ„ λ•Œ λ‘˜μ˜ 차이 (1) 일반 λ³€μˆ˜μ˜ 경우 int a= 10; int b = 20; a = b; System.out.println(a); ..
2023.01.29
Language/Java
thumbnail
[JAVA] Super
1.Superλž€? μžμ‹ ν΄λž˜μŠ€μ—μ„œ λΆ€λͺ¨ 클래슀의 λ§€μ†Œλ“œλ₯Ό λΆ€λΆ„μ μœΌλ‘œ μ‚¬μš© ν•΄μ•Ό ν•˜λŠ” κ²½μš°κ°€ μžˆμ„ 것이닀. μ§€κΈˆκΉŒμ§€ λ“€μ–΄μ˜¨ 카메라 클래슀λ₯Ό 예둜 λ“€μ–΄λ³΄μž. **사전 μ°Έκ³  사항 (λΆ€λͺ¨ ν΄λž˜μŠ€μ™€ μžμ‹ν΄λž˜μŠ€)** // λΆ€λͺ¨ 클래슀 public class Camera { public String name; public Camera() { this.name = "카메라" } public void takePicture() { // 사진 촬영 System.out.println(this.name + ": 사진을 μ΄¬μ˜ν•©λ‹ˆλ‹€."); } public void recordVideo() { // λ™μ˜μƒ λ…Ήν™” System.out.println(this.name + ": λ™μ˜μƒμ„ λ…Ήν™”ν•©λ‹ˆλ‹€."); } public void showM..
2023.01.28
Language/Java
thumbnail
일반 λ³€μˆ˜μ™€ μ°Έμ‘° λ³€μˆ˜ λ°”λ‘œ μ•ŒκΈ°
1. 데이터 νƒ€μž…μ˜ μ’…λ₯˜ 크게 κΈ°λ³Έ νƒ€μž…κ³Ό μ°Έμ‘° νƒ€μž…μœΌλ‘œ λ‚˜λˆ„μ–΄μ§„λ‹€. 두 νƒ€μž…μ„ λ‚˜λˆ„λŠ” 기쀀은 무슨 값이 μ €μž₯λ˜λŠ”κ°€ 이닀. 2. 각 νƒ€μž…λ“€μ΄ 값을 μ €μž₯ν•˜λŠ” 원리 κΈ°λ³Ένƒ€μž…μ€ ν•΄λ‹Ή λ³€μˆ˜μ— κ°’ 자체λ₯Ό μ €μž₯ν•œλ‹€. (call by value) λ”°λΌμ„œ int a = 1 이라면 말 κ·ΈλŒ€λ‘œ aμ—λŠ” 1이 μ €μž₯λ˜μ–΄ μžˆλ‹€. b의 κ²½μš°μ—λ„ λ§ˆμ°¬κ°€μ§€λ‘œ double b = 3.5라면 bμ—λŠ” 3.5κ°€ μ €μž₯ λ˜μ–΄ μžˆλ‹€. 반면, μ°Έμ‘°νƒ€μž…μ€ ν•΄λ‹Ή λ³€μˆ˜μ— "값이 μ €μž₯λ˜μ–΄ μžˆλŠ” μ£Όμ†Œ"κ°€ μ €μž₯λ˜μ–΄μžˆλ‹€. λ”°λΌμ„œ ν•΄λ‹Ή λ³€μˆ˜μ— μ €μž₯된 μ£Όμ†Œλ‘œ κ°€μ„œ 값을 ν™•μΈν•œλ‹€. λ§Œμ•½ String c = "μ²Όμ‹œλŠ” 우승 λͺ»ν•œλ‹€." 이고, ν•΄λ‹Ή λ¬Έμžμ—΄μ΄ νž™μ— μ €μž₯된 μ£Όμ†Œκ°€ 'ae123' 이라면, νž™μ˜ ae123으둜 κ°€μ„œ 값을 ν™•μΈν•œλ‹€. 3. String 값을 ==으둜..
2023.01.28
Language/Java
thumbnail
[JAVA] λ‹€ν˜•μ„±(polymorphis)
1. μ •μ˜ λ‹€ν˜•μ„±μ΄λž€, ν•˜λ‚˜μ˜ 객체가 μ—¬λŸ¬κ°€μ§€ νƒ€μž…μ„ κ°€μ§ˆ 수 μžˆλŠ” 것을 λ§ν•œλ‹€. Javaμ—μ„œλŠ” λΆ€λͺ¨ 클래슀의 μ°Έμ‘° λ³€μˆ˜κ°€ μžμ‹ 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό μ°Έμ‘°ν•  수 μžˆλ„λ‘ ν•˜λŠ” κ²ƒμœΌλ‘œ λ‹€ν˜•μ„±μ„ κ΅¬ν˜„ν–ˆλ‹€. λ§Œμ•½ Camera classκ°€ factoryCam class의 λΆ€λͺ¨ 클래슀 라면, //Caneraκ°€ λΆ€λͺ¨ν΄λž˜μŠ€, factoryCam이 μžμ‹ν΄λž˜μŠ€ Camera FC = new factoryCam(); 라고 선언이 κ°€λŠ₯ν•˜κ³ , μœ„μ˜ λ™μž‘μ„ 그림으둜 ν‘œν˜„ν•˜λ©΄ λ‹€μŒκ³Ό κ°™λ‹€. λ§Œμ•½ μ°Έμ‘°λ³€μˆ˜μ™€ μΌλ°˜λ³€μˆ˜μ˜ 차이가 ν—·κ°ˆλ¦°λ‹€λ©΄, λ°‘μ˜ 링크λ₯Ό μ°Έμ‘°ν•˜μž. https://dalcheonroadhead.tistory.com/68 λ§Œμ•½ Camera ν΄λž˜μŠ€μ— factoryCam, SpeedCam μ΄λΌλŠ” μžμ‹ ν΄λž˜μŠ€κ°€ μžˆλ‹€κ³  ν–ˆμ„ λ•Œ, λ‹€..
2023.01.28
Language/Java