오늘은 java의 꽃인 객체지향 공부를 했다. 이미 정리를 했었지만 여러번 봤어도 헷갈리는 개념이라 블로그에 한번 더 정리를 해뒀다. 그리고 오늘 TIL은 그동안 코테 풀면서 계속 마주치지만 잘 외우지 못해 볼때마다 검색으로 찾았던 것들을 모아봤다.
int값은 모두 10진수로 인식한다.
10진수를 N진수로 변환 방법
Integer.toString(값,N)
2진법의 경우 Integer.toBinaryString
가 있고 8진수 octal 16진수 hex가 있지만 그냥 toString이 편하다.
N진수 값은 String 값으로 입력해야한다!!! (int는 10진수로 인식하니까)
N진수(String)를 10진수로 변환 방법
Integer.parseInt(String값, N)
예시
int a = 25;
System.out.println(Integer.toString(a,2)); // 11001
String b = 11001;
System.out.println(Integer.parseInt(b,2)); // 25
오름차순
Collections.sort(list);
내림차순
Collections.sort(list, Collections.reverseOrder());
대소문자 구분 없이 오름차순
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
대소문자 구분 없이 내림차순
Collections.sort(list, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));
System.out.print(); : 줄 바꿈 없이 한줄로 출력
System.out.println(); : 출력 후 줄바꿈
System.out.printf("출력서식",출력할내용); : 출력 서식이 따로 있을 때.
%d : 정수형 출력
%s : 문자형 출력
%f : 실수형 출력
%c : 문자열 출력
%n : 줄 바꿈
%b : boolean 출력
int money = 500
System.out.printf ("내 주머니엔 %d원이 있다.", money);
// 내 주머니엔 500원이 있다.
매개변수는 클래스변수나 인스턴스변수보다 메모리 부담이 적다. 메소드가 끝나면 사라지는 변수이기 때문이다.
지역변수는 반드시 수동 초기화를 해야하지만, 클래스변수와 인스턴스변수는 기본값으로 자동 초기화가 된다.
생성자는 객체를 생성하기 위한것 (x) 인스턴스를 초기화하기 위한 것(o)
this는 클래스 메서드(static)에서는 사용 불가능.
오버로딩에서 리턴타입이 상관 없다는 말의 뜻은 리턴타입이 같아야 된다는 말이 아니라,
리턴타입과 관계없이 오버로딩이 성립하려면 메소드의 이름이 같은 상태에서 매개변수의 개수나 타입만 다르면 된다는 것이다.