Java
[Java] 자바 추상클래스와 인터페이스의 차이
[Java] 추상클래스와 인터페이스의 차이 들어가며 오늘은 자바 추상클래스와 인터페이스의 차이에 대해서 정리해보고자 한다. 추상클래스(abstract class) 클래스를 설계도에 비유한다면 추상클래스는 미완성 설계도에 비유할 수 있다. public abstract class animal {} class 앞에 'abstract' 키워드를 붙여 사용하며, 일반적으로 하나 이상의 추상 메서드를 가진 클래스를 말한다. 추상 메서드를 선언함으로써 상속을 통해 하위 클래스에서 이를 구현하도록 강제하는 클래스이다. (추상 메서드를 포함하지 않는 클래스에도 'abstract'를 붙여 추상 클래스로 지정 가능하지만, 반대로 추상 메스드를 포함하는 클래스는 반드시 추상 클래스여야 한다.) abstract로 선언된 추상 ..
[백준] A+B - 4(feat.BufferedReader EOF)
들어가며 1일 1 커밋을 위해 백준 문제 풀이를 이어나가다 기존의 학습했던 내용으로는 해결 불가능한 부분이 발생하여 문제 해결 후, 그 과정을 기록해보고자 한다. A+B - 4 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 예제 입력 1 1 1 2 3 3 4 9 8 5 2 예제 출력 2 2 5 7 17 7 EOF(End of File) 이 문제 자체의 난이도만 보았을 때는 정말 쉬운 문제이지만 가장 중요한 점은 파일 종료 조건이 없이 예제 입력만 주어졌다는 것이다...
Java Object Class
기술면접 대비 - Java Object Class 들어가며 오늘은 Java Object 클래스에 대해 정리해보고자 한다. Object 시조, 모든 클래스들의 조상격의 클래스 Object는 JAVA 내 있는 모든 클래스들을 공통분모로서 묶어주는 역할을 수행한다. 어느 클래스가 그 어떤 상속도 받고 있지 않다면 기본적으로 Object 클래스를 상속받게 된다. 이를 통해 각각의 클래스들이 갖고 있어야하는 공통적인 기능을 Object 클래스의 메서드를 통해서 구현할 수 있도록 해준다. Object 클래스의 메서드 메서드 설명 protected Object clone() 해당 객체의 복제본을 생성하여 반환함. boolean equals (Object obj) 해당 객체와 전달받은 객체가 같은지 여부를 반환함. p..
[백준] 2741 N찍기 Java
N찍기 문제 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. 출력 첫째 줄부터 N번째 줄 까지 차례대로 출력한다. 예제 입출력 문제풀이 1. Scanner + sout 이번 문제는 풀이를 할 것 없이 매우 간단한 문제였기에 기본적으로 풀 수 있는 Scanner와 sout을 이용한 방법, Scanner 대신 BufferedReader를 사용한 방법 그리고 마지막으로 sout 대신 BufferedWriter까지 사용한 방법 세 가지로 문제를 풀어보았다. //Scanner 클래스와 sout으로 작성 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc..
[백준] 15552 빠른 A+B Java
빠른 A + B 문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만..
20220731_WIL(feat.항해 3주차 회고) / DI, IoC, Bean
들어가며 항해99 3주차도 이제 마무리되어가고 있다. 회고에 앞서 Java Spring Boot를 이용하며 끊임없이 접하게 될 DI, IoC, Bean에 대한 개념정리를 해보고자 한다. 강한 결합의 문제점 강한 결합은 어떠한 객체가 다른 객체에 강한 의존성을 가지고 있음을 뜻한다. public class Controller1 { private final Service1 service1; public Controller1() { this.service1 = new Service1(); //new 생성자를 통한 객체 생성이 강한 결합을 부여 } } 위 코드를 예시로, Controller1은 service1라는 멤버 타입 변수에 강한 의지를 하게된다. 즉 Controller1은 service1이 없으면 정의할..
[백준] 2480 주사위 세개 Java
2480 주사위 세개 문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 6..
[백준] 1000 A+B Java
1000 A+B 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. 예제입력 1 2 예제출력 3 문제풀이 기초부터 다져가기에 좋은 문제였던 것 같다. 사용 방법은 알고있지만 작성 방법을 기억하고 있지 못했던 Scanner 사용법에 대해서 익힐 수 있었다. Scanner 클래스는 갑을 입력받아와서 동작하는 클래스이다. 사용을 위해서는 util 패키지를 경로의 Scanner 클래스를 호출해와야 한다. import java.util.Scanner; 그 후 메인메소드 내부에 Scanner 클래스를 호출시켜줘야 한다. Scanner scanner = new Scanner(system...