본문 바로가기

Study/Java

[java] 참조값, instead of, 클래스

레퍼런스 타입(참조값)

- 주소값을 가지고 있다. 어떤 값을 참조하고 있는 지 잘 알아둬야 한다.

- 객체가 변수에 저장되는 것이 아니라, 메모리 상에 있는 객체가 있는 위치를 가리키기만 한다.

 

null 참조값

- 아무것도 대입하지 않은 참조값

 

null 포인트 Exception

- 객체를 생성하지 않고, 변수나 메소드만 호출하려고 했을 때

 

캐스트 연산자

 

instanceof 연산자

- 해당 데이터 타입인지 아닌지 검사하는 연산자

캐스트 연산이 가능하면 true 그렇지 않으면 false

 

ex> if (obj instanceof CheckingAccount)
 pay((CheckingAccount) obj);
else
 System.out.println("캐스트할 수 없는 타입입니다.");

 

대부분 페키지를 만들어서 사용한다.

java.util, io, lang 패키지

 

 

String 클래스

1. 생성 방법

- String str = "abc";

==> 메모리에 같은 값을 가지면 생성하지 않고 기존에 갖고 있는 값으로 주소값을 할당 받는다.(메모리의 재활용)

- String str2 = new String("cdf");

==> 무조건 새로운 메모리를 할당한다. 실제 값에선 아무 변화가 없다.

- Char ch[] = { 'g', 'h', 'i' };

 String str3 = new String(ch);

 

2. 사용 방법

==> 단순 변수 역할만 하는 것이 아니라 여러가지 핸들링을 할 수 있다. -> String 클래스 안의 메소드를 통해서..

- System.out.println(str);

 

String 클래스는 불변성

-> 기존에 있던 값은 변하지 않는다. 하지만, 함수를 통해 변경된 값을 임시로 넣어줘서 값이 바뀌는 것으로 보인다.

ex> String str = "abcdefghijk";

System.out.println(str.toUpperCase());

System.out.println(str);

==> 결과값

abcdefghijk

ABCDEFGHIJK

abcdefghijk

 

StringBuffer, StringBuilder 가변성

- 문자열을 조작하기 위해서 만들어진 클래스

1. 생성 방법

 StringBuffer sb = new StringBuffer();

 StringBuffer sb2 = new StringBuffer("문자열");

 

StringTokenizer 클래스

- 문자열을 토막내는 것. 토막낸 한 덩어리를 '토큰'이라 한다.

* hasMoreTokens(), nextToken()

 

 

Calendar 클래스

- 추상클래스

GregorianCalendar 클래스

- calendar 클래스의 서브 클래스.

- 현재 시간을 출력해 준다.

GregorianCalendar cal = new GregorianCalendar();

int year = cal.get(Calendar.YEAR);

 

DataFormat 클래스

- Data에 Format을 맞춘다. 내가 원하는 형태로 날짜와 시간을 맞춰서 출력할 수 있다.

SimpleFormatData클래스

- jsp에서 많이 쓴다. 

 

API에서 클래스 찾기

1. 무슨 패키지인가?

2. 생성은 어떻게 하는가? -> 생성자보기

3. 메소드들은 무엇이 있는가? -> 메소드보기

 

메소드를 볼 땐 인자와 리턴값부터 보기
내용은 두 번째로 보기

 

하나의 금융시스템에 뱅크란 객체를 생성하면 고객 객체를 자동으로 생성하고 고객 객체 안에 계좌 객체도 자동으로 생성해준다.

==> 객체지향!!

 

'Study > Java' 카테고리의 다른 글

[java] 클래스와 자료구조  (0) 2019.05.15
[java] String, StringBuffer 실습  (0) 2019.05.15
[java] 예외처리, 정적필드  (0) 2019.05.15
[java] 상속, 인터페이스 실습  (0) 2019.05.15
[java] 상속, 인터페이스  (0) 2019.05.15