강의 내용
[1] Object 클래스의 toString()
[2] 직접 만들어 사용하는 클래스
[1] Object 클래스의 toString()
객체가 생성된 메모리의 번지(16진수 형태)를 문자열로 바꿔 출력하는 기능
모든 객체의 번지를 문자열로 출력할 수 있도록 Object클래스에 만들어놓음
일반적으로 모든 클래스는 Object를 상속 받아 toString()를 재정의하여 사용한다.
(1) 재정의 : 다른 용도로 사용
(2) 재정의하지 않음 : 원래 기능 그대로 사용
Q. Object 클래스의 toString()를 이용하여 객체의 모든 값을 문자열로 출력하시오.
# super : 부모를 가리키는 포인터
# super.toString() : 재정의된 메서드 내에서 상위 클래스의 메서드를 호출하는 방법
# @ : at을 의미(번지의 위치)
public class Board { // extends Object private String title; // Generate -> Getter and Setter public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } // Generate -> toString() @Override public String toString() { System.out.println(super.toString()); // 상위 클래스의 메서드 호출(객체의 번지) return "Board{" + "title='" + title + '\'' + '}'; } }
public class ObjectToStringTest { public static void main(String[] args) { Board b = new Board(); b.setTitle("게시글입니다."); System.out.println(b); // toString() 생략 가능 // System.out.println(b.toString()); } }
fc.java.poly.Board@7a79be86 Board{title='게시글입니다.'}
[2] 직접 만들어 사용하는 클래스
클래스(API)의 종류
(1) 직접 만들어 사용하는 클래스
(2) 자바에서 제공하는 클래스(API)
(3) 다운 받아 사용하는 클래스(API)
최소값과 최대값을 구하는 프로그램
최소값
최소값을 저장할 변수를 어떤 값으로 초기화해야 할까?
0으로 초기화하면? 배열의 원소가 0보다는 크므로 초기화한 값(0) 자체가 최소값이 되어 버린다.
[예전] 배열안에 어떤 값이 들어있을지 모르므로 임의의 수(9999)를 저장
[현재] 배열의 첫 번째 원소
최대값
최대값을 저장할 변수를 어떤 값으로 초기화해야 할까?
9999로 초기화하면? 배열의 원소가 9999보다는 작으므로 초기화한 값(9999) 자체가 최대값이 되어 버린다.
[예전] 배열안에 어떤 값이 들어있을지 모르므로 임의의 수(0)를 저장
[현재] 배열의 첫 번째 원소
Q. 배열에 저장된 수 중에서 최대값, 최소값을 구하는 클래스를 만드시오.
정수형 배열을 입력 받아 배열에서 최소값과 최대값을 찾아 리턴한다.
배열의 첫 번째 원소로 초기화했으므로 그 다음 원소부터 비교하면 된다.(1 → 2→3→ 4)
(1) findMin() : 배열을 순회하면서 min에 저장된 값보다 작은 값을 찾으면 최소값을 교체한다.
(2) findMax() : 배열을 순회하면서 max에 저장된 값보다 큰 값을 찾으면 최대값을 교체한다.
public class MinMaxFinder { private MinMaxFinder() {} // 객체 생성을 막기 위함 public static int findMin(int[] arr) { int min = arr[0]; // 최소값 초기화 for (int i = 1; i < arr.length; i++) { if (arr[i] < min) { min = arr[i]; } } return min; } public static int findMax(int[] arr) { int max = arr[0]; // 최대값 초기화 for (int i = 1; i < arr.length; i++) { if (arr[i] > max) { max = arr[i]; } } return max; } }
public class MinMaxFinderTest { public static void main(String[] args) { int[] arr = {5, 3, 9, 1, 7}; int min = MinMaxFinder.findMin(arr); int max = MinMaxFinder.findMax(arr); System.out.println("min = " + min); System.out.println("max = " + max); } }
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://bit.ly/48sS29N