본문 바로가기

나혼자공부시간(평일저녁,주말,휴일때)

메소드 호출,선언:개념 제대로 알고 가기/지역변수,전역변수,정적변수 차이점

 

package practice;

public class Calculator {
    //리턴값이 없는 메소드 선언
    void powerOn() {
        System.out.println("power on!");
    }
    //리턴값이 없는 메소드 선언
    void powerOff() {
        System.out.println("power offs");
    }

    //호출 시 두 정수 값을 전달받고,
    //호출한 곳으로 결과값 int를 리턴하는 메소드 선언
    int plus(int x, int y) {
        int result = x + y;
        return result; //리턴값 지정;
    }

    //호출 시 두 정수 값을 전달받고,
    //호출한 곳으로 결과값 double를 리턴하는 메소드 선언
    double divide(int x, int y) {
        double result = (double)x / (double)y;
        return result;
    }
}

객체내부(설계도)

 

 

 

package practice;

public class CalculatorExample {
    public static void main(String[] args) {
        //calculator 객체 생성
        Calculator myCar = new Calculator();

        //리턴값이 없는 powerOn() 메소드 호출
        myCar.powerOn();

        //plus메소드 호출 시 5,6을 매개값으로 제공하고,
        //덧셈 결과를 리턴 받아 result1 변수에 대입
        int result1 = myCar.plus(5,6);
        System.out.println("result1: " + result1);

        int x = 10;
        int y = 4;
        //divide()메소드 호출 시 변수 x와 변수y의 값을 매개값으로 제공하고,
        //나눗셈 결과를 리턴 받아 result2 변수에 대입
        double result2 = myCar.divide(x, y);
        System.out.println("result2 :" + result2);
    }
}

외부객체(호출)

 

 

 

 

 

 

가변길이 매개변수 배우기

package practice;

public class Computer {
    //가변길이 매개변수를 갑는 메소드 선언
    int sum(int...values) {
        //sum 변수 선언
        int sum = 0;

        //values는 배열 타입의 변수처럼 사용
        for(int i = 0; i<values.length; i++) {
            sum +=values[i];
        }
        //합산 결과를 리턴
        return sum;
    }
}

객체내부(설계도)

 

 

 

 

package practice;

public class ComputerExample {
    public static void main(String[] args) {
        //computer 객체 생성
        Computer myCom = new Computer();

        //sum()메소드 호출 시 매개값 1,2,3을 제공하고
        //합산 결과를 리턴 받아 result1 변수에 대입
        int result1 = myCom.sum(1,2,3);
        System.out.println("result1: " + result1);

        //sum()메소드 호출 시 매개값 1,2,3,4,5을 제공하고
        //합산 결과를 리턴 받아 result2 변수에 대입
        int result2 = myCom.sum(1,2,3,4,5);
        System.out.println("result2: " + result2);

        //sum()메소드 호출 시 배열을 제공하고
        //합산 결과를 리턴 받아 result3 변수에 대입
        int[] values = {1,2,3,4,5};
        int result3 = myCom.sum(values);
        System.out.println("result3: " + result3);

        //sum()메소드 호출 시 배열을 제공하고
        //합산 결과를 리턴 받아 result3 변수에 대입
        int result4 = myCom.sum(new int[]{1,2,3,4,5});
        System.out.println("result4: " + result4);
    }
}

외부객체(호출)

 

 

 

 

Return문

ex)기름 얼마나 있는지 

package practice;

public class Car {
    //필드선언
    int gas;

    //리턴값이 없는 메소드로 매개값을 받아서 gas 필드값을 변경
    void setGas(int gas) {
        this.gas = gas;
    }

    //리턴값이 boolean인 메소드로 gas필드값이 0이면 false를, 0이 아니면 true를 리턴
    boolean isLeftGas() {
        if(gas==0){
            System.out.println("There is no Gas");
            return false; // false를 리턴하고 메소드 종료
        }
        System.out.println("There is Gas left");
        return true; // true를 리턴하고 메소드 종료
    }

    //리턴값이 없는 메소드로 gas필드값이 0이면 return문으로 메소드를 종료
    void run() {
        while (true) {
            if(gas > 0) {
                System.out.println("달립니다.(gas잔량: "+gas+")");
                gas -=1;
            }else {
                System.out.println("멈춥니다.(gas잔량: "+gas+")");
                return; //메소드 종료
            }
        }
    }
}

객체내부(설계도)

 

 

package practice;

public class CarExample {
    public static void main(String[] args) {
        //객체 생성
        Car myCar = new Car();

        //리턴값이 없는 setGas() 메소드 호출
        myCar.setGas(5);

        //isLeftGas() 메소드를 호출해서 받은 리턴값이 true일 경우 if블록 실행
        if(myCar.isLeftGas()){
            System.out.println("출발합니다.");
            //리턴값이 없는 run()메소드 호출
            myCar.run();
        }

        System.out.println("gas를 주입하십쇼");


    }
}

외부객체(호출)

 

 

 

 

 

 

 

메소드 오버로딩

ex)사각형 넓이 구하기

package practice;

public class Calculator {
    //정사각형 넓이
    double areaRectangle(double width){
        return width * width;
    }

    //직사각형 넓이
    double areaRectangle(double width, double height){
        return width * height;기
    }
}

객체내부(설계도)

 

 

package practice;

public class CalculatorExample {
    public static void main(String[] args) {
        //calculator 객체 생성
        Calculator myCar = new Calculator();

        //정사각형 넓이 구하기
        double result1 = myCar.areaRectangle(10);
        System.out.println(result1);

        //직사각형 넓이 구하기
        double result2 = myCar.areaRectangle(30,20);
        System.out.println(result2);
    }
}

외부객체(호출)

 

 

 

 

 

 

지역변수,전역변수,정적변수 

https://code4human.tistory.com/128