1 / 47

제 6 장 중요 class

제 6 장 중요 class. Util class String class Wraper class Math class. Object class. 모든 자바 클래스의 최상위 클래스이다 . java.lang 패키지에 포함되어 있다 . extends 키워드로 상속 받지 않아도 자동으로 상속 된다. equals() 메서드. 객체의 내용이 같은 가를 비교 한다 . 변수가 같은가를 비교하는 == 연산자와는 다르다 . 정확한 비교를 원할 경우 overriding 해서 사용 한다 .

lona
Download Presentation

제 6 장 중요 class

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 제 6장 중요 class Util class String class Wraper class Math class

  2. Object class 모든 자바 클래스의 최상위 클래스이다. java.lang 패키지에 포함되어 있다. extends 키워드로 상속 받지 않아도 자동으로 상속 된다.

  3. equals() 메서드 객체의 내용이 같은 가를 비교 한다. 변수가 같은가를 비교하는 == 연산자와는 다르다. 정확한 비교를 원할 경우 overriding해서 사용 한다. 래퍼런스 변수에서 ==연산을 사용하면 주소 값이 같으면 true를 반환한다. ( 주소 값이 다른 경우 내용이 같아도 false ) 래퍼런스 변수에서 equals() 메서드를 사용하면 주소 값이 다르더라도 객체의 내용이 같으면 true를 반환 한다. 문자열 타입에서 중복된 값을 할당할 경우에는 ConstantPool에 저장된 문자열을 사용하기 때문에 == , equals()의 결과가 동일 하다.

  4. equals() 메서드 class Ex001A { public int a = 5; /* public boolean equals(Object obj) { Ex001A objA = (Ex001A)obj; if( a == objA.a ) { return true; } else { return false; } } */ }

  5. equals() 메서드 public class Ex001Equals { public static void main( String args[] ) { Ex001A obj1 = new Ex001A(); Ex001A obj2 = new Ex001A(); //if( obj1 == obj2 ) if( obj1.equals( obj2 ) ) //if( obj1.a == obj2.a ) { System.out.println("같다"); } else { System.out.println("다르다"); } } }

  6. toString() 메서드 문자열 변환에서 주로 사용 된다. 클래스 객체의 현재 상태를 나타내는데 주로 사용된다. overriding 해서 사용한다. class Ex002A { public int a = 5; public String toString() { return "a = " + a; } }

  7. toString() 메서드 public class Ex002ToString { public static void main( String args[] ) { Ex002A obj1 = new Ex002A(); obj1.a = 10; System.out.println(obj1); } }

  8. 데이터 타입 클래스 ( Wrapper class ) 기본 데이터형( primitive data type )을 객체(Object)화 할 때 사용한다. 기본 데이터 타입을 객체화 하는 방법 int a = 5; Integer oA = new Integer( a ); Wrapper class에서 primitive data type으로 변환 int b = oA.intValue();

  9. 데이터 타입 클래스 ( Wrapper class )

  10. 데이터 타입 클래스 ( Wrapper class ) public class Ex003Wrapper { public static void main( String args[] ) { char a = 'a'; Character oC1 = new Character( a ); System.out.println(oC1.isLowerCase( a )); System.out.println(oC1.toUpperCase( 'b' )); System.out.println( Character.toUpperCase( 'b' )); char b = oC1.charValue(); System.out.println( b ); } }

  11. Math Class 수학적 함수와 이에 필요한 상수들로 구성되어 있다. 모든 멤버는 final로 정의 되어있다. public class Ex004Math { public static void main( String args[] ) { int a = 1; System.out.println(Math.PI); System.out.println(Math.max( a , 5 )); System.out.println(Math.random()); } }

  12. 문자열 저장소 ( ConstantPool) 하하하 String Class 문자열 상수를 다루는데 사용된다. String 클래스를 생성하면 자바 가상 머신의 내부에 동일한 문자열이 존재 하는가 확인 한 후, 존재 하지 않으면 생성 하고, 존재 하면 해당 문자열을 래퍼런스하는 래퍼런스 변수만을 넘겨 준다. 문자열은 한번 생성되면 변화 되지 않고, 자바 가상 머신 내에 저장되게 된다. String s1 = “하하하”; String s2 = “하하하”;

  13. String Class String class를 생성하는 방법은 다음과 같이 두 가지가 있다. String str1 = “하하하”; String str2 = new String(“하하하”);

  14. String Class

  15. String Class public class Ex005String { public static void main( String args[] ) { String str1 = "abcde"; String str2 = new String("ABCDE"); System.out.println(str1.length()); System.out.println(str1.charAt(2)); System.out.println(str1.equals(str2)); System.out.println(str1.equalsIgnoreCase(str2)); System.out.println(str1.substring(2)); System.out.println(str1.substring(0,2)); System.out.println(str1.concat(str2)); System.out.println(str1.replace('a','A')); System.out.println(str2.toLowerCase()); System.out.println(str1.toUpperCase()); } }

  16. String Class로의 전환 기본 데이터 형을 String형으로 변환하려면 에러가 발생 한다. 꼭 Wrapper클래스를 이용해야 한다. String str = Integer.toString(intVal); String을 int 타입으로 변화 하는 방법은 다음과 같다. int intVal = Integer.parseInt(stringVal); String 객체와 기본 데이터 간의 ‘+’연산의 결과는 자동으로 String 객체가 된다. String str = “하하하”+ 5;

  17. String Class로의 전환 public class Ex006String { public static void main( String args[] ) { int intVal = 5; String str1; //str1 = (String)intval; str1 = Integer.toString( intVal ); System.out.println(str1); //int intVal2 = (int)str1; int intVal2 = Integer.parseInt( str1 ); System.out.println(intVal2); String str2 = "하하하" + intVal; System.out.println(str2); } }

  18. StringBuffer Class 동적 문자열을 처리하는 기능을 제공 자바 가상 머신의 내부에서 새롭게 문자열을 생성하는 것이 아니라 메모리상에서 문자열을 처리 하기 때문에,동적으로 문자열을 바꾸거나,위치를 조정 할 때 빠르게 동작 한다. StringBuffer Class를 생성 하는 방법 StringBuffer strBuf = new StringBuffer();

  19. StringBuffer Class public class Ex007StringBuffer { public static void main( String args[] ) { StringBuffer str1 = new StringBuffer(); str1.append("[하하하]"); str1.append("[호호호]"); System.out.println(str1.toString()); str1.insert(5,"[헉]"); System.out.println(str1.toString()); str1.delete(0,5); System.out.println(str1.toString());

  20. StringBuffer Class str1.reverse(); System.out.println(str1.toString()); System.out.println(str1.length()); System.out.println(str1.capacity()); } }

  21. util Class • 프로그램을 쉽게 작성하기 위해 도움을 주는 Class • import 해서 사용해야 한다. • import java.util.*;

  22. StringTokenizer Class 문자열을 구분자를 기준으로 분리(parsing)하는 기능을 제공 한다. 구분된 문자열을 token이라고 한다. java.util 패키지에 속해 있다. StringTokenizer st = new StringTokenizer(문자열,구분자);

  23. StringTokenizer Class import java.util.*; public class Ex008StringTokenizer { public static void main( String args[] ) { String str1 = "001/상품 명/특 징"; StringTokenizer st = new StringTokenizer( str1 , "/" ); System.out.println("token 수 = " + st.countTokens()); while( st.hasMoreTokens() ) { System.out.println(st.nextToken()); } } }

  24. Vector Class 동적으로 크기가 변하는 일종의 배열이다. 배열은 크기를 변경 할 수 없고 같은 종류의 데이터만 저장가능 객체 레퍼런스를 저장하기 때문에 기본 데이터형을 저장 할 수 없다. java.util 패키지에 속해 있다. Index 0 1 2 3 4 Element 요소 요소 요소 요소 요소 Vector

  25. Vector Class • 생성자 • public Vector() • public Vector(int initialCapacity) • public Vector(int initialCapacity,int capacityIncrement) • 메서드 • public void add(int index, Object obj) • public void addElement(Object obj) • public void setElementAt(Object obj,int indec) • public void remove(int index) • public void removeElement(Object obj) • public Object elementAt(int index) • public int size() • public boolean contains(Object obj) • public int indexOf(Object obj) • public int lastIndexOf(Object obj)

  26. Vector Class –저장 , 출력 import java.util.*; public class Ex009Vector { public static void main( String args[] ) { Vector v = new Vector(); String str1 = "하하하"; int i = 1; v.addElement(str1); v.addElement("호호호"); v.addElement(new Integer(i)); for( int j = 0 ; j < v.size() ; j++ ) System.out.println(j+"="+v.elementAt(j).toString()); } }

  27. Vector Class - 검색 import java.util.*; public class Ex010Vector { public static void main( String args[] ) { Vector v = new Vector(); String str1 = "호호호"; v.addElement("하하하"); v.addElement("호호호"); if( v.contains( str1 ) ) { int j = v.indexOf( str1 ); System.out.println(str1 + " 의 위치 = " + j ); } } }

  28. Vector Class - 삭제 import java.util.*; public class Ex011Vector { public static void main( String args[] ) { Vector v = new Vector(); v.addElement("하하하"); v.addElement("호호호"); v.addElement("호호호"); v.remove(0); v.removeElement("호호호"); for( int j = 0 ; j < v.size() ; j++ ) System.out.println(j+" = "+ v.elementAt(j).toString()); } }

  29. Hashtable Class 키와 해당 데이터로 구성 된다. 해당 데이터를 저장하고 검색 하기 위해서 키를 사용하기 때문에 Vector보다 간편하다. 키 데이터 1 하하하 a Vector abc 1

  30. Hashtable Class import java.util.*; public class Ex012Hashtable { public static void main( String args[] ) { Hashtable ht = new Hashtable(); ht.put("one","하하하"); ht.put("1","호호호"); ht.put("세번째",new Integer(5)); System.out.println("one = " + ht.get("one")); ht.remove("one"); System.out.println("one = " + ht.get("one")); System.out.println("size() = " + ht.size()); for (Enumeration e = ht.elements() ; e.hasMoreElements() ;) { System.out.println(e.nextElement()); } } }

  31. Random Class • 임의의 값을 발생 시키는 클래스 • Math클래스의 random()메서드와는 값의 차이가 있다. • 한번 생성 하면 여러 번 임의의 값을 얻을 수 있다. • int nextInt() // 임의의 수 • int nextInt(int n) // 0 부터 n 보다 작은 정수

  32. 09 예외 처리

  33. 에러 문법 에러 실행 에러 논리 에러 시스템 에러 예외 사항 예외 예외는 error이다.( mild error ) java에서는 Exception 이라 한다. 정상적으로 프로그램이 동작하는 과정에서 만날 수 있는 에러이다. ( 파일을 제어하는데 파일이 존재 하지 않는다 ) 예외 사항이 발생 하면 Exception객체를 발생시키고 해당 프로그램에 던진다( throw )

  34. 예외 Object Throwable Error Exception RuntimeException Reported UnReported Unchecked Exception checked Exception

  35. 예외 • ERROR • try/catch문으로 예외 처리를 할 수 없는 Error • AWTError , VirtualMachineError , OS Error등과 같이 비정상 적인 상태를 말함 • Exception • try/catch 문으로 예외 처리 가능 • RuntimeException : 자바 응용 프로그램이 실행 도중 발생 하는 에러로 컴파일러가 검사하지 못한다. ( 0으로 나누기 , 배열의 범위 밖의 첨자를 사용 할 때 ) • 그 외 Checked Exception : 컴파일러에 의해 검출 가능한 예상 에러이다. => try / catch문을 반드시 정의 해야 한다.

  36. 예외 발생 public class Ex001Exception { public static void main( String args[] ) { String[] str = { "하하하","호호호","히히히" }; for( int i = 0; i < 4 ; i++ ) System.out.println( i + " = " + str[i] ); } }

  37. try / catch 해당 프로그램에 던진(throw)사항을 받아서(catch)처리해 준다. try { 예외가 발생할 만한 코드 } catch(해당Exception e) { 예외 처리 루틴 } finally { 항상 처리 되는 루틴 }

  38. try / catch public class Ex002Try { public static void main( String args[] ) { String[] str = { "하하하","호호호","히히히" }; try { for( int i = 0; i < 5 ; i++ ) System.out.println( i + " = " + str[i] ); } catch(ArrayIndexOutOfBoundsException e) { System.out.println( "Error 발생" ); } finally { System.out.println( "이부분은 항상 실행" ); } } }

  39. try / catch public class Ex003Try { public static void main( String args[] ) { String[] str = { "하하하","호호호","히히히" }; for( int i = 0; i < 5 ; i++ ) { try{ System.out.println( i + " = " + str[i] ); }catch(ArrayIndexOutOfBoundsException e) { System.out.println( "Error 발생" ); } finally { System.out.println( "이부분은 항상 실행" ); } } } }

  40. throws 메서드 선언 시 정의해주면 예외가 발생 할 경우 호출한 메서드에 예외 사항을 알려 준다. method_2() throws Exception { ........ method_3(); ........ } method_1() { try{ method_2(); }catch(Exception e) { .... } } method_3() throws Exception { ........ 예외 발생 부분 ........ }

  41. throws public class Ex004Throws { public void a() throws Exception { System.out.println( "method a 1" ); b(); System.out.println( "method a 2" ); } public void b() throws Exception { System.out.println( "method b 1" ); int i = 5 / 0; System.out.println( "method b 2" ); }

  42. throws public static void main( String args[] ) { Ex004Throws obj = new Ex004Throws(); try { System.out.println( "method main() 1" ); obj.a(); System.out.println( "method main() 2" ); } catch(Exception e) { System.out.println( "main() error => " + e); } } }

  43. Throwable Class 자바의 모든 예외 클래스가 파생되어 나온 클래스. public class Ex005Throwable { public static void main( String args[] ) { try { int i = 5 / 0; } catch(Exception e) { System.out.println("e.getMessage()=>"+e.getMessage()); e.printStackTrace(); } } }

  44. throw 임의로 예외를 발생 시킴 public class Ex006Throw { public static void main( String args[] ) { try { throw new Exception("예외 사항 발생"); } catch(Exception e) { System.out.println( e ); } } }

  45. 나의 예외 클래스 만들기 예외 클래스는 Throwable의 하위 클래스이어야 한다. Exception Class를 상속 받아 만든다. class Ex007Exception extends Exception { public Ex007Exception(String reason) { super(reason); } }

  46. 나의 예외 클래스 만들기 public class Ex007MyException { public static void main( String args[] ) { try { throw new Ex007Exception("예외 사항 발생"); } catch(Exception e) { System.out.println( e ); } } }

  47. Random Class import java.util.*; public class Ex013Random { public static void main( String args[] ) { Random r = new Random(); System.out.println("1 = " + r.nextInt()); System.out.println("2-1 = " + r.nextInt(2)); System.out.println("2-2 = " + r.nextInt(2)); System.out.println("2-3 = " + r.nextInt(2)); } }

More Related