Java55 [Java/디자인 패턴] 객체지향 원리 추상화(abstraction) 📌 추상화(abstraction) : 공통된 속성을 지닌 것들을 하나로 모으는 것. 캡슐화(encapsulation) 📌 캡슐화(encapsulation) : 데이터와 데이터를 다루는 방법을 묶는 것. 정보 은닉을 통해 높은 응집도와 낮은 결합도를 갖도록 함. 💡 응집도와 결합도 - 응집도 : 클래스나 모듈 안의 요소들이 얼마나 밀접하게 관련되어 있는지를 나타냄. - 결합도 : 어떤 기능을 실행하는 데 다른 클래스나 모듈들에 얼마나 의존적인지를 나타냄. 💡 정보 은닉 : 외부에서 접근하지 못하게 제한하는 것. 일반화(generalization) 📌 일반화(generalization) : 여러 개체들이 가진 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립하는 것. 객체지.. 2022. 11. 2. [Java/디자인 패턴] 클래스 다이어그램 클래스 다이어그램 📌 클래스 다이어그램 : 시간에 따라 변하지 않는 시스템의 정적인 면을 보여주는 UML 구조 다이어그램. 시스템을 구성하는 클래스들 사이의 관계 표현. 💡 클래스 : 동일한 속성과 행위를 수행하는 객체의 집합. 클래스 다이어그램 - UML 클래스 표현 📌 UML 클래스 표현 ① 맨 위 : 클래스 이름. ② 중간 : 속성. ③ 맨 아래 : 연산. Course -id: String -name: String -numOfStudents: Integer +addStudent(student: Student): void +deleteStudent(id: Integer): void 접근 제어자 표시 설명 public + 어떤 클래스의 객체에서든 접근 가능. private - 해당 클래스에서 생성된 객.. 2022. 10. 31. [Java/디자인 패턴] UML 모델링 📌 모델의 역할 ① 서로의 해석을 공유해 합의를 이루거나 해석의 타당성을 검토함. ② 현재 시스템 또는 앞으로 개발할 시스템의 원하는 모습을 가시화함. ③ 시스템의 구조와 행위를 명세할 수 있으며 시스템을 구축하는 틀을 제공함. UML 📌 UML(Unified Modeling Language) : 시스템 개발 과정에서 개발자 사이의 의사 소통이 원활하게 이워지도록 표준화한 통합 모델링 언어. 📌 UML 다이어그램 종류 구조 다이어그램 (structure diagram) 클래스 다이어그램 (class diagram) 시스템을 구성하는 클래스들 사이의 관계 표현. 객체 다이어그램 (object diagram) 객체 정보 보여줌. 복합체 구조 다이어그램 (composite structure diagra.. 2022. 10. 31. [Java] 쓰레드(Thread) 동기화 쓰레드(Thread) 동기화 📌 쓰레드(Thread) 동기화 : 둘 이상의 쓰레드가 동일한 메모리 공간에 접근할때 문제가 생기는 것을 막기 위해 사용. 📄 ThreadSynchronizationTest.java package threadSynchronization; class Counter { int count = 0; public void increment() { count++; } public void decrement() { count--; } public int getCount() { return count; } } public class ThreadSynchronizationTest { public static Counter cnt = new Counter(); public static void.. 2022. 10. 24. [Java] 쓰레드(Thread) 쓰레드(Thread) 📌 쓰레드(Thread) : 실행 중인 프로그램 내에서 '또 다른 실행의 흐름을 형성하는 주체'. 📌 main 쓰레드 : main 메소드를 실행하는 쓰레드. package thread; public class ThreadTest { public static void main(String[] args) { Thread t = Thread.currentThread(); String name = t.getName(); System.out.println(name); // main } } 쓰레드(Thread) 생성 📌 쓰레드(Thread) 생성 방법 - 1 ① Runnable을 구현한 인스턴스 생성. ② Thread 인스턴스 생성. ③ start 메소드 호출. 📌 Runnable : 추상 메.. 2022. 10. 24. [Java] I/O 스트림 I/O 스트림 모델(= I/O 모델) 📌 I/O 스트림 모델(= I/O 모델) : 입출력 대상에 상관없이 동일한 방법으로 입출력 진행 가능하게 하는 것. 입력 스트림과 출력 스트림 📌 입력 스트림(Input Stream) : 대상으로부터 자료를 읽어 들이는 스트림. 📌 출력 스트림(Output Stream) : 대상으로 자료를 출력하는 스트림. 📌 System.in.read( ) : 바이트 단위로 읽음. 📄 SystemInTest.java package iostream; import java.io.IOException; public class SystemInTest { public static void main(String[] args) { System.out.println("문자열 입력: "); int.. 2022. 10. 22. [Java] 예외 처리 예외 처리 📌 예외 : 실행 중간에 발생하는 정상적이지 않은 상황. 📌 try - catch - finally 구문 : try 영역에서 예외 발생했을 때, catch 영역 실행. try 영역 실행 시, finally 영역 무조건 실행됨. (finally 영역 사용은 선택 사항.) try { // 관찰 영역. } catch(Exception name) { // 처리 영역. } finally { //... } 📌 try - with - resources 구문 : resource에서는 종료의 과정을 필요로 하는 리소스 생성. catch 영역 생략 가능. try(resource) { // 관찰 영역. } catch(Exception name) { // 처리 영역. } 📌 throws 구문 : 설정한 예외 발생 .. 2022. 10. 22. [Java] 최종 연산 최종 연산 - sum(), count(), average(), min(), max() 📌 최종 연산 ① sum( ) ② count( ) ③ average( ) ④ min( ) ⑤ max( ) : IntStream, DoubleStrem, LongStream형 참조변수가 참조하는 스트림을 대상으로만 연산 가능. 📌 최종 연산을 하는 순간, 파이프라인의 마지막을 통과하기 때문에 위의 연산을 사용하려면 매번 스트림을 생성해야 함. 📄 StreamTest.java package stream3; import java.util.stream.IntStream; public class StreamTest { public static void main(String[] args) { // sum() int sum = In.. 2022. 10. 21. 이전 1 2 3 4 ··· 7 다음