Back-End (Web) 42

[JAVA] 오류 및 예외에 대한 이해

오류 및 예외에 대한 이해 오류(Error)🔥예외(Exception)🚨오류(Error)는 일반적으로 회복이 불가능한 문제입니다.이는 시스템 레벨에서, 또는 주로 환경적인 이유로 발생합니다.코드의 문제로 발생하는 경우도 있지만, 일단 발생하는 경우 일반적으로 회복이 불가능합니다.에러가 발생한 경우 우리는 어떠한 에러로 프로그램이 종료되었는지를 확인하고 대응합니다.예외(Exception)는 일반적으로 회복이 가능한 문제입니다.회복이 가능하다는 전제는 우리가 “그 예외가 발생할 수 있다는 것을 인지하고, 대응했을 것입니다”.현실적으로 코드 레벨에서 할 수 있는 문제 상황에 대한 대응은 “예외 처리”에 속합니다.보통 만나게 되는 문제는 예외이고 이는 "예외처리"로 예방이 가능하다.보통 예외는 코드의 실행, ..

Back-End (Web)/JAVA 2024.11.12

[JAVA] 인터페이스

인터페이스📌 Java에서 클래스가 구현해야 하는 메서드들의 목록을 정의하는 일종의 계약입니다.  인터페이스 선언 public interface 인터페이스명 { public static final char A = 'A'; static char B = 'B'; final char C = 'C'; char D = 'D'; void turnOn(); // public abstract void turnOn();} 모든 멤버 변수는 public static final이어야 합니다.생략 가능합니다.모든 메서드는 public abstract이어야 합니다.생략 가능합니다. (static 메서드와 default 메서드 예외)생략되는 제어자는 컴파일러가 자동으로 추가해줍니다. 단순하게 클래스는 설계..

Back-End (Web)/JAVA 2024.11.12

[JAVA] 클래스 간의 관계와 상속

상속📌 상속의 사전적 정의는 부모가 자식에게 물려주는 행위를 말합니다.객체 지향 프로그램에서도 부모 클래스의 필드와 메서드를 자식 클래스에게 물려줄 수 있습니다.상속을 사용하면 적은 양의 코드로 새로운 클래스를 작성할 수도 있고 공통적인 코드를 관리하여 코드의 추가와 변경이 쉬워질 수도 있습니다.이러한 특성 때문에 상속을 사용하면 코드의 중복이 제거되고 재사용성이 크게 증가하여 생산성과 유지 보수성에 매우 유리해집니다. = 자바 객체 지향의 중요한 기능 중 하나로, 한번 변수나 메서드 선언하고 그걸 다른 이들이 빌려쓰는 형태로 만들어, 매번 변수, 메서드를 반복해서 선언하는 것을 방지한 방식이다.  위의 그림처럼 개발자, 댄서, 가수 모두 인간의 특징인 이름,나이,학습,일등의 특징을 가질 수 밖에 없다..

Back-End (Web)/JAVA 2024.11.12

[JAVA] package와 import

package📌 패키지(Package)는 Java에서 클래스를 그룹으로 묶어 관리하는 폴더 같은 개념이다. 관련된 클래스들을 함께 묶어서 하나의 패키지로 정의함으로써 코드의 구조를 더 체계적이고 조직적으로 유지할 수 있다.  패키지의 장점코드의 논리적 그룹화: 비슷한 기능이나 역할을 하는 클래스들을 하나의 패키지에 넣어 관리할 수 있습니다.네임스페이스 제공: 서로 다른 패키지에 같은 이름의 클래스가 있어도 충돌이 발생하지 않습니다.접근 제어 강화: 특정 클래스나 멤버가 패키지 내에서만 접근 가능하게 하여 클래스 간의 의존성을 조절할 수 있습니다.패키지 선언패키지는 package 키워드를 통해 클래스 파일의 최상단에 선언하며, 선언된 패키지 경로는 실제 파일 경로와 일치해야 합니다.패키지는 상위 패키지와..

Back-End (Web)/JAVA 2024.11.12

[JAVA] 접근 제어자

접근 제어자클래스, 메서드, 변수 등의 접근 범위를 제한하는 키워드로, 외부에서 사용할 수 있는지 여부를 결정한다클래스, 맴버 변수, 메서드 생성자에 사용되고, 지정되어 있지 않으면 default로 지정된다.1. public범위: 모든 클래스에서 접근 가능.사용처: 클래스, 메서드, 필드.설명: public으로 선언된 요소는 모든 클래스에서 접근할 수 있습니다. 프로젝트 내 어디서든지 사용 가능한 공개 멤버로 설정됩니다.2. protected범위: 같은 패키지 내의 클래스나 자식 클래스에서 접근 가능.사용처: 메서드, 필드 (클래스에는 사용할 수 없음).설명: protected는 동일 패키지 내의 모든 클래스와 다른 패키지의 자식 클래스에서 접근할 수 있도록 허용합니다.3. default (아무 접근 제..

Back-End (Web)/JAVA 2024.11.12

[JAVA] This와 This()

This this는 객체 즉, 인스턴스 자신을 표현하는 키워드다. 이게 무슨 말인가 싶을건데, 아래의 예시를 보면 이해가 쉽다 만약 이처럼 생성자를 선언하는데 매개변수명(생성자의 지역변수)과 객체의 필드명(클래스의 맴버변수)이 동일할 경우 오류가 발생하지는 않지만 생성자 블록 내부에서 해당 변수들은 객체의 필드가 아닌 가장 가까운 매개변수명을 가리키게 됨으로 자기 자신에게 값을 대입하는 상황이 되어 버린다.this 키워드를 통해 변수명에 해당하는 객체의 필드에 접근하여 받아온 매개변수의 매개값을 객체의 필드에 대입하여 저장할 수 있다. Car returnInstance() { return this;}또한 this는 인스턴스 자신을 뜻하기 때문에 객체의 메서드에서 리턴 타입이 인스턴스 자신의 클래스 ..

Back-End (Web)/JAVA 2024.11.12

[JAVA] 생성자

생성자public Car() {} // 선언...Car car = new Car(); // 호출생성자는 객체가 생성될 때 호출되며 객체를 초기화하는 역할을 수행합니다.생성자는 반환 타입이 없고 이름은 클래스의 이름과 동일합니다.new 연산자에 의해 객체가 생성되면서 Car(); 즉, 생성자가 호출됩니다.위와 같이 ()만 존재하는 경우를 기본 생성자라한다. 만약 생성자를 하나도 생성하지 않으면 컴파일러가 자동으로 기본 생성자를 자동으로 추가한다.public class Car { public Car(String model) {} // 생성자 선언 // 생성자가 한개 이상 선언되었기 때문에 기본 생성자를 추가하지 않음.}즉 이 경우는 컴파일러는 기본 생성자를 생성하지 않음 (public Car가 선언되어 ..

Back-End (Web)/JAVA 2024.11.12

[JAVA] 인스턴스 멤버와 클래스 멤버

public class Car { // 인스턴스 멤버 (각 객체마다 고유) String company; // 자동차 회사 String model; // 자동차 모델 String color; // 자동차 색상 double price; // 자동차 가격 double speed; // 자동차 속도, km/h 단위 char gear; // 기어 상태, P (주차), R (후진), N (중립), D (주행) boolean lights; // 자동차 조명 상태, 켜짐(true) 또는 꺼짐(false) // ★클래스 멤버 (모든 객체가 공유하는 값)★ static int carCount = 0; // 생성된 자동차 객체 수 // 기본 ..

Back-End (Web)/JAVA 2024.11.12

[JAVA] 객체의 필드와 메서드

필드 = 객체의 속성필드는 객체의 데이터를 저장하는 역할을 한다.객체의 필드는 크게 고유한 데이터, 상태 데이터, 객체 데이터로 분류할 수 있다.이처럼 자동차 객체는 4개의 고유한 데이터와 3개의 상태 데이터 그리고 3개의 객체 데이터를 가질 수 있다.우리가 처음 소프트웨어의 부품을 객체라 표현한다.이 3개의 객체 데이터를 자동차를 만들기 위한 부품 데이터라고 이해해도 좋다.public class Car { String company; // 자동차 회사 String model; // 자동차 모델 String color; // 자동차 색상 double price; // 자동차 가격 double speed; // 자동차 속도 , km/h char gear; // 기어의 상태..

Back-End (Web)/JAVA 2024.11.12

[JAVA] 클래스 설계와 객체 생성

클래스클래스 = 설계도 이다. 더 간단히 설명하면 붕어빵 틀이라고 생각하면된다.  클래스의 구성 요소필드(Field): 클래스의 속성을 나타내며, 객체가 가져야 할 데이터나 상태를 저장합니다. 필드는 변수와 유사하지만 클래스 내에 정의되어 객체의 상태를 나타내는 데 사용됩니다.메소드(Method): 클래스가 수행하는 행동이나 기능을 정의합니다. 객체가 수행할 수 있는 작업을 메소드로 정의하며, 필드를 조작하거나 특정 기능을 수행하는 역할을 합니다.생성자(Constructor): 객체를 생성할 때 호출되는 특별한 메소드로, 클래스 이름과 동일한 이름을 가집니다. 생성자를 통해 객체의 초기 상태를 설정할 수 있습니다.접근 제어자(Access Modifier): 클래스, 필드, 메소드에 접근할 수 있는 범위를..

Back-End (Web)/JAVA 2024.11.12