class Q {
int add (int x, int y) {
return x + y; }
public class Main {
public static void main(String[] args) {
Q q=new Q(); //인스턴스선언
int plus = q.add(x:1, y:2);
System.out.println(plus);
}
}
class Q : 붕어빵 틀
인스턴스 : 붕어빵
인스턴스를 생성할 때 new를 할 때만 불리는 친구. return 값이 없음!
class Phone {
String model;
String color;
int price;
command + N = constructor
}
public class Main {
public static void main(String[] args) {
Phone galaxy = new Phone(constructor 값 넣어주기);
Phone iphone =new Phone(constructor 값 넣어주기);
System.out.println("철수는 이번에 " + galaxy.model + galaxy.color + " + 색상을 " + galaxy.price + "만원에 샀다.");
System.out.println("영희는 이번에 " + iphone.model + iphone.color + " + 색상을 " + iphone.price + "만원에 샀다.");
}
}
생성자를 쓰지 않는다면 기본값을 출력.
기존의 클래스를 재사용하는 방식. 클래스간의 계층구조를 만들게 됨
!여러클래스 상속 불가 오직 한개의 클래스만 상속 가능!
#특징
1. 부모 클레스 에서 정의된 필드와 메소드를 물려 받는다.
2. 새로운 필드와 메소드를 추가할 수 있다.
3. 부모 클래스 에서 물려받은 메소드를 수정할 수 있다.
private : 같은 클래스 내에서만 접근 가능
default(nothing) : 같은 패키지 내에서만 접근 가능
protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근 가능
public : 접근 제한이 없음
추상클래스 : 설계만 돼 있고 구현은 안 돼 있는것.
1. 클래스를 상속받아 이용 및 확장을 위함
2. 다중 상속 불가능 , 단일 상속
3. extends를 이용하여 구현
4. 추상메소드에 대한 구현 가능
인터페이스 : 객체의 특정 행동의 특징을 정의({}반드시 작성)
1. 구현하려는 객체의 동작의 명세
2. 다중 상속 가능
3. implements를 이용하여 구현
4. 메소드 시그니처(이름, 파라미터, 리턴 타입)에 대한 선언만 가능
Error : 심각한 에러
Exception : 종료되지 않지만 예외나 문제상황을 표현
try-catch-finally
try-with-resource (자동적으로 close() 호출)
//현재
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();
//지정
LocalDate newDate = LocalDate.of(2021, 03, 29);
LocalTime newTime = LocalTime.of(22, 50, 55);
//오전,오후
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT);
//오늘의 날짜 시간 출력(많이 쓰일 것 같으니 박제,,)
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd h/mm");
String now = dateTimeFormatter.format(LocalDateTime.now());
System.out.println("현재시간: " + now);
}
}