본문 바로가기

컴퓨터학원(복습)(수료)

자바(JAVA)기반 안드로이드 웹&앱 개발 12일차(자바의 기본 클래스, Wrapper, Number)

자바의 기본 클래스 뿐만 아니라, 오늘 깊은복사와 옅은 복사에 대해서도 배웠습니다.

아직 정확히 이해가 되지 않았지만,

옆은 복사는 참조변수가 지니는 참조 값을 그대로 새 인스턴스에 복사하므로 원본이 훼손될 우려가 있는 복사이고.

깊은 복사는 새로운 인스턴스를 만듦으로써 원본이 변하더라도 상관이 없는 새로운 복사본을 만드는 것이라고

이해를 하였지만, 정확히 이해가 되지는 않아서 조금 더 공부하고 내일 따로 올리겠습니다.

자바의 기본 클래스

..1) 기본 자료형의 값을 감사는 래퍼 클래스(Wrapper 클래스)

...(1) int형 정수나 double형 실수와 같은 기본 자료형의 값들도 인스턴스로 표현해야 하는 경우

...(2) public Boolean(boolean value)

...(3) public Character(char value)

...(4) public Byte(byte value)

...(5) public Short(short value)

...(6) public Integer(int value)

...(7) public Long(long value)

...(8) public Float(float value), public Float(double value)

...(9) public Double(double value) 가 있다.

※ 래퍼 클래스 예시(Integer, Double)

 

..2) 래퍼클래스의 두 가지 기능

...(1) 값을 인스턴스로 감싸는 것 : 박싱(Boxing)

...(2) 인스턴스에서 값을 꺼내는 것 : 언박싱(Unboxing)

.... public boolean booleanValue()

.... public char charValue()

.... public int intValue()

.... public long longValue()

.... public double doubleValue()

...(3) 오토 박싱(Auto Boxing) & 오토 언박싱(Auto Unboxing)

※ 오토 박싱과 오토 언방식 예시

..3) Number 클래스

...(1) Number 클래스에는 추상 메소드들이 존재한다.(Number도 추상 클래스)

....public abstract int intValue()

....public abstract long longValue()

....public abstract double doubleValue()

...(2) 따라서 이를 상속하는 래퍼 클래스는 위의 메소드 모두를 구현하고 있다.

...(3) 즉, 래퍼 인스턴스를 대상으로 인스턴스에 저장된 값을 다양한 형태로 반환할 수 있다.

..4) Wrapper 클래스의 static 메소드

...(1) Integer.valueOf(5); // 숫자 기반 Integer 인스턴스 생성

...(2) Integer.valueOf(“1024”) // 문자열 기반 Integer 인스턴스 생성

...(3) Integer.max(n1, n2) // 대소 비교

...(4) Interger.min(n1, n2) // 대소 비교

...(5) Integer.sum(n1, n2) // 합

...(6) Integer.toBinaryString(12); // 2진수 표현

...(7) Integer.toOctalString(12); // 8진수 표현

...(8) Integer.toHexString(12); // 16진수 표현

..5) BigInteger 클래스 : 매우 큰 정수 표현

..6) BigDecimal 클래스 : 오차 없는 실수의 표현

..7) Math 클래스 : 수학관련 연산 제공

...(1) Math 클래스에 정의된 메소드는 모두 static으로 선언되어 있다.

...(2) 즉, Math는 기능의 제공이 목적일 뿐, 인스턴스 생성을 목적으로 정의된 클래스는 아님

..8) 난수(Random Number)의 생성

....public boolean nextBoolean() : boolean형 난수 반환

....public int nextInt() : int형 난수 반환

....public long nextLong() : long형 난수 반환

....public int nextInt(int bound() : 0이상 bound 미만 범위의 int형 난수 반환

....public float nextFloat() : 0.0 이상 1.0 미만의 float 형 난수 반환

....public double nextDouble() : 0.0 이상 1.0미만의 double형 난수 반환

...(1) 씨드(Seed)기반의 난수를 생성하지 않는 이상, 값은 계속 변한다.

..9) 문자열의 토큰(Token) 구분

...(1) 콜론은 구분자(Delimiter)이다.

...(2) 구분자를 기준으로 나뉜 문자열 조각은 토큰(Token)이다.

....PM:08:45 -> “:”가 구분자(Delimer)이고 “PM,08,45”가 토큰(ToKen)이다.

...(3) 생성자 public StringTokenizer(String str, String delim)

...(4) public boolean hasMoreTokens() 와 public String nextTokne()의 반복적 호출을 통해 토큰을 획득한다.