GiantStepDEV
자바(Java) - 객체 지향 프로그래밍 (15) 중첩 클래스
🗄️ Backend/Java 2023. 1. 25. 22:56

중첩 클래스란? 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다. 일반적으로는 여러 클래스와 관계를 맺는 경우 독립적으로 클래스를 선언함. 특별한 경우, 특정 클래스와 관계를 맺는 클래스를 내부에 선언하기도 함. 장점 클래스를 논리적으로 묶어서 표현함으로써 코드의 캡슐화 증가 외부에서는 내부 클래스에 접근할 수 없으므로 코드의 복잡성을 줄일 수 있음 내부 클래스에서 외부 클래스의 멤버를 손쉽게 접근할 수 있음. 외부 클래스 public class OutClass { private int num = 10; // 인스턴스 변수 private static int sNum = 20; // 정적 변수 (클래스 소속의 변수) InClass inClass; // 외부 클래스에 대한 생성자 호출 public O..

article thumbnail
자바(Java) [백준] 1076번 : 저항
🔄 Algorithm/BaekJoon 2023. 1. 25. 22:41

문제 전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다. 처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다. 저항의 값은 다음 표를 이용해서 구한다. 색값곱 black 0 1 brown 1 10 red 2 100 orange 3 1,000 yellow 4 10,000 green 5 100,000 blue 6 1,000,000 violet 7 10,000,000 grey 8 100,000,000 white 9 1,000,000,000 예를 들어, 저항의 색이 yellow, violet, red였다면 저항의 값은 4,700이 된다. 입력 첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주..

자바(Java) - 객체 지향 프로그래밍 (14) 다중 인터페이스와 상속
🗄️ Backend/Java 2023. 1. 25. 22:36

다중 인터페이스와 상속이 동시에 적용될 수도 있다. (이론적으로 인터페이스 상속은 무한히 가능, 상속은 하나만) 에어컨 인터페이스 (ON/OFF, 온도 설정) 자율운전 인터페이스 접근제한자는 protected AirCon public interface AirCon { int MAX_TEMP = 30; int MIN_TEMP = 0; void airConON(); void airConOFF(); void setAirConTemp(int tmp); } int MAX_TEMP, int MIN_TEMP 인터페이스 內 필드는 인스턴스 필드 X, 인터페이스 소속O 앞에 public final static이 숨겨져 있음 void airConON(); 자동으로 추상메소드가 되며 앞에 abstract 숨겨져 있음 Aut..

3. [자바/Java] 팩토리 메소드 패턴(Factory Method Pattern) : '객체'와 '객체 생성 클래스' 분리하는 디자인 패턴
📚 Study/Design Pattern 2023. 1. 24. 18:28

해당 내용은 아래 블로그 포스팅을 참조하였습니다. https://memostack.tistory.com/61 Design Pattern - Factory Method Pattern (팩토리 메소드 패턴) Factory Method Pattern 팩토리 메소드 패턴은 '객체'와 '객체 생성 클래스'를 따로 분리하는 디자인 패턴이다. 객체 생성 클래스가 따로 분리되어 있어서, 객체 생성 변화에 유연하게 대비할 수 있다. memostack.tistory.com 팩토리 메소드 패턴? '객체'와 '객체 생성 클래스'를 따로 분리하는 디자인 패턴 객체를 생성자를 사용하여 new로 호출하지 않고, 간접적으로 객체 생성 후 반환해주는 방식이다. 예제 요구사항 - 게임 아이템을 만드는 아이템 생성자를 만든다. 아이템의 ..

article thumbnail
자바(Java) [백준] 10809번 : 알파벳 찾기
🔄 Algorithm/BaekJoon 2023. 1. 24. 15:24

문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. import java.util.Scanner; public class Main { public static voi..

2. [자바/Java] 템플릿 메소드 패턴(Template Method Pattern) : 일정한 구조의 프로세스를 가진 경우 추천
📚 Study/Design Pattern 2023. 1. 24. 14:43

해당 내용은 아래 블로그 포스팅을 참조하였습니다. https://memostack.tistory.com/60 Design Pattern - Template Method Pattern (템플릿 메소드 패턴) Template Method Pattern 템플릿 메소드 패턴은 일정한 구조의 프로세스를 가진 경우, 사용하기 좋은 디자인 패턴 코드의 중복을 줄일 수 있고 유지보수하기에도 편리함. 일정한 구조의 프로세스? 특정 memostack.tistory.com 템플릿 메소드 패턴? 일정한 구조의 프로세스를 가진 경우, 사용하기 좋은 디자인 패턴 코드의 중복을 줄일 수 있고, 유지보수하기 편리함. 일정한 구조? 특정 알고리즘이 항상 A -> B -> C 순으로 수행한다면, 각 작업을 모아 하나의 메소드로 구현 예..

1. [자바/Java] 스트래티지 패턴(Strategy Pattern) : 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴(interface)
📚 Study/Design Pattern 2023. 1. 24. 14:18

해당 내용은 아래 블로그 포스팅을 참조하였습니다. https://memostack.tistory.com/58 Design Pattern - Strategy Pattern (스트래티지 패턴) 스트래티지 패턴 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴 행위(Behavior)들을 캡슐화하여 동적으로 자유롭게 바꿀 수 있는 패턴 예제 요구사항 게임 케릭터와 무기를 생성하여, 케릭터가 memostack.tistory.com 스트래티지 패턴? 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴 메소드를 캡슐화하여 동적바인딩이 가능하도록 해주는 패턴 예제 요구사항 - 게임 캐릭터와 무기를 생성하여, 캐릭터가 무기를 장착할 수 있음. - 캐릭터가 들고 있는 무기는 변경이 자유로워야 함. 무기 종류 총 (Gun) 칼 ..

article thumbnail
자바(Java) [백준] 11720번 : 숫자의 합
🔄 Algorithm/BaekJoon 2023. 1. 23. 20:06

문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력 입력으로 주어진 숫자 N개의 합을 출력한다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String number = null; int sum = 0; int num = sc.nextInt(); while(true) { number = sc.next(); if(number.length() == num) break; } ..

article thumbnail
자바(Java) [백준] 11654번 : 아스키 코드
🔄 Algorithm/BaekJoon 2023. 1. 23. 19:18

문제 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. 입력 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다. 출력 입력으로 주어진 글자의 아스키 코드 값을 출력한다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); char c = sc.next().charAt(0); int a = (int)c; System.out.println(a); } }

article thumbnail
자바(Java) - 개인 미니 프로젝트(은행 상품 가입하기)
📂 My Project 2023. 1. 22. 14:47

클래스 설계 은행 상품을 상속 받아 자유적금, 챌린지박스, 정기예금 만들기 은행 상품은 케이뱅크를 참고하였습니다. 은행 상품 기본 금리(세전) 12개월 기준 자유 적금 : 금리 4.30% 챌린지 박스 : 금리 2% 정기예금 : 금리 4.5% 기능 구현 가입할 상품 선택 ([1] 자유적금 [2] 챌린지박스 [3]정기예금) 납입 금액 입력 가입 기간 입력 결과 출력 금리 : 가입기간 : 만기 금액(세전) : 만기 금액(세후) : * 가입기간과 납입금액의 제한은 따로 두지 않았습니다. * 만기금액은 보기 편하도록 천 단위로 콤마를 찍었습니다. * 생성자에 이름을 입력하여 상품 가입자 이름이 나오도록 하였습니다. Main package 케이뱅크; import java.text.DecimalFormat; impo..