본문 바로가기

Programming language/Java

Java - 7 [클래스 메소드 - 인스턴스 메소드, String 클래스, Math, Random]

클래스 메소드

- 클래스 변수와 마찬가지로 클래스에 속한 메소드이다.

 

인스턴스 메소드는 인스턴스를 정의해야지만 썼는데 클래스 변수는

인스턴스를 정의하지 않고도 쓸수 있다. 왜냐하면 상수처럼 클래스에 속한 메소드 이므로

해당 클래스 이름을 직접 써서 호출이 가능하다는 것이다.

 

public class Driver {
    public static void main(String[] args) {
        System.out.println(Math.abs(-10));   // 절댓값
        System.out.println(Math.max(3, 7));  // 두 값 중 최댓값
        System.out.println(Math.random());   // 0.0과 1.0 사이의 랜덤값
    }
}

이렇게 우리가 일반적으로 

System.out.println();

쓰는 코드도 System이라는 클래스가 있기 때문에 인스턴스 생성 없이도 불러다 쓸수 있는 것이다.

 

public class Counter {
    static int count;

    public static void increment() {
        count++;
    }

    public static void main(String[] args) {
        System.out.println(Counter.count);

        Counter.increment();
        System.out.println(Counter.count);

        Counter.increment();
        System.out.println(Counter.count);

        Counter.increment();
        System.out.println(Counter.count);
    }
}

Counter라는 클래스이름을 직접불러 함수를 쓴다.

즉, 클래스 메소드는 

생성된 인스턴스가 하나도 없는데 메소드를 쓸 때 사용한다.

 

String

- String 클래스는 문자열 리터럴을 사용하여 생성자 없이 문자열을 저장할 수있습니다.

String myString = "abc";

- 또한 클래스 이므로여러가지 메소드 들이 사용가능합니다.

 

.toUpperCase()

.toLowerCase()

String myString = "aBc";
System.out.println(myString.toUpperCase()) // 모두 대문자로
System.out.println(myString.toLowerCase()) // 모두 소문자로
System.out.println(myString)               // 그대로

.equals(비교문자열)

- 참조형의 자료형에서 "==" 연산자는 두 인스턴스가 같은 주소를 가르키는 지를 연산한다.

- 내용이 같은지 비교하려면 .equals("문자열")을 사용해야한다.

String myString = "aBc";
System.out.println(myString.toLowerCase().equals("abc"));

Math

절대값 :Math.abs()

import java.lang.Math;

public class Driver {
    public static void main(String[] args) {
        System.out.println(Math.abs(-10));
        System.out.println(Math.abs(8));
    }
}

최소, 최대값 : Math.min(), Math.max()

import java.lang.Math;

public class Driver {
    public static void main(String[] args) {
        System.out.println(Math.min(4, 10));  // 최솟값
        System.out.println(Math.max(4, 10));  // 최댓값
    }
}

Random

- 임의 값을 뽑을 때 사용한다.

.nextInt(n)

import java.util.Random;

public class Driver {
    public static void main(String[] args) {
        Random rand = new Random();
        System.out.println(rand.nextInt(10));   // 0 이상 9 이하의 랜덤한 값
    }
}
import java.util.Random;

public class Driver {
    public static void main(String[] args) {
        Random rand = new Random();
        int min = 10;
        int max = 30;

        System.out.println(rand.nextInt((max - min) + 1) + min);   // 10 이상 30 이하의 랜덤한 값
    }
}

.nextInt((size) + 1) + 최소값);

size  : 값의 범위 : 0 ~ size - 1

size + 1 : 1 ~ size

(size + 1) + min  : min ~ size + min