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();
}
}
// 생략
}