본문 바로가기

Backend/JAVA_Basic26

20. JAVA, 다형성(polymorphism) ○ 다형성(polymorphism) - 객체지향 프로그래밍의 특징 중 하나 (참고 : OOP의 특징) - 하나의 객체가 여러 가지 타입을 가질 수 있는 것 - 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현 - 다형성의 예 : Calendar는 GregorianCalendar()의 부모임(아래 코드 및 그림 참고) new연산자를 이용해 메모리를 할당할 때는 좌우의 클래스가 같아야 하지만 밀접도가 높은 상속관계에서는 자식 클래스를 부모 클래스가 참조하는 것이 가능 → 형변환이 매우 용이해짐 Calendar now = new Calendar(); //일반적인 경우 Calendar now = new GregorianCalendar(); //다형성(polymorphis.. 2022. 6. 4.
19. JAVA, 상속(inheritance, override, super, Object 클래스) ○ 상속 (inheritance) - 객체지향 프로그래밍의 특징 중 하나 (참고 : OOP의 특징) - 기존의 클래스(부모)가 가지고 있는 필드와 메소드를 그대로 물려받아 새로운 클래스(자식)를 만드는 것 - 쉽게 말하면, 클래스의 재활용 - 부모와 자식, 조상과 후손(파생), superclass와 subclasses - 종단(final) 클래스는 상속받을 수 없다 (참고 : JAVA, final ) - private 속성은 상속받을 수 없다 - 클래스 간의 상속은 단일 상속만 가능하다 (하나의 클래스만 상속받을 수 잇음) - extends 확장 / implements 구현 - 형식) class 자식(서브)클래스 extends 부모(슈퍼)클래스 { 서브클래스 내용 } class 자식(서브)클래스 impl.. 2022. 6. 3.
18. JAVA, 날짜 관련 클래스(GregorianCalendar, Calendar, Date, SimpleDateFormat) & 연습문제 ○ 날짜 관련 클래스 - GregorianCalendar, Calendar, Date - java.util에 있는 클래스들임 GregorianCalendar now=new GregorianCalendar(); System.out.println(now.get(Calendar.YEAR)); //현재 년도 System.out.println(now.get(Calendar.MONTH)); //현재 월 (현재월-1로 출력) System.out.println(now.get(Calendar.DATE)); //현재 일 System.out.println(now.get(Calendar.HOUR)); //현재 시 (12시간제) System.out.println(now.get(Calendar.MINUTE)); //현재 분 Sy.. 2022. 6. 3.
17. JAVA, getter와 setter함수 ○ 함수명 작성 규칙 - is함수명() : 대부분 boolean으로 반환 - to함수명() : to뒤의 값으로 반환 - get함수명() : 대부분 리턴값이 존재 → getter함수 - set함수명() : 원하는 값으로 세팅할 때 (대부분 void) → setter함수 ○ getter와 setter함수 - private 변수를 다른 곳에서 사용하고 싶을 때 getter, setter 함수를 이용해서 접근함 (참고 : Access Modifier ) - getter함수명을 작성하는 규칙 : get멤버변수의첫글자대문자로빠꾼후함수명() - setter함수명을 작성하는 규칙 : set멤버변수의첫글자대문자로빠꾼후함수명() package oop0407; class Bbs { //멤버변수 field private in.. 2022. 6. 2.
16. JAVA, final (final클래스, final메소드) & 연습문제 ○ final - final, 마지막 - final 변수 : 변수를 상수화 - final 메소드 : 더 이상 리폼(override 재정의)할 수 없다 - final 클래스 : 종단클래스, 후손클래스를 생성할 수 없다 ○ final 변수 - final 변수는 상수화된다, 다른 값 대입 불가능 int a=3; a=5; //변수는 다른 값 대입 가능 final int b=2; b=4; //에러, final변수는 다른 값 대입 불가능 ○ final 클래스 (종단클래스) - final 클래스는 상속 받을 수 없다 final class Animal{} // 종단클래스 class Elephant extends Animal{} // 에러, final클래스는 상속 받을 수 없다 ○ final 메소드 - final 메소드.. 2022. 6. 2.
15. JAVA, static (정적 변수, 정적 메소드) ○ RAM 메모리 공간 - static이라는 특성은 JAVA 언어 자체의 특성이 아니라 RAM의 메모리 공간의 특성 - RAM 메모리 공간은 static, heap, stack으로 구분됨 ① static - continue - 프로그램이 시작될 때 할당되고, 프로그램이 종료될 때 소멸 - 전역변수, 정적변수가 저장되는 공간 ② heap - new - new연산자를 이용해 만들어진 객체(인스턴스)가 저장되는 공간 (참고 : new 연산자) ③ stack - reset - 함수가 호출될 때 할당되고, 호출이 종료될 때 소멸 - 지역변수, 매개변수가 저장되는 공간 ○ static - 메모리에 생성도 1번, 소멸도 1번 됨 (continue) - new연산자를 이용해서 별도의 객체 생성 없이 사용가능 (클래스명.. 2022. 6. 2.