매개변수(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
완강시 수료증 발급 가능

'개발 > 자바' 카테고리의 다른 글
| 스파르타코딩클럽 Java 문법 종합반 2주차 - Collection 출력 (0) | 2023.06.14 |
|---|---|
| 스파르타코딩클럽 Java 문법 종합반 1주차 - nextLine() (0) | 2023.06.13 |
| 쉽게 배우는 자바1 메모 (0) | 2023.05.30 |
| Java 객체지향 (2) | 2023.04.29 |
| Java 배열 (0) | 2023.04.27 |