728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Object Oriented Programming > Java Instanceof keyword
Java instanceof 연산자는 개체 또는 인스턴스가 지정된 유형의 인스턴스인지 테스트하는 데 사용됩니다.
이 문제에서는 편집기에 세 가지 클래스를 제공했습니다.
- Student class
- Rockstar class
- Hacker class
기본 메서드에서 이러한 클래스의 여러 인스턴스로 ArrayList를 채웠습니다. count 메서드는 ArrayList에 있는 각 유형의 인스턴스 수를 계산합니다. 이 코드는 Student 클래스의 인스턴스 수, Rockstar 클래스의 인스턴스 수, Hacker 클래스의 인스턴스 수의 세 가지 정수를 출력합니다.
하지만 일부 코드가 누락되어 3줄만 수정하여 수정하면 됩니다! 추가 행을 추가, 삭제 또는 수정하지 마십시오.
편집기에서 원래 코드를 복원하려면 편집기에서 왼쪽 상단 아이콘을 클릭하고 새 버퍼를 만듭니다.
Sample Input
5
Student
Student
Rockstar
Student
Hacker
Sample Output
3 1 1
반응형
Code
import java.util.*;
class Student{}
class Rockstar{ }
class Hacker{}
public class InstanceOFTutorial{
static String count(ArrayList mylist){
int a = 0,b = 0,c = 0;
for(int i = 0; i < mylist.size(); i++){
Object element=mylist.get(i);
if(element instanceof Student)// ~~Complete this line~~
a++;
if(element instanceof Rockstar)// ~~Complete this line~~
b++;
if(element instanceof Hacker)// ~~Complete this line~~
c++;
}
String ret = Integer.toString(a)+" "+ Integer.toString(b)+" "+ Integer.toString(c);
return ret;
}
public static void main(String []args){
ArrayList mylist = new ArrayList();
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for(int i=0; i<t; i++){
String s=sc.next();
if(s.equals("Student"))mylist.add(new Student());
if(s.equals("Rockstar"))mylist.add(new Rockstar());
if(s.equals("Hacker"))mylist.add(new Hacker());
}
System.out.println(count(mylist));
}
}
instanceof 연산자
주어진 객체가 특정 클래스의 인스턴스인지 또는 해당 클래스의 하위 클래스의 인스턴스인지 확인하는 데 사용.
불리언(boolean) 결과 반환.
객체의 유형을 동적으로 확인.
instanceof 연산자 활용
1. 다형성 (Polymorphism) : 다형성을 활용할때 유용하게 사용. 상위 클래스 또는 인터페이스를 사용하여 여러 하위 클래스의 객체를 다룰 때 객체의 실제 유형을 확인.
2. 타입 검사 (Type Checking) : 객체의 유형을 확인하고 해당 유형에 따라 특정 동작을 수행해야 할 때 사용.
3. 예외 처리 : 특정 예외 클래스의 인스턴스 여부를 확인하고 해당 예외를 처리하는 데 사용.
개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.
728x90
반응형
'> 개발-IT-인터넷 > > JAVA' 카테고리의 다른 글
[해커랭크(HackerRank) JAVA 풀이] - Java Exception Handling (Try-catch) (0) | 2023.11.01 |
---|---|
[해커랭크(HackerRank) JAVA 풀이] - Java Iterator (1) | 2023.10.31 |
[해커랭크(HackerRank) JAVA 풀이] - Java Method Overriding 2 (Super Keyword) (0) | 2023.10.27 |
[해커랭크(HackerRank) JAVA 풀이] - Java Method Overriding (0) | 2023.10.26 |
[해커랭크(HackerRank) JAVA 풀이] - Java Interface (1) | 2023.10.25 |