10. 클래스 이용

10-1. 클래스 라이브러리

처음부터 직접 만들 필요 X

Java의 표준 개발환경인 JDK에는 클래스 라이브러리라는 많은 클래스들이 포함되어 있음

ex)

IOException
BufferedReader
InputStreamReader
System
String
Integer
...


해당 클래스에서, 다음과 같은 변수를 선언하여 사용하고 있음

br : Buffered Reader 클래스의 변수
str : String 클래스의 변수

br.readLine() : BufferedReader 클래스의 "인스턴스 메소드"
Integer.parseInt(str) : Integer 클래스의 "클래스 메소드"


10-2. 문자열 처리 클래스

대표적인 클래스 : String 클래스

주요 메소드

charAt, endsWith,.....


charAt() & length() 메소드

String str="Hello";
char ch1=str.charAt(0);
char ch2=str.charAt(1);
int len = str.length();


문자열 객체 생성 시, 주의점

객체 생성 시, “new” 연산자를 사용?

// new 사용 O
String str = new String("Hello");

// new 사용 X
String str = "Hello";


대&소문자

String str="Hello";
String str_U = str.toUpperCase();
String str_L = str.toLowerCase();


문자 검색

String str = br.readLine();

char ch=str.charAt(0);
int num = str.indexOf(ch);


문자열 추가하기

StringBuffer 클래스

String str = br.readLine();

StringBuffer sb = new StringBuffer(str);
sb.append(str2);


10-3. 기타 클래스

Integer 클래스

주요 메소드

static int parseInt(String s)
static Integer valueOf(String s)

example

string str = br.readLine();
int num = Integer.parseInt(str);


Math 클래스

주요 메소드

static double abs(double a)
static int abs(int a)
static double ceil(double a)
...

example

int ans = Math.max(num1,num2);

question : 주사위 1~6사이 정수값

int num (int) (Math.random()*6)+1;


10-4. 클래스 형 변수

클래스 형 변수에 대입하기

Car형 변수

Car car1;
car1 = new Car();

// Car car1 = new Car();


대입하기

class Sample
{
    public static void main(String[] args)
    {
        // .....
        Car car1;
		car1 = new Car();
        set1.setCar(1234,20.5);
        
        Car car2;
        car2 = car1;
        // .....
    }
}
  • 이 둘은 “서로 같은 객체”를 나타낸다!
  • 대입 받은 변수가, 대입하는 변수를 “가리키는 것 뿐”!


null의 원리

그 변수는, 객체를 가리키기 못하게 됨!


메소드의 인수로서 사용

class Car
{
    // 기본형 변수를 사용한 필드
    private int num;
    private double gas;
    
    // 클래스형 변수를 사용한 필드
    private String name;
    
    // 중략
    public void setCar(int n, double g)
    {
        //..
    }
    
    public void setName(String nm)
    {
        //..
    }
}
class Sample
{
    public static void main(String[] args)
    {
        Car car1;
        car1 = new Car();
        car1.show();
        
        int number = 1234;
        double gasoline = 20.5;
        String str = "1호차";
        
        car1.setCar(number,gasoline);
        car1.setName(str);
        car1.show();
    }
}


값의 전달 & 참조의 전달

클래스형 변수

  • 참조의 전달

    ( = 호출한 곳에서 가리키는 객체와, 호출된 곳에서 가리키는 객체는 같다 )

값의 전달

  • 값의 전달

    ( = ~ 다르다 )


10-5. 객체 배열

class Sample
{
    public static void main(String[] args)
    {
        // 배열 준비
        Car[] cars;
        cars = new Car[3];
        
        // 배열에 요소 대입
        for(int i=0;i<cars.length; i++){
            cars[i] = new Car();
        }
    }
    
    // 생략
}

Tags:

Categories:

Updated: