언어&프레임워크/Java

제너릭 이해하기(java)(feat.출력, 데이터타입)

밍풀 2022. 9. 2. 21:10

제너릭으로 클래스 정의하고 사용해보기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
class jeong<T>{//제네릭 사용해보기, 클래스 안에 들어갈 메소드, 변수의 타입을 사용자가 지정할수있게함
    //타입이 정해지지 않았으므로 class에서 바로 메소드 접근 불가
    //인스턴스생성시 타입 그제야 정해줌, 인스턴스시 사용되어야 하므로 메소드, 변수에 static안붙여 
    //static은 인스턴스에 사용될 변수에는 제거해줘야 했어
    //클래스에서 바로 접근하는 메소드, 변수에는 static 붙였고
    T kk(T bbb) {//클래스, 인터페이스정의시 사용, 그 밑 메소드 변수에는 <>빼고씀
        return bbb;    
    }
    T uu;
}
 
public class practice{
     public static void something(Object a, int b) {//정해지지않은 변수 a의 타입
         System.out.println(a);
     }
    
 
          public static void main(String[] args) {            
              
              practice.something(1,2); //Object 변수에 숫자, 문자 암거나 넣기가능
              practice.something("m",2);
              
              jeong<String> ji = new jeong<String>();//문자열들어가는 인스턴스생성, 기존형식에 클래스명뒤<>
              //타입파라메터 즉, <>안에들어가는거는 참조타입 reference type 만 가능
              //원시타입 primitive(int, double, char, long, short, float, byte, boolean)불가
              //string가능, int대신 integer, double대신 Double 쓰는식
  
              ji.kk("fkfk");
              
              
              jeong<Double> jiji = new jeong<Double>();//실수들어가는 인스턴스생성
              jiji.kk(1.2);     
              
              System.out.println(1);
              System.out.println(2);
              System.out.println(3);//println은 출력시 줄바꿈
              
              System.out.print(1+" ");//ln떼면 줄바꿈 없음 
              System.out.print(2+" ");
              System.out.print(3);
              
 
       
    }
 
          
}
 
cs

+printf()는 지시자를 통해 변수의 값을 여러가지 형식으로 변환하여 출력하는 기능가짐,

지시자는 값을 어떻게 출력할 것인지 지정해주는 역할을 함.

 

보통 쓰이는 제네릭 타입들, 제너릭에 쓰일 수 '없는' 원시 변수 타입들