Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원/플러스 알파

1. Random().nextInt() - 2. equals() - 3. String은 객체다-클래스다.

giggs 2022. 4. 22. 11:15

 

+@ 랜덤 한 수 만들기

 

여러 방법이 있지만 Math.random() 으로 했던 방식 말고 

이번에는 Random 클래스를 사용하는 방법으로 만들어 보자!

 

 

int r = new Random().nextInt(50);

 

한 줄 코드로 간단하게 끝 ㅎㅎ

 

 

 

 

 

>>> 2줄 짜리 해석 

- Random randomObject = new Random( );

  • new Random(); - 새롭게 뭘 만들겠다. Random이라는 클래스 타입을 이용해서
  • 이 객체를 사용해야 하니까 주소 값을 담을 Random타입 참조 변수 만들어준다.

 

- int r = randomObjectl.nextInt(50);

  • 랜덤 오브젝트 변수를 찾아가고(. ) – 그 주소 값으로 객체를 접근하고
  • nextInt()라는 메소드를 사용

 

 

>>> 빨간 한 줄과 파란 두 줄은 똑같은 코드이다.

  • Question : 한줄짜리로 쓰면 만든 Random객체를 가리키는 애는 누구일까요?
  • 이 객체는 변수에 담겨있지 않는다.
  • 이 객체가 가지고 있는 nextInt() 메서드 실행해주고 끝이다.
  • 이 객체를 가리키는 변수가 없다~ 연결된 변수가 없다. 주소 값 찾아갈 수가 없다. 사용할 수 없다. 
  • 떠돌아다닌다. 자원낭비 쓰레기가 된다. GC가 처리
  • 일회용으로 쓰고 버리는 느낌
  • int r 은 메소드 실행의 결과를 담는 애이고, new Random()으로 만든 객체가 담기는 것이 아니다

 

 

 

 


 

 

 

+@ 문자열끼리 같은지 비교할 때는 equals( )

 

가위바위보 게임에서 - 저번에는 1,2,3 이랑 묵찌빠 대치시켜서 프로그래밍했었는데

이번에는 문자열 그대로 해보자! 

 

프로그램 순서 중 4번 판단 부분에서 적용!

 

1. 컴퓨터 패 선택

2. switch-case

3. 사용자 입력

4. 판단 

  • ( String 타입끼리 비교할 때는 == 연산자 못쓰고 equlas() 함수를 이용한다. )

 

== 연산자 사용하는 것이 아닌 equals() 함수 사용

 

 

5. 컴퓨터, 사용자 패 출력

6. 게임 종료 끝!

 

 

 

 


 

 

 

+@ String은 참조형이다. String은 객체다. String은 클래스다.

 

 

 

+@ 참조형 변수의 기본 값은 null;

 

>null 이라는 공간을 가리킨다~ null == 0번지 주소 값을 의미

 

 

 

 

 

 

 


 

 

 


## Check Point


int r = new Random().nextInt( )

equals ( )

String 참조형 변수 기본 값은 null - 
휴지심조차도 없는 공간 -!