빅데이터 부트캠프 64일차
객체 관련 메소드
- hashcode() = 객체 주소값을 정수로 변환
- equals() = 동일한 객체인지 비교후 그 결과(true/false) 반환
- System.getProperty() = 지정한 시스템의 특정 속성값 출력
- System.getProperties() = 시스템의 모든 속성값 출력
- System.gc() = 쓰레기 수집기 메소드 호출 (더이상 사용되지 않는 객체의 메모리 반환)
String(문자열) 관련 메소드
- equals() = 문자열의 내용 비교 결과 반환
- length() = 문자열의 길이 반환
- charAt() = 지정 인덱스 위치 문자를 반환
- indexOf() = 해당 문자열의 인덱스 번호 반환
- toUpperCase() = 대문자로 출력, toLowerCase() : 소문자로 출력
- substring(첫 순서, 끝 순서+1) = 지정한 인덱스 번호위치의 문자열 출력
- replace(바꿀 문자, 바뀐 문자) = 지정 문자열 치환후 반환
- split() = 특정 구분자를 기준으로 분리된 문자열 배열 객체로 반환
※ 파이썬에서 for문에서 in을 사용하는 방법처럼 자바에서는 for(String a : array) 같은 형태로 사용가능
ex) for i in array = for(String i : array)
- String은 한번 지정하면 변경이 불가능한 불변 객체 (데이터가 바뀌면 그것은 수정이 아니라 교체)
- StringBuilder를 이용하면 append(끝 인덱스 순서에 이어서 문자열 추가)와 insert(지정 위치에 문자열 추가), delete(지정 위치의 문자열 삭제)를 이용하여 문자열 수정 가능
- 데이터타입.valueOf(데이터) : 데이터의 타입을 지정한 데이터 타입(앞에 입력한 것)으로 변환 (형 변환)
- (데이터타입)데이터 = 데이터의 타입을 지정한 데이터 타입(앞에 입력한 것)으로 변환 (형 변환)
- 데이터타입 필드명 = 데이터; -> 기본 타입이 아닌 해당 데이터타입의 객체로 생성
- 데이터타입 필드명 = new 데이터타입(데이터); -> 기본 타입이 아닌 해당 데이터타입의 객체로 생성
- Int객체명.parseInt() = Int 객체를 Int 기본 타입으로 변환 (String, Boolean, Double 등에도 적용 가능)
- 기본 타입이 아닌 객체로 지정하면 활용가능한 메소드들이 많아지지만 그만큼 처리 속도는 감소함 (메모리 사용량 증가)
수학 관련 메소드 (Math)
- abs() = 절대값, ceil() = 올림, floor() = 내림, round() = 반올림, max() = 최대값, min() = 최솟값
Date(날짜) 관련 패키지
1. LocalDate : 로컬 날짜
- getYear() = 연도 출력, getMonth() = 월 출력, getDayOfMonth = 일 출력
2.LocalTime : 로컬 시간
- getHour() = 시간 출력, getMinute() = 분 출력, getSecond() = 초 출력
3. LocalDateTime
- plusYears
※ withYear(), withMonth(), withDayOfMonth() = Date 타입 데이터를 지정한 날짜로 변경
클래스 상속
- 부모 클래스가 자식 클래스에게 물려주는 행위 (필드와 메소드만 상속)
- 자식 클래스만의 필드, 메소드 추가 개발 가능 (만약 이름이 부모 클래스의 필드, 메소드와 같다면 @override 활용)
- class 자식클래스명 extends 부모클래스명 {}
- 자식 클래스 객체 생성시 동시에 부모 클래스의 기본생성자도 자동 실행됨 (부모가 생성되야 자식도 생성될 수 있음)
- super = 자식 클래스가 부모 클래스로부터 상속받은 필드나 메소드를 참조할 때 사용하는 참조 필드
- super() = 부모 클래스의 생성자를 호출하는 메소드
(부모 클래스의 생성자가 기본 생성자이면 super()를 입력해주지 않아도 자바 컴파일러가 자동으로 추가해주지만 부모 클래스의 생성자가 사용자 정의 생성자이면 자동으로 추가되지 않아 자식 클래스 생성시 무조건 super()를 입력해줘야함)
- 오버라이딩(overriding) = 부모 클래스에서 정의된 필드와 메소드의 내용을 자식 클래스에서 변경하여 재정의하는 것
(메소드의 파라미터, 반환타입, 메소드명는 그대로 유지하되 실행문만 재정의 해주는 것 - 부모 것과 동일해도 됨)
- @Override = 부모 클래스에서 정의된 필드 혹은 메소드와 자식 클래스에서 재정의한 필드 혹은 메소드의 이름이 서로 일치하는지 확인시켜줄 수 있도록 해주는 어노테이션
(일치해야 상속이 올바르게 실행되어 부모 클래스에서 정의한 필드 혹은 메소드가 아닌 자식 클래스에서 재정의한 필드 혹은 메소드를 사용)
- @Override를 입력하지 않아도 메소드의 파라미터, 반환타입, 메소드명이 동일하다면 자동으로 오버라이딩이 적용
- 메소드 정의시 앞에 final을 입력하면 오버라이딩 불가능 (메소드 고정)
※ 오버로딩(Overloading) = 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 설정
- 객체 instanceOf 클래스 = 객체가 특정 클래스에 속하는지 판정 결과 출력
추상 클래스 (Abstract Class)
- 메서드의 선언만 있는 추상 메서드를 포함한 클래스
- new 사용 불가능
- 부모 클래스에서 전체 흐름을 정의 한 뒤 자식 클래스에서 다르게 구현하도록 함 (오버라이딩 필수)