Development/자바 (6)

1. SRP (단일책임의 원칙: Single Responsibility principle) : 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는데 집중되어야 한다는 원칙 책임이 확실해지기 때문에 변경하더라도 다른 책임의 변경 연쇄작용에서 자유로울 수 있다. 코드의 가독성 향상, 유지보수 용이 다른 원리들을 적용하는 기초 => 중요한 기준은 '변경', 변경이 있을 때 파급효과가 적으면 단일책임 원칙을 잘 따른 것. 2. OCP (개방폐쇄의 원칙: Open Close Principle) : 소프트웨어의 구성요소는 확장에는 열려있고, 변경에는 닫혀있어야 한다는 원칙 요구사항의 변경이나 추가사항이 발생하더라도, 기존 구성요소는 수정이 일어나지 말아야하며, 기존 구성..

캡슐화 변수와 클래스를 하나로 묶는 작업 중요한 데이터를 보존, 보호하기 위해 사용하는 것 클래스에 담는 내용 중 중요한 데이터나 기능을 외부에서 접근하지 못하도록 사용 멤버변수에 접근제어자 private 사용 setter/getter 메소드를 통해 변수의 값들을 조회하거나 수정하게 함. 캡슐화된 클래스 내부의 메서드만을 통해 변수를 조작가능 => 정보 은닉 상속 기존 클래스를 재사용해서 새로운 클래스를 작성하는 것 두 클래스를 조상과 자손으로 관계를 맺어준다. 상속받는 클래스를 자식클래스, 하위클래스, 서브클래스 상속해주는 클래스를 부모클래스, 상위클래스, 슈퍼클래스 부모클래스의 필드와 메서드를 물려받는다. 단, 접근제어자 private을 갖는 필드나 메서드는 상속 불가 자손의 멤버 개수는 조상보다 같..

JAVA 썬 마이크로시스템즈에서 개발한 객체지향 프로그래밍 언어 JAVA의 특징 운영체제에 독립적이다. : 자바가상머신(JVM)을 통해 해당 운영체제가 이해할 수 있도록 변환하여 전달해준다. => 한번 작성하면 어디서나 실행된다 (Write Once, Run Anywhere) 객체지향개념의 특징이 잘 적용된 순수한 언어이다. 자동 메모리 관리 (Garbage Collection) : 자바로 작성된 프로그램이 실행되면, 가비지 컬렉터가 자동적으로 메모리를 관리 해주기 때문에 따로 메모리 관리를 하지 안하도 된다. 네트워크와 분산처리를 지원한다. : 네트워크 프로그래밍 라이브러리를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원한다. 멀티쓰레드를 지원한다. : 자바에서 개발되는..


Queue 큐 FIFO(First In First Out) 먼저 저장된 데이터가 먼저 인출 되는 구조 Stack 스택 LIFO(Last In First Out) 가장 나중에 저장된 데이터가 가장 먼저 인출되는 구조 Stack 메소드 boolean empty() 해당 스택이 비어 있으면 true를, 비어 있지 않으면 false를 반환함. E peek() 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환함. E pop() 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환하고, 해당 요소를 스택에서 제거함. E push(E item) 해당 스택의 제일 상단에 전달된 요소를 삽입함. int search(Object o) 해당 스택에서 전달된 객체가 존재하는 위치의 인덱스를 반..

배열 - 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것. 배열의 생성 타입[] 변수이름 = new 타입[길이]; 배열 선언 배열 생성 - int[] score = new int[5]; - int[] score = new int[]{1,2,3,4,5}; - int[] score = {1, 2, 3, 4, 5}; 배열을 선언하는 것은 참조변수를 위한 공간이 만들어질 뿐, 배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어지는 것이다. ex) int [] score; : int형 배열 참조변수 score을 선언, 데이터를 저장할 수 있는 공간은 아직 마련되지 않음. score = new int[5]; : 연산자 new에 의해서 메모리의 빈공간에 5개의 int형 데이터를 저장할 수 있는 공간이 마..

람다식이란? : '메서드를 하나의 식으로 표현한 것' 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로 람다식을 '익명함수' 라고도 한다. 람다식으로 인해 메서드를 변수처럼 다루는 것이 가능해졌다. 람다식의 도입으로 자바는 객체지향언어인 동시에 함수형 언어가 됨. 반환타임 메서드이름 (매개변수 선언) { 반환타임 메서드이름 (매개변수 선언) -> { 문장 => 문장 } } *메서드와 함수의 차이 : 메서드는 함수와 같은 의미지만 특정 클래스에 반드시 속해야 한다는 제약이 있어 기존 함수와 같은 의미의 다른 용어를 선택해서 사용한 것. 특징 - 반환값이 있는 메서드의 경우, return 문 대신 '식'으로 사용할수 있다. 식의 연산결..