예외 처리는 어떻게 해야 할까?try-catchtry { // 예외 발생할 일이 없는 로직 - 1 // 예외가 발생할 수도 있는 로직 // 예외 발생할 일이 없는 로직 - 2 : 예외 터지면 실행 X} catch(예외 클래스 e) {} Q. exception이 여러 개인 경우 어떻게 함? public class RoomService { @Autowired RoomRepository roomRepository; public Room getRoom(int id) { try{ return roomRepository.getRoom(id); } catch (NoSuchElementException e){ return new NullRoom(); ..
나는 학부 신입생 때부터 여러 분야에 관심이 많았고, 다양한 경험을 해보고 싶었다.보안, 게임 개발, 데이터 분석 등 여러 분야를 공부하면서 자연스럽게 여러 프로그래밍 언어를 접하게 되었다.그러던 중 백엔드 개발을 알게 되었고, 자바의 매력에 빠지게 되었다.이전에는 C 계열 언어로 코딩을 했는데, 자바를 배우면서 새로운 세상을 발견한 것 같았다.C 계열 언어가 상대적으로 지루하게 느껴졌던 반면, 객체지향과 디자인 패턴 등 흥미로운 내용이 가득한 자바의 세계에 푹 빠지게 되었다. 소프트웨어 개발의 궁극적인 목표는 현실세계에서의 활동을 더 편하고 효율적으로 만들어주는 데에 있다고 생각한다. 또한, 인터넷을 통해 전 세계의 사람들이 지리적, 문화적, 경제적 장벽을 넘어 정보를 공유하고, 소통하며, 협력할 수 ..
자바의 가장 중요한 특징은?객체 지향 프로그래밍의 특징 4가지를 물어본다면 "캡상추다"라고 말할 것 같다.캡슐화상속추상화다형성만약, 자바에서 가장 중요한 특징을 하나만 골라보라고 한다면, 나는 다형성이라고 할 것이다.다형성이 뭔데?1. 하나의 타입에 여러 가지 객체를 담을 수 있다. 2. 하나의 객체를 여러 가지 타입에 담을 수 있다. 위의 두 가지 중 뭐가 다형성에 대한 설명일까?대답을 먼저 해보자면, 둘 다라고 할 수 있다. 1Phone phone = new Phone();Phone phone = new Galaxy();Phone phone = new iPhone(); 2Phone phone = new Galaxy();Galaxy phone = new Galaxy(); 나는 2번은 상속에 가깝고, 1..

자바의 부모/자식 클래스에 대해 학습을 하면서 3가지 질문을 받게되었다.1. 상속 관계를 결정하는 클래스는 누구인가요?2. 생성자도 상속되는 걸까요?3. 아래 그림 에서 누가 부모인가? 질문에 대답을 하기에 앞서 상속이란 무엇일까?상속이란?간단하게 말하자면, 부모 클래스의 멤버를 자식 클래스가 사용할 수 있는것이다.=> 확장의 개념 ( 그대로 사용, 추가해서 사용...) 위와 같은 관점에서 상속관계는 자식이 결정한다고 할 수 있다. 생성자가 상속이 되나?자식 클래스에 super()라는 키워드로 부모 클래스의 생성자를 호출한다. 만약 자식 클래스의 생성자에서 super를 사용하지 않으면, 컴파일러가 자동으로 부모 클래스의 기본 생성자(매개변수가 없는 생성자)를 호출한다.그리고, 인텔리제이 커뮤니티 버전을 ..

오버로딩(Overloading) 오버로딩이란? 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 한다. 그러나 자바에서는 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼, 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩(Method Overloading)' 또는 '오버로딩(Overloading)' 이라고 한다. 오버로딩의 규칙 메서드의 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. * 반환 타입은 오버로딩을 구현하는데 영향을 주지 못한다. class A{ public void a(){} // 기준 메서드 public st..