자바는 객체 지향 프로그래밍 언어이기 때문에 class를 빼고 생각할 수 없습니다. 그러므로 자바의 함수는 class 안에서만 존재할 수 있습니다.

자바에서는 함수가 아니라 메소드라고 칭합니다.

 

 

 

1. class 활용 예시

public class Animal {
    String name;

    public void setName(String name) {
        this.name = name;
    }

    public static void main(String[] args) {
        Animal cat = new Animal();
        cat.setName("boby");
        Animal dog = new Animal();
        dog.setName("happy");
        
        System.out.println(cat.name);
        System.out.println(dog.name);
    }
}

 

 

 

2. method 활용 예시

Test class 안에 sum 이라는 메소드를 생성해주고 활용하여 합을 출력하도록 하였습니다.

// vim test.java

public class Test {
    public int sum(int a, int b) {
        return a+b;
    }

    public static void main(String[] args) {
        int a = 3;
        int b = 4;

        Test myTest = new Test();
        
        int c = myTest.sum(a, b);

        System.out.println(c);
    }
}

메소드 안에서의 변수는 지역 변수(local variable)로, 메소드 밖과 완전 독립입니다. 변수 명이 같더라도 서로 영향을 주지 않습니다.

 

 

 

3. 객체 변수 a를 넘겨 활용하는 예시

Test 클래스 형태의 test에 있는 a 객체를 ++ 해주는 vartest 메소드를 생성해줍니다.

myTest 인스턴스를 생성해주고, 그 인스턴스의 a 객체 값을 ++ 해주고 결과값을 출력합니다.

// vim test.java

public class Test {

    int a;

    public void vartest(Test test) {
        test.a++;
    }

    public static void main(String[] args) {
        Test myTest = new Test();
        myTest.a = 1;
        myTest.vartest(myTest);
        System.out.println(myTest.a);
    }
}

아래와 같이 this 를 활용하여 작성할 수 있습니다. 아래와 같이 작성할 경우 더 심플해집니다.

// vim test.java

public class Test {

    int a;

    public void vartest() {
        this.a++;
    }

    public static void main(String[] args) {
        Test myTest = new Test();
        myTest.a = 1;
        myTest.vartest();
        System.out.println(myTest.a);
    }
}

 

 

 

+ Recent posts