자바 Day 5

Hyunsu·2023년 3월 26일
0

Today I Learned

목록 보기
5/37
post-thumbnail

오늘은 Chapter 11 인터페이스와 추상클래스부터 Chapter 13 String 까지 공부했다. 내일이나 모레 즈음엔 책 한 권을 다 볼 수 있을 것 같다.

📝 목차

  1. 인터페이스와 추상클래스
  2. 예외 처리
  3. String

1. 인터페이스와 추상클래스

인터페이스는 추상 메서드로 이루어져있어야하며 추상 메서드는 abstract 예약어를 사용해 생성한다. 인터페이스를 구현하는 클래스의 선언시 사용하는 예약어는 implements 이다.

public interface List {
	public void add();
	public void update(int index, Object value);
	public void remove(int index);
	public Object select(int index);
}

추상 클래스는 메서드의 일부만 완성되어 있는 클래스이다.

final 예약어의 경우 클래스에 사용하면 extends 가 불가능하고 메서드에 사용 시 overriding 이 불가능하다. 변수에 사용할 경우 값 변경이 불가능하다.


2. 예외 처리

계산 수행 클래스를 예외 처리하는 문제를 풀어보았다. throws 는 책임을 전가하고 throw 는 예외를 발생시킨다는 것을 기억하자

public class Calculator {
	public static void main(String[] args) {
		Calculator calc = new Calculator();
		
		try {
			calc.printDivide(1, 2);
			calc.printDivide(1, 0);
		} catch(Exception e) {
			System.out.println(e.getMessage());
		}

	}
	
	public void printDivide(double d1, double d2) throws Exception {
		if (d2 == 0) throw new Exception("Second value can't be Zero");
		
		double result = d1/d2;
		System.out.println(result);
	}
}

3. String

String 클래스는 매우 중요하므로 제공하는 메서드들도 잘 기억하고 있도록 하자

public class UseStringMethods {
	String str = "The String class represents character strings.";
	
	public static void main(String[] args) {
		UseStringMethods use = new UseStringMethods();
		
		// split() 메서드 사용하기
		use.printWords(use.str);
		
		// str 중에서 findStr 로 넘겨준 값과 동일한 단어의 첫 번째 위치 출력
		use.findString(use.str, "string");
		
		// str 중 findStr 로 넘겨준 값과 대소문자 구분 없이 동일한 단어의 첫 번째 위치 출력
		use.findAnyCaseString(use.str, "string");
		
		// str 에서 c 와 동일한 char 의 개수 출력
		use.countChar(use.str, 's');
		
		// str 문자열에서 findStr 이 포함된 단어를 출력
		use.printContainWords(use.str, "ss");
		
	}
	
	public void printWords(String str) {
		String[] splitString = str.split(" ");
		
        for (String tempStr : splitString) {
        	System.out.println(tempStr);
        }
	}
	
	public void findString(String str, String findStr) {
		System.out.println("string is appeared at " + str.indexOf(findStr));
	}
	
	public void findAnyCaseString(String str, String findStr) {
		System.out.println("string is appeared at " + str.toLowerCase().indexOf(findStr));
	}
	
	public void countChar(String str, char c) {
		char charArr[] = str.toCharArray();
		int cnt = 0;
		
		for (int i=0; i<charArr.length; i++) {
			if (charArr[i] == c) cnt ++;
		}
		
		System.out.println("char '" + c + "' count is " + cnt);
	}
	
	public void printContainWords(String str, String findStr) {
		String[] strArr = str.split(" ");
		
		for (int i=0; i<strArr.length; i++) {
			if (strArr[i].contains(findStr)) {
				System.out.println(strArr[i] + " contains " + findStr);
			}
		}
	}
}

Reference

profile
현수의 개발 저장소

0개의 댓글