본문 바로가기

분류 전체보기

(111)
[Java] 추상 클래스 & 인터페이스 📌 추상 클래스 (abstract class) - 클래스는 일반 클래스와 추상 클래스로 나뉜다. 추상 클래스는 클래스 구현부 내부에 추상 메서드가 하나 이상 포함되거나 abstract로 정의된 경우를 말한다. - 구체적이지 않은 추상화된 클래스를 말한다. 미완성 설계도에 비유할 수 있다. ex) 고양이, 강아지 클래스가 아닌 포유류 클래스와 같은 것을 의미한다. 📌 추상 클래스 특징 추상 클래스는 반드시 abstract 클래스 명으로 표기되어야 한다. 추상 클래스는 자체적으로 객체 생성이 불가하다. 따라서 상속을 통한 자식 클래스에서 객체를 생성해야 한다. 추상 클래스는 다중 상속이 불가하다. 추상 클래스는 추상 메서드, 일반 메서드, 멤버 변수, 생성자를 구현할 수 있다. abstract로 선언한 메..
[Java] 프로그래머스 : K번째 수 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/42748?language=java 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 📌 풀이 2차원 배열에 있는 commands 변수 길이만큼 리턴할 answer 변수에 길이 지정 문자열을 자를 때 subString 메서드처럼 배열을 구간별로 잘라서 가지고 오고 싶어서 검색해 보았더니 Arrays.copyOfRange() 메서드가 있었고 이를 활용하여 풀었다. copyOfRange(array, fromIndex, toIndex) - 전달받은 배열의 지정된 범위에 해당하는 요소만..
[Java] Call by value ? & Call by Reference ? 📌 Call by Value와 Call by Reference Call by Value는 메서드의 인자를 전달할 때 '값을 전달하는 방식' 값에 의한 호출 메서드가 호출될 때 메모리 공간 안에서는 임시의 공간이 생긴다. 그리고 메서드가 종료되면 해당 공간은 사라진다. 메서드 호출 시 전달되는 변수의 값을 복사하여 메서드의 인자로 전달한다. 이 때문에 원본의 값은 변하지 않는다. 복사된 인자는 메서드 안에서 지역적으로 사용하는 지역 변수이다. Java의 경우 메서드에 전달되는 인자의 데이터 타입에 따라서 호출 방식이 달라진다. 기본 자료형 : call by value로 동작 (int, short, long, float, double, char, boolean) 참조 자료형 : call by referenc..
[Java] 프로그래머스 : 약수의 개수와 덧셈 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 📌 코드 package programmers; public class Pro_220528 { // 약수의 개수와 덧셈 public static int solution(int left, int right) { int answer = 0; // 리턴 할 값 for (int i = left; i
[Java] 프로그래머스 : 예산 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 📌 코드 package programmers; import java.util.Arrays; public class Pro_220602 { public static void main(String[] args) { // 도움 코드 int[] arr = {1, 3, 2, 5, 4}; int num = 9; System.out.println(solution(arr..
[Java] Enum ? 열거형 (Enumeration) 📌 Enum 열거형 (Enumeration) 관련이 있는 상수들의 집합이다. enum 타입 이름은 관례적으로 단어의 첫 글자는 대문자로 지정하고 enum의 상수는 전부 대문자로 연결하고 여러 단어는 언더바(_)로 연결한다. 어떤 클래스가 상수만으로 작성되어 있으면 반드시 class로 선언할 필요는 없습니다. 이럴 때 class로 선언된 부분에 enum이라고 선언하면 이 객체는 상수의 집합 enum 클래스가 된다. 인터페이스나 클래스 내에서 상수를 선언함으로써 상수를 관리하였는데 클래스 내에서 선언하는 부분은 네이밍이 겹칠 수 있고 불 필요하게 상수가 많아지는 단점이 있다. 인터페이스로 관리하는 경우 이런 부분은 줄어들지만 여전히 타입 안정성이 떨어지는 단점을 가지고 있었다. 이를 보완하며 나온 것이 En..
[Spring] Spring? SpringFramework? 📌 Spring Framework 란? 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 스프링(Spring) 이라고도 불린다. 고로, 스프링은 프레임워크로 같은 말이다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공 Frame : 틀 Work : 일하다 즉, 프레임워크는 ‘틀 안에서 일한다’라는 뜻으로, ‘개발을 쉽게 할 수 있게 만든 틀’이라는 뜻이다. 1. 흔히 스프링이라 부르지만 “스프링 프레임워크(Spring Framework)”라고 하는 것이 정확한 표현이다. 2. 자바(JAVA) 엔터프라이즈 개발을 위한 "오픈소스(Open Source)" 애플리케이션 프레임워크 3. 종속 객체를 생성해주고, 조립할 수 있는 프레임 워크 4. 자바 SE로 된 자바 객체(POJO)를 자바 E..
[Java] 객체지향 5원칙 SOLID 📌 객체지향 설계 5원칙 SOLID 객체지향을 설계할 때는 5가지 원칙이 존재한다. 이 원칙은 시간이 지나도 유지 보수와 확장이 쉬운 소프트웨어를 만드는데 이 원칙들을 적용할 수 있다. 1. SPR (단일 책임 원칙) 2. OCP (개방-폐쇄 원칙) 3. LSP (리스코프 치환 원칙) 4. DIP (의존 역전 원칙) 5. ISP (인터페이스 분리 원칙) 응집도와 결합도 좋은 소프트웨어 설계를 위해서는 결합도 (coupling)는 낮추고 응집도 (cohesion)는 높여야 한다. 결합도란? 모듈 (클래스) 간의 상호 의존 정도를 나타내는 지표로써 결합도가 낮으면 모듈 간의 상호 의존성이 줄어들어서 객체의 재사용 및 유지보수가 유리하다. 응집도란? 하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련성으로..