반응형

*Math 클래스

- Math 클래스는 수학계산을 위한 클래스로 객체를 생성할 수는 없지만, 모든 메소드와 속성이 static으로 정의되어 있어 객체를 생성하지 않고도 사용이 가능하다.

Math.max(5, 20);    // value1 = 5    :  5, 20중 큰 값을 고릅니다.
Math.min(5, -5);    // value2 = -5   :  5, -5중 작은 값을 고릅니다.

Math.abs(-10);      // value3 = 10   :  -10의 절댓값을 구합니다

Math.random();   // 0이상 1.0 미만의 랜덤한 실수값을 구합니다.

Math.sqrt(25);   // value5 = 5.0  :  25의 제곱근을 구합니다.

Math.pow(2, 10); // 2의 10승. 제곱근을 구한다. 

Math.log10(200); // log200. log값을 구한다.
반응형

'알고리즘 > 프로그래머스, 백준, 구름' 카테고리의 다른 글

map 자료구조  (0) 2020.06.04
set 자료구조  (0) 2020.06.04
스트링 버퍼(StringBuffer)  (0) 2020.06.03
래퍼 클래스(wrapper class), 오토 박싱, 오토 언박싱  (0) 2020.06.03
인터페이스  (0) 2020.06.01
반응형

*스트링 버퍼 (StringBuffer)

- 스트링 버퍼는 문자열을 추가하거나 변경 할 때 사용하는 자료형을 의미한다. 스트링 버퍼가 가지고 있는 메소드 들은 대부분 자기 자신(this)을 반환한다.

- 스트링 체이닝 이란 자기 자신의 메소드를 호출하여 자기 자신의 값을 바꿔나가는 것을 의미한다.

StringBuffer sb = new StringBuffer();
sb.append("hello");      // 해당 스트링 버퍼에 "hello", 공백, "world"를 차례대로 추가
sb.append(" ");
sb.append("world");

String str = sb.toString();  // StringBuffer을 toString()메소드를 이용하여 반환


// 위 코드를 스트링 버퍼를 이용하여 수정 진행
String str2 = new StringBuffer().append("hello").append(" ").append("world").toString();
반응형
반응형

*래퍼 클래스 (wrapper class)

- 프로그램에 따라 기본 타입의 데이터를 객체로 취급해야 하는 경우가 존재한다.

- 메소드의 인수로 객체 타입만 요구되는 경우 기본 타입의 데이터를 그대로 사용하는데 무리가 있는데, 이때 먼저 기본 타입의 데이터를 객체로 변환 후 작업을 수행 해야 한다.

- 래퍼 클래스는 기본 타입에 해당하는 데이터를 객체로 포장해 주는 클래스로 java.lang 패키지에 포함되어 제공된다.

- 래퍼 클래스는 각 타입에 해당하는 데이터를 인수로 전달받아 해당 값을 가지는 객체로 만들어 준다.

기본 타입 래퍼 클래스
byte Byte 
short  Short 
int  Integer 
long  Long 
float  Float 
double  Double 
char  Character 
boolean  Boolean

 

*오토 박싱 / 오토 언박싱

- 오토 박싱이란 컴파일러에 의해 기본 타입이 자동으로 래퍼 클래스로 변환되는 것을 의미한다.

public class WrapperExam {
    public static void main(String[] args) {
        int i = 5; 
        Integer i2 = new Integer(5);
        Integer i3 = 5;                      //오토박싱
        int i4 = i2;                         //오토언박싱
        long i2_long = i2.longValue();
        long i4_long = i4.longValue();       // 오류 발생!
    }
}

integer타입과 int타입의 오토박싱, 오토언박싱의 경우에도 Wrapper클래스가 사용된다.
i2는 Integer형이므로 longValue()메소드를 사용할 수 있으나
i4는 int형이므로 메소드를 사용하면 오류가 발생한다.
반응형
반응형

*인터페이스

- ex) 홍길동의 역할이 변호사, 의사, 식당손님 등 다양한 역할을 가진다고 할때. (다형성)

- 자바에선 다중상속 불가능. 인터페이스(interface) 활용.

- implements 를 통해 진행

- interface는 100% 추상매서드만 추가 가능

class Main {
	public static void main(String[] args) {
		홍길동 a홍길동 = new 홍길동();
		의사 a의사 = a홍길동;
		변호사 a변호사 = a홍길동;
		식당손님 a식당손님 = a홍길동;
	}
}

class  홍길동 extends 변호사 implements 의사, 식당손님 {
	public void 진찰하다() {
	}
	public void 주문하다() {
	}
}

class 변호사 {
}

interface 의사 {
	// abstract 생략 가능
	abstract void 진찰하다(); 
}

interface 식당손님 {
	// abstract 생략 가능
	abstract void 주문하다();
}
반응형

+ Recent posts