제네릭 와일드 카드 정리

카테고리 없음 2015. 9. 2. 18:31 by kira-master

제네릭 와일드 카드 

List<?> 

타입 파라미터를 대치하는 구체적인 타입으로 모든 클래스인터페이스 타입이 올수 있다.

List<? extends 상위타입>

타입 파라미터를 대치하는 구체적인 타입으로 상위 타입이나 하위 타입만 올수 있다 . 

List<? super 하위타입>

타입 파라미터를 대치하는 구체적인 타입으로 하위 타입이나 상위 타입이 올수 있다 .



extends 상위타입과 그 아래의 자식 타입들을 매개변수로 받을 수 있다.


super 하위타입과 그 위에 부모 타입들을 매개변수로 받을 수 있다.

계산기 예제

Programing/Java 2015. 8. 27. 20:47 by kira-master


package exam;
// @author kosta, 2015. 8. 26 , 오후 6:12:23 , Calculator_ 
import java.util.Scanner;

public class Calculator_Main {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        Calculator calculator = new Calculator();
        
        
        System.out.println(" 계산기 프로그램 ");
        while (true) {            
            System.out.println("메뉴 사칙 연산 선택 +,-,/,* 중 하나를 입력하세요");    
            System.out.println("종료는 1 입니다.");
            String meun=sc.nextLine();
            if ("1".equals(meun)) {
                System.out.println("종료");
                return;
            }
            System.out.println("첫번쨰 숫자 입력  :");
            int n1 = Integer.parseInt(sc.nextLine());
            System.out.println("첫번쨰 숫자 입력  :");
            int n2 = Integer.parseInt(sc.nextLine());
            String res ="";
            switch(meun){
                case "+":
                    res  = calculator.plus(n1, n2);
                    System.out.println(res);
                    break;
                case "-":
                    res  = calculator.minus(n1, n2);
                    System.out.println(res);
                    break;
                case "/":
                    res  = calculator.divide(n1, n2);
                    System.out.println(res);
                    break;
                case "*":
                     res  = calculator.multiply(n1, n2);
                    System.out.println(res);
                    break;
                case "1":
                    System.out.println("종료");
                    return;
                default:
                    System.out.println("잘못된 입력입니다.");
                    break;
                    
            }
        }
        
        
        
    }
}





package exam;

// @author kosta, 2015. 8. 26 , 오후 6:04:23 , Calculator 
public class Calculator {
/*
필드 설계 하는법 
필드 클래스 내부에서 사용할 변수 선언 
또는 외부에서 들어온 매개변수의 값을 저장 
*/

/*
메소드 설계 하는법 
=>  기능(핵심) , 동작 중심의 실행을 염두한 구현 
*/    
    
    
public String plus(int n1,int n2){
    String str = "+ 연산의 ";
    int res = n1 + n2; 
    String result=result(res,str);
    return result;
}

public String minus(int n1,int n2){
    String str = "- 연산의 ";
    int res = n1 - n2; 
    String result=result(res,str);
    return result;
}

public String divide(int n1,int n2){
    String str = "/ 연산의 ";
    int res = n1 / n2; 
    String result=result(res,str);
    return result;
}

public String multiply(int n1,int n2){
    String str = "* 연산의 ";
    int res = n1 * n2; 
    String result=result(res,str);
    return result;
}

private String result(int res,String str){
    return str+" RESULT : " +res;
}
    
    
} // end class of Calculator


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

자바 8 로 오면서 Runnable API 보던중에  (0) 2016.01.23
Connection 객체 // Properties  (0) 2015.09.09
POJO 의 개념과 예시  (0) 2015.08.24
Singleton 정리  (0) 2015.08.23
자바 메모리 구조 2  (0) 2015.08.22

추상 클래스 설계 연습

카테고리 없음 2015. 8. 27. 19:45 by kira-master


package exam;
// @author kosta, 2015. 8. 27 , 오후 7:19:40 , Calss 
public abstract class AbstractTest01 {
    // proteced 필드 선언 이유는 ? 
    // 상속 받는 객체에서만 사용을 하고 외부에서 접근을 못하게 막기 위함 
    protected int a; // 상속 받는 객체 에서만 사용 
    protected int b; 
    protected int c;
    
    // 추후에 구현할 기능들을 메소드로 분리함 
    public abstract void test(); // 추상 클래스 선언 
    public abstract void test(String a); // 추상 클래스 오버로딩 
    
    // 추상 클래스안에 일반 메소드 선언- > 공통적으로 사용할 기능을 상속한 후에 ㅁ바로 쓸수 있도록 하기위해서 씀 
    public void test2(){
        System.out.println("추상 클래스는 메소드의 "
                + "몸체도 정의가 가능합니다."
                + " 다만 상속받는 클래스에서 객체 생성후 "
                + "사용가능합니다.");
    }
}



Nav