개인공부

클래스/메소드 재공부

리승우 2022. 7. 23. 21:45

클래스

> 객체를 생성하기 위한 틀

> 속성과 기능으로 정의되어있음

ㄴ 속성 : 높이 / 부피 / 길이

ㄴ 기능 : 켜기 / 끄기

 

선언위치에 따른 변수의 종류

> 클래스변수 - 클래스영역에 선언된 static이 붙은 변수

 

> 인스턴스변수 - 위와 동일하나, static이 붙지않은 변수

 

> 지역변수 - 클래스 이외의 영역(메소드영역)에 선언된 변수

ㄴ 지역변수가 선언된 블럭 내에서만 사용가능하며, 블럭을 벗어나면 소멸되어 사용할 수 없음

 

메소드란

> 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것

> 선언부 / 구현부로 나뉨

ex. 

int add(int a, int b)      //선언부

{ return a+b;} //구현부

 

 

class Mymath {
    long add(long a, long b) {
        long result = a + b;
        return result;
    }

    long subtract(long a, long b) {
        return a - b;
    }

    long multiply(long a, long b) {
        return a * b;
    }

    double divide(double a, double b) {
        return a / b;
    }

    long choose(long a, long b) {
        if (a > b) {
            return a;
        } else {
            return b;
        }
    }
    // choose 다른버전1
    long max(long a, long b){
        long result = 0;
        if(a>b) {
            result =a;
        }
        else{
            result =b;
        }
        return result;
    }

    // choose 다른버전2 삼항연산자
    long max2(long a, long b){
        return a>b?a:b;
    }
}
public class me {
    public static void main(String[] args){
        Mymath mm = new Mymath();
        long result1 = mm.add(3,4);
        long result2 = mm.subtract(5L,3L);
        long result3 = mm.multiply(5L,3L);
        double result4 = mm.divide(5L,3L);
        long result5 = mm.choose(3,5);

        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);
        System.out.println(result4);
        System.out.println(result5);

    }
}