본문 바로가기
개발/자바

쉽게 배우는 자바2 메모

by mabyoungg 2023. 6. 1.

매개변수(parameter) : 어떤 입력값이 들어올지 값의 형태를 정의, 메서드에서 전달받은 값

인자(argument) :매개변수에 대입하는 실제 값, 메서드 호출 시에 전달되는 값

 

void: 리턴값이 없다


접근 수준 지시자 (access level modifiers)

private: 해당 클래스에서만 접근 가능

public: 어디서든 접근 가능

default: 동일 패키지로 묶은 클래스 내에서만 접근 가능

protected: 상속 관계에 있는 다른 클래스에서 접근 가능

  클래스 내부 동일 패키지 상속 받은 클래스 이외 영역
private O X X X
default O O X X
protected O O O X
public O O O O

static - class method

non static - instance method

static: 변수, 메서드는 별도로 인스턴스를 선언하지 않고 사용, 모든 인스턴스가 공유하는 자원이기 때문에 같은 static 변수와 메소드 사용 (ex: static 변수의 값을 수정하면 모든 인스턴스가 수정된 값을 받게 된다.)

non-static: 변수, 메소드는 인스턴스를 생성해야 접근 가능, 인스턴스마다 고유의 값을 가지기 때문에 변경해도 다른 인스턴스에 영향 X

 

생성자: 클래스명과 메서드명 동일, 리턴타입을 정의하지 않음, void도 사용하지 않음, 생성자도 오버로딩 가능

클래스에 생성자가  하나도 없다면 자동으로 디폴트 생성자 추가

this 자기 자신, super 부모

 

상속: extends, 자식클래스는 부모클래스 메서드 사용 가능

overriding: 부모클래스의 메서드를 자식클래스가 동일한 형태로 구현, 메서드 덮어쓰기

overloading: 동일한 이름의 메서드에, 입력항목만 다르게 가능


예외(exception): 상속 존재

try {

} catch (error)  {

} finally { 무조건 실행

}

 

e.getMessage(): 인스턴스에 저장된 메시지 출력

e.printStackTrace(): 호출 스택에 있었던 메서드의 정보와 메시지 출력

throws: 예외 발생 시 상위 메서드로 예외를 던짐

예외 발생 시키기: throw new RuntimeException("문제 발생");

 

checked exception: Throwable로부터 상속된 모든 클래스에서 RuntimeException을 제외한 모든 예외, 반드시 예외처리 해야 함. (ex: IOException), 롤백 X

unchecked exception: RuntimeException 하위 클래스들, 롤백


// try-catch-finally
public class TestApp {
    public static void main(String[] args) {
        FileWriter f = null;
        try {
            f = new FileWriter("data.txt");
            f.write("Hello");
            // close를 하기 전에 예외가 발생한다면 close가 실행되지 않음
            // f.close();
        } catch(IOException e) {
            e.printStackTrace();
        } finally {
            if (f != null) {
                try {
                    f.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
// try-with-resource, Java SE 7부터 가능
// 클래스가 AutoCloseable 인터페이스를 상속한다면
public class TestApp2 {
	public static void main(String[] args) {
		try (FileWriter f = new FileWriter("data.txt")) {
			f.write("Hello");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

*****생성자가 있는 클래스를 상속받았으면 자식 클래스는 생성자 만들어서 부모클래스 호출

*****다형성 polymorphism

*****final: 변수 final 변수 수정 X, 메서드 final override 제한, 클래스 final 상속 불가능

*****abstract

*****interface: 다중 상속 가능, 하나의 클래스는 여러 개의 인터페이스 구현 가능, 메서드를 정의할 땐 내용이 들어가지 않음, 변수는 값이 들어가고, 메서드는 실제 구현이 들어가지 않고 클래스가 형태를 만족하는 내용을 직접 구현

*****implements: interface를 구현

*****아직 완벽하게 이해하지 못해서 추가 공부 필요


https://www.boostcourse.org/cs128

 

쉽게 배우는 자바2

부스트코스 무료 강의

www.boostcourse.org

 

완강시 수료증 발급 가능